# ofd.js **Repository Path**: wangle150/ofd.js ## Basic Information - **Project Name**: ofd.js - **Description**: OFD板式文件html渲染方案及组件 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 121 - **Created**: 2021-11-17 - **Last Updated**: 2021-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ofd.js ![-](https://img.shields.io/badge/language-js-orange.svg) [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](./LICENSE) 目前方案采用:svg及canvas渲染实现,百分百纯前端渲染 效果: ![示例](./ofd.jpg) [体验地址](https://51shouzu.xyz/ofd/) ## Usage with npm ``` npm i ofd.js ``` ``` import {parseOfdDocument, renderOfd} from "ofd.js"; ``` ``` 其中ofd传入的file支持本地文件、二进制或者url、screenWidth为屏幕宽度 parseOfdDocument({ ofd: file, success(res) { //输出ofd每页的div const divs = renderOfd(screenWidth, res); //获取签章div的信息, 具体看demo for(let ele of document.getElementsByName('seal_img_div')) { this.addEventOnSealDiv(ele, JSON.parse(ele.dataset.sesSignature), JSON.parse(ele.dataset.signedInfo)); } }, fail(error) { console.log(error) } }); ``` ## 愿景 希望能做到pdf.js的高度 ## 关于内置字体方案 目前开源版本并没有解决内置字体的渲染问题,效果如下,可以看到内容排版跟正常OFD显示是不一致,甚至也有乱码的出现 ![示例](./before.png) 采取freetype进行对内置字体进一步处理后即解决,此方案不支持IE浏览器 ![示例](./after.png) ### 获取帮助 如需获取帮助可以扫码加微信或者知识星球 ![示例](./wx.jpg) ![示例](./zs.png) ### 微信小程序体验OFD ![示例](./gh_6711026c0ea7_258.jpg) ## ofd推荐项目 [OFD Reader & Writer](https://github.com/Trisia/ofdrw) ## 参与贡献 发挥人人为我,我为人人的优良传统,多做pr~~~ ## Project setup ``` npm install ``` ### Compiles and hot-reloads for development ``` npm run serve ``` ### Compiles and minifies for production ``` npm run build ``` ### Lints and fixes files ``` npm run lint ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/). ### 项目关注度 > 项目获得 Star曲线 [![Stargazers over time](https://starchart.cc/DLTech21/ofd.js.svg)](https://starchart.cc/DLTech21/ofd.js)