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>
目录
相关文章
|
机器学习/深度学习 数据采集 自然语言处理
ModelScope保姆式教程带你玩转语言生成模型
PALM预训练语言生成模型是针对实际场景中常见的文本生成需求所设计的一个模型。模型利用大量无监督数据,通过结合自编码和自回归任务进行预训练,更贴合下游生成任务所同时需要的理解和生成能力。
34192 4
ModelScope保姆式教程带你玩转语言生成模型
|
2月前
|
机器学习/深度学习 算法 物联网
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
本文提出一种面向能效与低延迟的离线语音控制智能家居方案,通过将关键词识别(KWS)集成至终端设备,结合去中心化Mesh网络与CoAP协议,实现本地化语音处理。相较云端方案,系统能耗降低98%,延迟减少75%以上,显著提升响应速度与能源效率,为绿色智能家居提供可行路径。(236字)
259 17
面向能效和低延迟的语音控制智能家居:离线语音识别与物联网集成方案——论文阅读
|
10月前
|
存储 弹性计算 安全
阿里云服务器经济型e实例4核16G和8核32G特惠云服务器测评参考
阿里云有两款特惠云服务器——4核16G10M带宽和4核32G10M带宽,系统盘都是100G ESSD Entry,价格分别仅需70元1个月和160元1个月。那么,这两款云服务器到底性能如何?适用于哪些场景?是否值得购买?本文将全方位深入测评这两款特惠云服务器,并为您提供详细的购买建议。
|
8月前
|
小程序 数据管理
如何免费制作简历二维码,让你的简历脱颖而出
通过在简历上添加二维码,HR可以通过手机扫码,访问更多无法直接呈现在纸面上的内容——包括个人作品集、视频介绍、设计稿、详细项目经历甚至是动态的职业成长记录,让招聘者可以更全面的了解你
|
8月前
|
机器学习/深度学习 人工智能 编解码
Step-Video-TI2V:开源视频生成核弹!300亿参数+102帧电影运镜
Step-Video-TI2V 是阶跃星辰推出的开源图生视频模型,支持根据文本和图像生成高质量视频,具备动态性调节和多种镜头运动控制功能,适用于动画制作、短视频创作等场景。
522 0
Step-Video-TI2V:开源视频生成核弹!300亿参数+102帧电影运镜
|
11月前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
721 0
|
Python
Python tkinter 初探Toplevel控件搭建父子窗口
Python tkinter 初探Toplevel控件搭建父子窗口
503 0
Python tkinter 初探Toplevel控件搭建父子窗口
|
机器学习/深度学习 算法 Python
CatBoost中级教程:特征组合与建模技巧
CatBoost中级教程:特征组合与建模技巧【2月更文挑战第11天】
614 0
|
移动开发 小程序 API
开源即时通讯IM框架 MobileIMSDK v6.4 发布
本次更新为次要版本更新,进行了若干优化(更新历史详见:码云 Release Notes、Github Release Notes)。MobileIMSDK 可能是市面上唯一同时支持 UDP+TCP+WebSocket 三种协议的同类开源IM框架。
367 0