HiPrint 无浏览器生成PDF和图片
1. 项目背景
HIPrint 是一款基于 Web 的打印解决方案,旨在解决企业内部打印管理的问题。HIPrint 提供了一套完整的前端方案,包括打印模板设计、数据渲染、打印预览等功能。同时,HiPrint也提供了一套直接打印的解决方案,支持Windows、Linux、MacOS等操作系统。但是,HiPrint需要在浏览器中进行渲染,对于一些不支持浏览器的场景,HiPrint无法使用。因此,我们需要一套后端解决方案,来解决这个问题。
2. 解决问题
在某些场景下,我们已经设计好了HiPrint的模板,但是无法在浏览器中进行渲染,我们需要一套后端解决方案,来解决这个问题。 比如:
- 需要定时在无前端浏览器环境的情况下将对应的模板生成的PDF文件以邮件等方式发送给对应的人员。
- 某些环境下没有浏览器的Window对象,无法使用HiPrint,如小程序,此时我们可以透过在生成图片等方式然后在对应的场景中进行展示。
3. 使用方式
我们提供一个标准的RESTful API接口,通过这个接口,我们可以将模板及数据传递给后端,后端进行渲染,然后返回给前端。
4. 接口定义
4.1 POST /hiprint
请求参数如下:
{
"type": "pdf", // pdf | img
"template": "模板内容",
"data": "数据内容"
}
- type: 返回的类型,pdf 或 img, 默认为 pdf,如果需要同时返回PDF和图片,可以传递 img|pdf
- template: HiPrint模板JSON字符串
- data: HiPrint数据JSON字符串
当数据渲染生成了多个页面时,返回的图片将是多张图片的数组。
4.2 返回结果
接口将以base64的形式返回结果,
{
"pics": ["base64图片1", "base64图片2"],
"pdf": "base64 pdf"
}
5. 返回案例
生成的图片效果如下
生成的PDF效果如下