使用的工具或包
WKhtmlTopdf
WKhtmlTopdf一个使用QT WebKit引擎做渲染,能够将html转换为pdf文档或图片的命令行工具。该工具支持多平台,包括:Windows、Linux、OS X等。
- CentOS下的安装
#yum install wkhtmltopdf
- Detian/Ubuntu下的安装
#apt-get install wkhtmltopdf
pdfkit
pdfkit是WKhtmlTopdf的python封装。
#pip install pdfkit
参数说明
未完待续
遇到的问题
1、CentOS下无法安装WKhtmlTopdf
运行yum install wkhtmltopdf
时,报如下错误:
There was a problem importing one of the Python modules required to run yum.
查看当前系统使用的Python版本,命令如下:
#python -V
Python 2.7.11
由于yum命令不兼容Python2.7,所以需要修改/usr/bin/yum文件,将文件的第一行:
#!/usr/bin/python
修改为:
#!/usr/bin/python2.6
修改完成后,运行如下命令安装WKhtmlTopdf,仍然没有安装成功。
#yum install wkhtmltopdf
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
No package wkhtmltopdf available.
Error: Nothing to do
查看CentOS版本,命令如下:
#lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
尝试另一种安装:
#wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
#xz -d wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
#tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar
#cd wkhtmltox/bin
#sudo mv ./wkhtmltopdf /usr/bin/wkhtmltopdf
#sudo chmod +x /usr/bin/wkhtmltopdf
此时,通过如下命令验证是否安装成功:
#wkhtmltopdf -V
wkhtmltopdf 0.12.4 (with patched qt)
2、html转pdf失败
可能的原因:
– js中包含Map对象
3、如果table跨页面,则会出现表头跨页面显示的情况
可能的情况:table中使用thead和th,代码如下:
<table>
<thead>
<tr>
<th>aaa</th>
<th>bbb</th>
</tr>
</thead>
<tbody>
<tr>
<td>ccc</td>
<td>ddd</td>
</tr>
</tbody>
</table>
解决方法:不使用thead和th,代码如下:
<table>
<tr>
<th>aaa</th>
<th>bbb</th>
</tr>
<tr>
<td>ccc</td>
<td>ddd</td>
</tr>
</table>
4、页面显示文字过小
可能的情况:zoom参数设置的过小(默认值为1)
解决方法:通过调整zoom参数,是页面显示效果适中
5、wkhtmltopdf: cannot connect to X server
解决方法:
安装xvfb
#yum install xorg-x11-server-Xvfb
安装完成后,使用以下命令,把HTML转换成PDF:
#xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf html页面链接地址 保存到本地的路径
在转换后的PDF文件中,可能会出现中文乱码或空白的情况。解决此问题,可以将simsun.ttc文件保存在/usr/share/fonts/目录下。
作者:cuckoo5
原文链接:https://blog.csdn.net/wudj810818/article/details/77000785