添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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.mitnick.fun

如果您觉得Doctron这个服务还不错,请给个小星星,fork一下哦。您的鼓励是我前进的动力!

  • 使用chrome内核保证高质量将HTML转为pdf/图片。
  • 简易部署(提供docker镜像,Dockerfile以及k8s yaml配置文件)。
  • 支持丰富的转换参数。
  • 转为pdf和图片支持自定义大小。
  • 无状态服务支持。
  • 使用Docker
    #使用默认配置
    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

    doctron-client-go

    Doctron php client

    doctron-client-php

    License

    Doctron is released under the Apache 2.0 license. See LICENSE.txt

    转载请注明: MitNick » php/golang使用chrome内核实现服务器端html转pdf,html转图片,pdf加水印,pdf转图片等

    喜欢 ( 10 ) or 分享 ( 0 )
  • golang 使用 wechatpay-apiv3 初始化客户端时报错”init client setting err:decrypt downloaded certificate failed: cipher: message authentication failed”
  • github拉代码慢的解决方案(mac/windows)
  • Linux grep 时不显示自身程序以及kill杀死进程的方法
  • php 使用fopen/readfile等函数时打开https类型的URL返回false的解决方案
  • 使用golang进行kong限流插件开发
  • 关于vgdisplay VG Size中的”
  • 为什么ENOENT常量表示没有这样的文件或目录no such file or directory
  • k8s 1.14部署metrics server显示running但是报ServiceUnavailable错误
  • golang 使用 wechatpay-apiv3 初始化客户端时报错”init client setting err:decrypt downloaded certificate failed: cipher: message authentication failed” github拉代码慢的解决方案(mac/windows) Linux grep 时不显示自身程序以及kill杀死进程的方法 php 使用fopen/readfile等函数时打开https类型的URL返回false的解决方案 php/golang使用chrome内核实现服务器端html转pdf,html转图片,pdf加水印,pdf转图片等
  • 2024年2月
  • 2022年4月
  • 2021年6月
  • 2020年12月
  • 2020年10月
  • 2020年9月
  • 2020年6月
  • 2020年5月
  • 2020年3月
  • 2020年2月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2018年12月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年5月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年5月
  • 2016年3月
  • 2016年2月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  •