学委之前写过一篇把热榜保存为html文件的,这次利用上次写的部分代码继续拓展:生成pdf文件。
我们需要的就是这个软件: wkhtmltopdf
它做的事就一件很专注:网页html生成 pdf (或者图片)
第一步,下载安装
下载苹果电脑的pkg文件。
学委用的是苹果电脑,下载的是下面这个软件。
点击下一步一步的,默认设置就好。
第二步,验证一下,把百度生成pdf
打开任意一个终端,运行下面的脚本。
#这里雷学委直接把百度首页保持为pdf wkhtmltopdf https://baidu.com baidu.pdf #保持内容为图片 wkhtmltoimage https://baidu.com baidu.png
如下图所示, wkhtmltopdf 这个软件不止生成pdf文件,还能生存图片。
随便找个文章链接就能保存为pdf
比如把学委的文章保存为pdf
wkhtmltopdf https://blog.csdn.net/geeklevin/article/details/120073157\?spm\=1001.2014.3001.5501 leixuewei.01.pdf
保存的pdf文件如下:
这个软件就是直接把整个网页变成pdf,原样保存。
第三步,高级定制。用python来定制生成pdf
这里把前面文章 ❤️爬虫截热榜长屏不方便阅读!推荐dominate直接生成报告❤️ 把里面的report.py 复制一下。
1 先安装下面的依赖
pdfkit dominate
2 编写下面的代码定制网页来实现pdf定制
然后编写下面的代码,调用report.py 生成表格页面,保存为html
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/9/4 8:38 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷学委 # @XueWeiTag: CodingDemo # @File : pdf_demo.py # @Project : pydocs import pdfkit import report # PDF中包含的文字 lxw_tuples = [] lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11143102.html?spm=1001.2014.3001.5482","雷学委趣味编程故事汇编")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11235756.html","编程新手指南")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10980215.html","Python从入门到精通")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11159040.html","学会Python等于拥有整个世界!")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11253201.html","沉住气学习爬虫")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11099259.html","架构运维")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10461966.html","雷学委之NodeJS爱好系列")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10532880.html","雷学委的DevOps一条龙")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11291617.html","LINUX程序员都要懂")) lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10725914.html","[小白向Linux基操]")) # 调用之前热榜保存为html文章的generate_html,根据专栏数据生成html页面代码 #https://blog.csdn.net/geeklevin/article/details/119657231?spm=1001.2014.3001.5501 内实现的report.py脚本的generate_html函数 html = report.generate_html(lxw_tuples) # 这里雷学委把html源代码转换为PDF pdfkit.from_string(html, './leixuewei_zhuanlan.pdf')
效果如下:
延伸
多数情况下,我们可以使用wkhtmltopdf来直接把链接直接保存为pdf文件。
pdf高级定制参考上面的代码。从上面的代码,我们可以看出,pdfkit可以根据任意的html代码来生成pdf。