php/golang使用chrome内核实现服务器端html转pdf,html转图片,pdf加水印,pdf转图片等
Doctron github地址: https://github.com/lampnick/doctron
Doctron简介
Doctron是基于Docker、无状态、简单、快速、高质量的文档转换服务。目前支持将html转为pdf、图片(使用chrome(Chromium)浏览器内核,保证转换质量)。支持PDF添加水印。
您可以打开下面的链接在线体验转换质量,由于服务器配置较低,以及网络原因,转换可能会慢一点,实际部署到服务器速度会不一样。
点我在线体验: http://doctron.lampnick.com
如果您觉得Doctron这个服务还不错,请给个小星星,fork一下哦。您的鼓励是我前进的动力!
#使用默认配置
docker run -p 8080:8080 --rm --name doctron-alpine lampnick/doctron
#使用自定义配置文件
docker run -p 8080:8080 --rm --name doctron-alpine \
-v <本地doctron.yaml配置文件>:/doctron.yaml \
lampnick/doctron
使用k8s
kubectl apply -f https://raw.githubusercontent.com/lampnick/doctron/master/manifests/k8s-doctron.yaml
从源码运行
git clone https://github.com/lampnick/doctron.git
cd doctron
go run main.go
Html转pdf
http://127.0.0.1:8080/convert/html2pdf?u=doctron&p=lampnick&url=<url>
自定义大小
http://127.0.0.1:8080/convert/html2pdf?u=doctron&p=lampnick&url=<url>&marginTop=0&marginLeft=0&marginRight=0&marginbottom=0&paperwidth=4.1
支持的参数
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.
Html转图片
http://127.0.0.1:8080/convert/html2image?u=doctron&p=lampnick&url=<url>
自定义大小
http://127.0.0.1:8080/convert/html2image?u=doctron&p=lampnick&url=<url>&customClip=true&clipX=0&clipY=0&clipWidth=400&clipHeight=1500&clipScale=2&format=jpeg&Quality=80
支持的参数
u/username // doctron 用户名
p/password // doctron 密码
uploadKey // 上传到OSS的文件名
url // 需要转换的html URL
format // 图片压缩格式(defaults to png),还支持jpeg.
quality // jpeg图片压缩质量 [0..100] (jpeg only).
customClip // 只有设置了这个值,下面的裁剪才会生效.否则不生效.
clipX // 裁剪X轴方向距离.
clipY // 裁剪Y轴方向距离.
clipWidth // 裁剪宽度.
clipHeight // 裁剪高度.
Pdf加水印
添加图片水印
http://127.0.0.1:8080/convert/pdfAddWatermark?u=doctron&p=lampnick&url=<pdf url>&imageUrl=<image url>
支持的参数
u/username // doctron 用户名
p/password // doctron 密码
uploadKey // 上传到OSS的文件名
url // 需要转换的html URL
imageUrl // 图片水印URL,支持png/jpeg
Pdf转image
coming soon
Doctron Client
Doctron go client