一个基于 wkhtmltox 实现的开箱即用的 http 服务,帮助服务端快速生成 pdf/image

前情提要

工作中有个项目需要将 html 转成 pdf,那时候用的是 dompdf/dompdf 。后面又来了个需求,需要将 html 转成 image。后来去找了下发现 wkhtmltopdf 既可以生成 pdf 又可以生成 html。立马喜出望外地折腾起来。

不可否认 wkhtmltopdfwkhtmltoimage 可能不是一个最好的选择,毕竟谷歌的 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 查看。

相关文档

更新计划

计划使用 gin 来实现参数验证、鉴权、限流等复杂逻辑。

免费服务

如果你对 Docker 尚未了解,但又想快速使用;抑或你仅仅只想体验一下。

这里提供一个已经部署好的免费服务,请至 免费的 Html2X 服务 查看。

License

MIT

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!