使用Python正确格式的HTML到PDF

时间:2018-10-14 09:47:11

标签: python python-3.x macos pdfkit weasyprint

我一直在尝试使用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相同。

1 个答案:

答案 0 :(得分:0)

在弄乱了上述软件包很长时间之后,我仍然在努力获得正确的外观输出。

我已经解决了使用webkit2png的问题,这几乎可以完美地工作,唯一的缺点是我在某些保存的文件中显示了cookie弹出消息。