一个基于 wkhtmltox 实现的开箱即用的 http 服务,帮助服务端快速生成 pdf/image
Posted OverNaive
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个基于 wkhtmltox 实现的开箱即用的 http 服务,帮助服务端快速生成 pdf/image相关的知识,希望对你有一定的参考价值。
前情提要
工作中有个项目需要将 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
以上是关于一个基于 wkhtmltox 实现的开箱即用的 http 服务,帮助服务端快速生成 pdf/image的主要内容,如果未能解决你的问题,请参考以下文章