基于wkhtmltopdf解决转换Pdf在不同平台的兼容问题

635 阅读1分钟

Linux安装wkhtmltopdf

说明:

由于java io.woo.htmltopdf依赖库在windows测试能运行,一旦部署到线上总是报依赖的so文件找不到,按照官网文档安装各种依赖都不行,只能放弃。因此本文直接用linux或者windows上htmltopdf工具,执行命令行的方式作为替代方案。对于各类解决方案的对比表,可见blog.csdn.net/qq_34190023…

步骤:

  1. wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
  2. tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
  3. cd wkhtmltox/bin
  4. sudo mv ./wkhtmltopdf /usr/local/bin/wkhtmltopdf

测试:

在/usr/local/bin/下执行以下命令 wkhtmltopdf aaa.html aaa.pdf

遇到的问题1:

经过测试生成的文件中文乱码,因此需要将字体库拷贝到Linux中的/usr/share/fonts 打开windows系统,C:\Windows\Fonts

将所有的字体文件拷贝至服务器 /usr/share/fonts

更新服务器的字体库 fc-cache -f -v

重新测试 wkhtmltopdf aaa.html aaa.pdf

将该pdf拷贝到宿主机,查看中文无乱码、图形显示正常。

image.png

image.png

注:

生成html文件时,为保证图片的正常显示,需要将内容转换为base64编码。可结合中文乱码问题,进行统一测试。