github: https://github.com/wkhtmltopdf/wkhtmltopdf
Mac环境:
brew install Caskroom/cask/wkhtmltopdf
linux环境(CentOS)
cat /proc/version # 查看系统版本信息 yum install wkhtmltopdf • 1 • 2
测试
$ 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 $*
参考
- https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
- 使用python把html网页转成pdf文件
- html转pdf工具wkhtmltopdf
- Centos7安装使用wkhtmltopdf实现html页面转换成pdf文档的具体操作
https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server
https://stackoverflow.com/questions/9604625/wkhtmltopdf-cannot-connect-to-x-server
https://stackoverflow.com/questions/30504274/xvfb-run-line-171-kill-25939-no-such-process