github: https://github.com/wkhtmltopdf/wkhtmltopdf
Mac环境:
brew install Caskroom/cask/wkhtmltopdf
linux环境(CentOS)
cat /proc/version # 查看系统版本信息
yum install wkhtmltopdf
测试
$ wkhtmltopdf www.baidu.com 1.pdf
效果还行,不过部分内容没有被保存
Python接口包
pdfkit: https://github.com/JazzCore/python-pdfkit
pip install pdfkit
使用
import pdfkit
pdfkit.from_url('http://google.com';, 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')
报错及解决
问题一
报错信息
You will need to run wkhtmltopdf within a "virtual" X server
或者
wkhtmltopdf: cannot connect to X server
解决:
(1)安装 xvfb 重命名 wkhtmltopdf
yum install xorg-x11-server-Xvfb
mv /usr/bin/wkhtmltopdf /usr/bin/wkhtmltopdf_bin
(2)新建/usr/bin/wkhtmltopdf.sh 文件
#! /usr/bin/bash
xvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf_bin $*
(3)赋予权限创建链接
chmod a+x /usr/bin/wkhtmltopdf.sh
ln -s /usr/bin/wkhtmltopdf.sh /usr/bin/wkhtmltopdf
4)测试效果
wkhtmltopdf https://www.baidu.com 1.pdf
问题二
报错信息
/usr/bin/xvfb-run: 第 186 行:kill: (7772) - 没有那个进程
解决:
在/usr/bin/wkhtmltopdf.sh 文件中 加入 -a 参数
#! /usr/bin/bash
xvfb-run -a --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf_bin $*
参考
1.https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
2.使用python把html网页转成pdf文件
3.html转pdf工具wkhtmltopdf
4.Centos7安装使用wkhtmltopdf实现html页面转换成pdf文档的具体操作
5.https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server
6.https://stackoverflow.com/questions/9604625/wkhtmltopdf-cannot-connect-to-x-server
7.https://stackoverflow.com/questions/30504274/xvfb-run-line-171-kill-25939-no-such-process
</div>