python - 从 Python 以正确格式将 HTML 转换为 PDF
问题描述
我一直在尝试使用 Weasyprint 和 PDFKIT 将网页转换为 pdf。我已成功保存了包含部分页面的 PDF。在 weasyprint 中,我无法弄清楚如何从页面中获取正确的 CSS 样式。使用 PDFKIT 我似乎在检索网站的移动版本而不是整页。我正在使用python 3.6。
from urllib.request import Request, urlopen
import webbrowser
import pdfkit
import weasyprint
#pdfkit.from_url('http://google.com', 'out.pdf')
print("started script")
website = 'https://www.bbcgoodfood.com/recipes/3228/chilli-con-carne'
filename = 'savedPDF.pdf'
req = Request(website, headers={'User-Agent': 'Mozilla/5.0'})
print(urlopen(req).getcode())
temp = urlopen(req).getcode()
if temp == 200:
pdfkit.from_url(website, 'out.pdf')
weasyprint.HTML(website).write_pdf('/Users/me/Documents/weasyprint.pdf')
weasyprint.HTML(website).write_pdf(filename,stylesheets=[weasyprint.CSS('https://www.bbcgoodfood.com/sites/default/files/advagg_css/css__pDgD1vQBFL4LZ6AO_Uw8wEc3MBEaHOzbhMtPie685P8__Kxa0k0VBbKvV5-TOMN_kW3S7CrkFMM4Zf0LjDvzMFnk__mXPuNFBZ0nocZLk5Qifty02tMfg-gomArSBCcGw1mLo.css')])
我在 pdfkit 中看不到一个选项来指定要连接的内容。此外,从 weasyprint 创建的两个 PDF 是相同的。
解决方案
在对上述软件包进行了相当长的一段时间后,我仍然在努力实现正确的输出。
我已经解决了使用 webkit2png,这几乎可以完美地工作,唯一的缺点是我在一些保存的文件中出现了一个 cookie 弹出消息。
推荐阅读
- python - Heroku:Python Django 部署突然失败
- python-3.x - 在熊猫数据框中创建聚合列
- javascript - 在 React 中渲染新组件 onclick
- python - 如何从数据集中删除 EXIF 数据?
- api - 从 Google 电子表格请求 BigQuery API 会产生错误
- python-3.x - 使用python提取zip文件并保留顶级文件夹
- .net-core - 使用带有 samba 挂载的 C# dotnet core CENTOS 对 File.Copy 的权限被拒绝
- firebase - Firebase 实时数据库 + nodejs(auth.uid === $uid 规则)
- powershell - Powershell - 如何添加列宽
- ios - 在 Xcode 模拟器上保存图像