doctron 功能简介
doctron 主要是Github 上面 go 语言开发的一个开源的 html 转PDF的工具。项目地址
业务场景
比如有一个食谱的查看详情页面,需要将其导出为 PDF 文件,后端涉及数据较多,处理不好排版的问题,开发工作量大不说,代码还特别臃肿。咱应该把这些时间用来做更有意义的事情!
下载与运行
上面已经附了源码地址,下载完成后查看下述文件,我们这里使用 “从源码运行”。如果没有配置 Go环境变量,请看 Windows 安装GoPath
在cmd 中运行: go run main.go --config=./conf/default.yaml
,是不是卡在这里半天都没有反应?像下面这样:
到这里不用着急,既然踩过的坑就一定能解决的。办法是:
cmd 先运行: go env -w GOPROXY=https://goproxy.cn
,
再执行: go run main.go --config=./conf/default.yaml
过程会加载一些依赖,然后很快就跑起来了:
测试
在浏览器的访问:http://127.0.0.1:8080/convert/html2pdf?u=doctron&p=lampnick&url=https://www.baidu.com
URL 中支持具体的参数配置:
支持的参数
u/username // doctron 用户名
p/password // doctron 密码
uploadKey // 上传到OSS的文件名
url //需要转换的html URL
landscape // 横向打印格式.默认false.表示纵向
displayHeaderFooter // 是否显示页头页尾,默认false.
printBackground // 是否打印背景。默认false.
scale // 缩放比例. 默认1.
paperWidth // 纸张宽度,单位英尺。默认8.5英尺.
paperHeight // 纸张高度,单位英尺。默认11英尺.
marginTop // 上外边距,单位英尺。默认纸0.4英尺(1厘米).
marginBottom // 下外边距,单位英尺。默认纸0.4英尺(1厘米).
marginLeft // 左外边距,单位英尺。默认纸0.4英尺(1厘米). =
marginRight // 右外边距,单位英尺。默认纸0.4英尺(1厘米).
pageRanges // 需要打印的PDF的页数。默认为空字符串,表示所有页面.
ignoreInvalidPageRanges // 是否静默的忽略掉不可用的但是成功解析的页面。例如'3-2',默认false.
WaitingTime // 页面加载后等待时长. 默认为0代表不等待. 单位:毫秒
参考官网格式传值: