【发布时间】:2010-11-14 11:38:59
【问题描述】:
我有 CSS 和 HTML,我将转换为 PDF。我想在每个页面上指定一个标题,在 PDF 中,它将在每个新页面上重复。
我知道我可以使用 THEAD 来指定标题,但是,是否有免费的 html-to-pdf 转换器可以尊重 THEAD 标签?
如果没有,还有其他选择吗?
谢谢...
【问题讨论】:
我有 CSS 和 HTML,我将转换为 PDF。我想在每个页面上指定一个标题,在 PDF 中,它将在每个新页面上重复。
我知道我可以使用 THEAD 来指定标题,但是,是否有免费的 html-to-pdf 转换器可以尊重 THEAD 标签?
如果没有,还有其他选择吗?
谢谢...
【问题讨论】:
看看WeasyPrint,它是开源的,可以将 HTML/CSS 转换为 PDF。 (我是开发者。)
WeasyPrint 确实会在每一页上重复 <thead> 和 <tfoot>,但这仅适用于表格。对于正确的页眉,您可以使用 CSS3 的 Paged Media 模块(在 WeasyPrint 和一些其他面向打印的引擎中支持)
@page { @top-center { content: "My awesome title"; } }
所有详细信息都在css3-page spec 中。在某个时候,我想为它编写对作者更友好的文档,但不幸的是还没有。
【讨论】:
自 R8 版(2009 年 4 月)以来,开源的 Flying Saucer xhtmlrenderer html-to-pdf 转换器尊重 THEAD 标签。要在 PDF 输出的每一页上重复 THEAD,请将以下内容添加到您的 CSS:
table {
-fs-table-paginate: paginate;
}
【讨论】:
对于在每个页面上重复的广告,可能的解决方案是将其样式设置为:
@media print {
thead {
display: table-header-group;
}
}
这解决了大多数浏览器的问题,但是在分页时分割表格行仍然存在问题,它们在中间中断。
虽然我不知道html2pdf转换器是否尊重这种风格,但有可能向开源转换器的开发人员报告这一要求。
【讨论】:
我真的很喜欢Prince XML。它尊重广告位置,并支持很多 CSS。至少它是免费供个人使用的。
【讨论】:
如果这只是一次,也许您可以简单地在浏览器中打开页面并从“打印”对话框导出为 PDF。
这样,浏览器就可以正确显示 THEAD 元素并获得 PDF 输出。
【讨论】: