Skip to content

部署文档打印工具

文档打印工具提供更好的打印效果,可以实现与office办公软件几乎一致的打印效果。并且可以支持批量打印(注意:转换过程会耗费较多系统资源,对内存和CPU消耗较大)

提示

如果不安装文档打印工具,系统将采用默认打印方式,由于解析方式的差异,无法保证打印的效果

1.创建配置文件:print.json

配置参数说明

bash
HTTP_PORT        # 【必填】http协议端口号(非必要情况请勿修改端口号,保持为:18086)
INSTANCE_NUM     # 【可选】服务实例数量,默认为2(数量越大并发处理能力越强,资源消耗越大,建议不要设置超过16)
TO_JPG_SECRET    # 【可选】将 PDF 转为 JPG 的接口调用秘钥(只有当秘钥正确时才允许调用,防止接口被恶意调用)

文件内容示例

json
{
  "HTTP_PORT": 18086,
  "INSTANCE_NUM": 2,
  "TO_JPG_SECRET": "this is secret"
}

1.1.一键创建

下方参数后,将其复制粘贴至命令行,敲击回车键即可

bash
cat > /etc/hzy/print.json <<- EOF
{
  "HTTP_PORT": 18086,
  "INSTANCE_NUM": 2,
  "TO_JPG_SECRET": "this is secret"
}
EOF

如何验证执行结果?

命令行输入:cat /etc/hzy/print.json,后敲击回车键即可查看文件内容

1.2.手动创建

bash
cd /etc/hzy && vim -n print.json

注意

将使用vim编辑文件内容,点击查看vim的使用说明

2.运行文档打印工具

启动服务

特别说明

由于字体版权限制,仅内置以下免费商用字体

  • 方正黑体
  • 方正仿宋
  • 方正楷体
  • 思源黑体
  • 思源宋体

如果以上字体无法满足打印需求,可以使用自定义字体库,方法如下:

注意:请确保自定义字体库中的字体,已经获取了商用授权,未经授权使用商业字体可能有法律风险!

增加启动参数:-v [自定义字体路径]:/usr/share/fonts/own

提示:自定义字体路径是宿主机文件夹路径

完整配置示例:docker run --privileged -e TZ=Asia/Shanghai -itd -v /etc/hzy:/root/conf -v /usr/share/fonts/own:/usr/share/fonts/own --restart always -p 18086:18086 --name hzy-print registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:print.x86.2.1.0

注意

使用windows部署时,需要替换相关目录,点击详情查看

bash
docker run --privileged -e TZ=Asia/Shanghai -itd -v /etc/hzy:/root/conf --restart always -p 18086:18086 --name hzy-print registry.cn-hangzhou.aliyuncs.com/hzy0code/hzy-utils:print.x86.2.1.0

重启服务

注意

修改了配置文件后,需要使用以下命令重启服务

bash
docker restart hzy-print

3.配置文档打印工具

打印插件地址配置到管理后台,即可启用插件打印(无需重启服务)

特别说明

当系统使用https访问方式,由于浏览器安全机制所以必须配置为:以https方式访问插件


配置方式一

使用https插件,插件已内置代理配置,启用插件即可


配置方式二

自建nginx反向代理,点击查看配置

配置示例

请将替换下方示例的IP端口IP也可以使用域名替换,如果是https访问请查看

4.PDF 转 JPG 接口

打印插件提供了将pdf文件转为jpg图片的接口,调用方式示例如下:

调用方式示例


假设参数如下:

则调用方式如下:

bash
POST /print/pdf_to_jpg HTTP/1.1
Host: https://0codepaas.com
Secret: this is secret
Content-Type: application/json

{
    "pdfUrl" : "https://0codepaas.com/download/test.pdf"
}

参数说明:

  • Secretprint.json中配置的TO_JPG_SECRET(未配置则不用传递此字段)
  • Host:打印插件所在主机地址
  • pdfUrl:pdf文件的访问url

返回值如下:

json
{
    "fileName": "1762255670192_5t7Lhk0xMQGQ.jpg"
}

特别说明

注意:生成的JPG图片仅保留20分钟,超过时间后将自动删除(请于图片删除前使用工作流-上传文件节点上传图片到服务器)

转换并获取到fileName后,可以通过以下方式获取到转换后的图片:

调用方式示例


假设参数如下:

  • 插件所在主机地址https://0codepaas.com
  • 上面获取到的fileName:1762255670192_5t7Lhk0xMQGQ.jpg

则调用方式如下:

bash
GET /print/download/1762255670192_5t7Lhk0xMQGQ.jpg HTTP/1.1
Host: https://0codepaas.com