完全支持 CSS3 和 HTML5 的 Python HTML 到 PDF

Posted

技术标签:

【中文标题】完全支持 CSS3 和 HTML5 的 Python HTML 到 PDF【英文标题】:Python HTML to PDF with full support for CSS3 and HTML5 【发布时间】:2015-02-23 07:42:48 【问题描述】:

我正在处理一个 Python/Django 项目,我必须将我的一些高度风格化的 html 内容转换为 PDF。目前我正在使用wkhtmltopdf 库。虽然转换工作几乎完美,但在 CSS3 和 HTML5 支持方面存在一些问题。某些样式无法正确转换为 pdf,我必须更改 CSS 和 HTML 以使其更易于打印,以便我可以正确转换为 PDF。直到最近,我还认为没有工具可以实现 100% 的转换,但我通过在线演示 http://www.html-to-pdf.net/free-online-pdf-converter.aspx 发现了这一点,它具有更出色的 HTML5 和 CSS3 支持,但它是为 .NET 编写的。在 Python 支持下,这种级别的转换有什么用吗?

注意:我将有很多需要转换的 HTML 页面,并且为每个页面调整 CSS 对我来说不是一个好的选择。我需要一些可以将样式从 HTML 转换为 PDF 的东西。

【问题讨论】:

你找到解决办法了吗? 现在是 2017 年,你使用的库是 100% 吗? 嘿,现在是 2019 年,你有没有找到任何支持完整 css3 和 html5 的 python 库。 @Ales Malticic 是否认为我的回答会对您的问题有所帮助? 2021 年,有一个好的库很幸运 【参考方案1】:

你应该检查weasyprint,它支持大多数CSS3和HTML5,据我所知目前不支持flex-wrap: wrap属性。

我使用xhtml2pdf 和Reportlab 它支持一些 CSS3(支持HTML5 CSS 2.1)。如果你有像 weasyprint 这样更好更简单的工具,我不推荐它。

Simple Django Tutorial with weasyprint

【讨论】:

【参考方案2】:

如果您或其他人仍在寻找一些解决方案,请查看以下内容: Render HTML to PDF in Django site

还有 https://github.com/chrisglass/xhtml2pdf 要么 https://github.com/JazzCore/python-pdfkit

我希望这会对你们中的大多数人有所帮助。

【讨论】:

你读到我的问题是我已经有一个解决方案,它适用于 css3 属性的 97%,但我发现了一些其他解决方案,它适用于 css3 100%(不幸的是,不适用于 python)并且到目前为止据我所知,没有 python 库可以做到这一点。 你的问题是python是否有东西。是的,在将 html 移植到 pdf 时,python 中有一些东西还包括 html5 和 css3。 请再仔细阅读我的问题。我说我已经使用了支持 html5 和 css3(wkhtmltopdf) 的 Python 解决方案,但支持不是 100%。这里有很多问题可以进行简单的转换。您所有的解决方案要么使用相同的库,要么具有相同的缺陷,并且没有一个可以 100% 将基于 css3 的 html 页面转换为 pdf 而没有明显差异。

以上是关于完全支持 CSS3 和 HTML5 的 Python HTML 到 PDF的主要内容,如果未能解决你的问题,请参考以下文章

HTML5和CSS3一标签与属性

HTML5和CSS3一标签与属性

HTML5 & CSS3初学者指南 – 样式化第一个网页

HTML5和CSS3工具资源汇总

CSS3 和 HTML5 兼容的浏览器

html Internet Explorer支持使用条件注释。以下代码段在旧版Internet Explorer中添加了HTML5和CSS3支持