node服务通过hiprint生成html代码
- 前端开发
- 时间:2024-04-28 10:51:05
- 571人已阅读
node服务通过hiprint生成html代码
方案1:通过node服务使用puppeteer访问本地网页生成模板之后获取网页内容
具体实现方案
- 新建一个vue项目加载hiprint改造过的依赖开发一个页面在新建的页面中接受模板的id,通过java接口获取templateJson和printData填充数据后将代码渲染到页面。
- 新建一个node服务提供一个接口供后端来调用传入模板的id,node服务通过puppeteer库打开第一步的vue项目页面,当页面渲染后之后获取html代码,再将html返回给后端。
通过以上步骤可以生成hiprint模板的代码,给到后端去生成pdf文件。
存在问题:
- 通过puppeteer来模拟浏览器环境和操作存在性能问题,目前第一次调用接口响应3s+,后续调用均在800ms左右。
- 后续node服务运行在服务器上可能存在并发问题。
- 如果node服务调用次数过多内存可能会崩,需要制定重启机制。
- node服务需要有日志相关的记录,为后期问题排查提供帮助。
- 需要为node服务部署做相关准备工作。
预研demo项目地址:
https://gitee.com/qmxx-demo/hiprint2html.git
参考文档:
- puppeteer中文文档: https://pptr.nodejs.cn/
- hiprint文档:http://hiprint.io/demo
- midwayjs文档:https://midwayjs.org/docs/intro
- puppeteer性能优化: a. https://blog.it2048.cn/article-puppeteer-speed-up b. https://blog.csdn.net/weixin_34092455/article/details/91449604
问题记录:
- 安装puppeteer时候报错 ==Error: ERROR: Failed to set up chrome-headless-shell v124.0.6367.78! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.== 解决方法:https://blog.csdn.net/weixin_56307657/article/details/134963129
- puppeteer读取本地html存在页面加载不了的问题。改为访问远端页面。
方案2:通过electron开发一个应用,通过接口调用去打开页面生成页面之后返回网页内容
打包之后文件体积较大,可能存在性能问题,暂不采用。
上一篇:批量打印功能预研
下一篇:没有了哦