如何将 HTML5 / CSS3 文档转换为 PDF?

Posted

技术标签:

【中文标题】如何将 HTML5 / CSS3 文档转换为 PDF?【英文标题】:How would I convert a HTML5 / CSS3 document to PDF? 【发布时间】:2011-04-30 22:51:53 【问题描述】:

我们目前正在使用 html5 / css3 为我们的 Web 应用程序生成报告,它们在屏幕上看起来不错,但很明显,当用户点击打印时,谁知道打印机会输出什么。因此,我想知道将这些报告转换为 PDF 以供下载/打印,同时保持与屏幕报告相同的视觉质量的最佳方法是什么。

2010-10-26 16:01 更新:我们同时使用 .NET 和 Perl

【问题讨论】:

这取决于所使用的平台 - 我知道一些适用于 windows/.NET 的好的解决方案,但也许这不是您要寻找的...... 这些报告将主要由 windows/.net 应用程序创建 【参考方案1】:

如果您正在使用一些新的 HTML5 元素,例如 Canvas,那么即使是流行的 PDF 转换器也可能对您没有帮助。

我建议您放置适合打印的 CSS 版本。这可以通过在包含打印版本定义的单独 CSS 文件的 <link rel="stylesheet"... 标记中使用 media="print" 属性来实现。

【讨论】:

我们推迟了使用画布来生成报告,基本上我们拥有的是 xhtml 和 css3【参考方案2】:

一些选项(都是专有的):

Aspose.Pdf for .NET: 贵,不过很好。 Winnovative HTML to PDF Converter:我已经使用了他们的工具,完成了工作。 ExpertPDF: 又一个不错的。

有关开源替代方案,请参见此处:

Open Source HTML to PDF Renderer with Full CSS Support

【讨论】:

【参考方案3】:

试试Prince XML,效果很好看。

【讨论】:

【参考方案4】:

我唯一能想到的可能是wkHTMLtoPDF。这是一个基于 WebKit 生成 PDF 的 QT 应用程序。

好消息是它甚至可以评估 JS,所以几乎什么都可以。

另一个好消息是 QT 可用于多种平台。无论您使用什么,都有可能使用 QT。

【讨论】:

我想我们可能有一个构建服务器设置,我们将设置一个接收静态文件的服务,并返回一个漂亮的 pdf 我们将在不久的将来出于我们自己的目的对其进行评估。告诉我进展如何。 Qt 不仅仅是“一个 X11 窗口的东西”:) en.wikipedia.org/wiki/Qt_(framework) 这个库不支持 CSS3 如果您查看en.wikipedia.org/wiki/…,您会发现没有浏览器完全支持css3,但它们都支持其中的一部分。他们支持的部分各不相同。 wkhtmltopdf 也没有使用最新版本的 WebKit。根据您使用的内容,嵌入的网络工具包将使用 2 到 9 年。【参考方案5】:

ExpertPdf (www.html-to-pdf.net) 支持 html5 / css3。

您可以在此处尝试在线演示: http://www.html-to-pdf.net/free-online-pdf-converter.aspx

【讨论】:

【参考方案6】:

有一个节点模块html5-to-pdf 运行良好。

是免费和开源的。

它在 Electron 上运行。有一些错误(例如锚标记也呈现超链接) - 但它可能是一个简单的修复。

【讨论】:

以上是关于如何将 HTML5 / CSS3 文档转换为 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 无法将 HTML5 移动应用程序转换为 IOS

CSS 3D 将 div 转换为弯曲的拱形

html5+css3常见面试题(一)

html5 和css3 怎样使用

如何将 Dask.DataFrame 转换为 pd.DataFrame?

用CSS3打造HTML5的Logo