Python编程:使用wkhtmltopdf将html网页转成pdf文件

简介: Python编程:使用wkhtmltopdf将html网页转成pdf文件

官网:https://wkhtmltopdf.org/

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

效果还行,不过部分内容没有被保存

11.png

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>
目录
相关文章
|
SQL 数据库 Python
SQLAlchemy中filter函数的使用
SQLAlchemy中filter函数的使用
|
9月前
|
机器学习/深度学习 算法 物联网
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
本文提出一种面向能效与低延迟的离线语音控制智能家居方案,通过将关键词识别(KWS)集成至终端设备,结合去中心化Mesh网络与CoAP协议,实现本地化语音处理。相较云端方案,系统能耗降低98%,延迟减少75%以上,显著提升响应速度与能源效率,为绿色智能家居提供可行路径。(236字)
812 17
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
|
机器学习/深度学习 人工智能 编解码
Step-Video-TI2V:开源视频生成核弹!300亿参数+102帧电影运镜
Step-Video-TI2V 是阶跃星辰推出的开源图生视频模型,支持根据文本和图像生成高质量视频,具备动态性调节和多种镜头运动控制功能,适用于动画制作、短视频创作等场景。
1220 0
Step-Video-TI2V:开源视频生成核弹!300亿参数+102帧电影运镜
|
移动开发 JavaScript 前端开发
如何使用 JavaScript 进行跨域请求?
如何使用 JavaScript 进行跨域请求?
|
SQL HIVE
Hive之parse_url函数详解
Hive的parse_url函数使用 parse_url(url, partToExtract[, key]) - extracts a part from a URL 解析URL字符串 partToExtract的选项包含[HOST,PATH,QU...
3677 0
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
1161 0
|
Shell 开发工具 git
(亲测好用)构建React-app应用时create-react-app卡住超慢的解决办法
(亲测好用)构建React-app应用时create-react-app卡住超慢的解决办法
1590 0
(亲测好用)构建React-app应用时create-react-app卡住超慢的解决办法
|
存储 缓存 分布式计算
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native
本篇文章介绍了 Gluten 项目的背景和目标,以及它如何解决基于 Apache Spark 的数据负载场景中的 CPU 计算瓶颈。此外,还详细介绍了 Gluten 与 Celeborn 的集成。Celeborn 采用了 Push Shuffle 的设计,通过远端存储、数据重组、内存缓存、多副本等设计,不仅进一步提升 Gluten Shuffle 的性能和稳定性,还使得 Gluten 拥有更好的弹性,从而更好的拥抱云原生。
3376 4
Gluten + Celeborn: 让 Native Spark 拥抱 Cloud Native
|
程序员 定位技术
抖音超火动态爱心HTML的爱心完整分享。
在我们生活中我们可能不善言辞唯唯诺诺的经常被人说我们不懂浪漫,不懂情调.... 但是我们程序员浪漫起来,那就是不鸣则已,一鸣惊人啊!让我们用我们手中代码表示我们对她的喜欢吧!让我们用我们手中的代码告诉他们,我们程序员从来不是不懂浪漫的技术宅,格子男,我们只是内敛含蓄不懂哪些花言巧语吧!虽然我们的头发会很容易掉光光,但是我的爱不会掉光光。加油!让我们搞起来吧!
抖音超火动态爱心HTML的爱心完整分享。