前情提要
工作中有个我的项目须要将 html 转成 pdf,那时候用的是 dompdf/dompdf
。前面又来了个需要,须要将 html 转成 image。起初去找了下发现 wkhtmltopdf
既能够生成 pdf 又能够生成 html。立马叫苦不迭地折腾起来。
不可否认 wkhtmltopdf
和 wkhtmltoimage
可能不是一个最好的抉择,毕竟谷歌的 Puppeteer
都比它厉害得多。但它作为一个 cli 软件,能够疾速带咱们实现咱们想要的。
另外你可能会问为什么不必第三方包呢。因为工作中的我的项目部署在 docker 上,根底镜像用的是 alpine,这可能会给咱们后续操作带来不可预知的问题。再加上后续可能会有多个我的项目一起应用这项服务,所以目前是用 go
将其包装成一个 HTTP 服务,供所有我的项目拜访调用。
我的项目地址:OverNaive/Html2X
,以下其实是 README 文档。
简短介绍
Html2X 是一个基于 wkhtmltox 实现的开箱即用的 http 服务,帮忙服务端疾速生成 pdf/image。
我的项目目标
1. 以 http 服务代替第三方包,与业务零碎解耦,可独立更新;
2. 将 wkhtmltox 的装置封装于 Docker 内,可疾速更新版本;
3. 间接拉取镜像即可疾速实现部署,真正的开箱即用。
如何应用
请先自行装置好 Docker
1. 获取镜像
- 本地构建镜像:
docker build -t overnaive/html2x
- 近程拉取镜像:
docker pull overnaive/html2x
2. 运行镜像
应用命令:docker run --name html2x -p 8080:8888 -it -d overnaive/html2x
,即可运行一个容器。
此时,一个 http 服务已运行。
API 文档
请至 API for Html2X 查看。
相干文档
- Docker 学习材料:Docker —— 从入门到实际
- wkhtmltopdf 阐明文档
- wkhtmltoimage 阐明文档
更新打算
打算应用 gin 来实现参数验证、鉴权、限流等简单逻辑。
收费服务
如果你对 Docker 尚未理解,但又想疾速应用;抑或你仅仅只想体验一下。
这里提供一个曾经部署好的收费服务,请至 收费的 Html2X 服务 查看。
License
MIT