【问题标题】:CSS to PDF, using THEAD for repeating header on new pageCSS 到 PDF,使用 THEAD 在新页面上重复标题
【发布时间】:2010-11-14 11:38:59
【问题描述】:

我有 CSS 和 HTML,我将转换为 PDF。我想在每个页面上指定一个标题,在 PDF 中,它将在每个新页面上重复。

我知道我可以使用 THEAD 来指定标题,但是,是否有免费的 html-to-pdf 转换器可以尊重 THEAD 标签?

如果没有,还有其他选择吗?

谢谢...

【问题讨论】:

标签: html css pdf


【解决方案1】:

看看WeasyPrint,它是开源的,可以将 HTML/CSS 转换为 PDF。 (我是开发者。)

WeasyPrint 确实会在每一页上重复 <thead><tfoot>,但这仅适用于表格。对于正确的页眉,您可以使用 CSS3 的 Paged Media 模块(在 WeasyPrint 和一些其他面向打印的引擎中支持)

@page { @top-center { content: "My awesome title"; } }

所有详细信息都在css3-page spec 中。在某个时候,我想为它编写对作者更友好的文档,但不幸的是还没有。

【讨论】:

    【解决方案2】:

    自 R8 版(2009 年 4 月)以来,开源的 Flying Saucer xhtmlrenderer html-to-pdf 转换器尊重 THEAD 标签。要在 PDF 输出的每一页上重复 THEAD,请将以下内容添加到您的 CSS:

            table {
                -fs-table-paginate: paginate;
            }
    

    【讨论】:

    • 当我添加 cs -fs-table-paginate: paginate;为什么我的表格 css :border-collapse:collapse 无效;
    【解决方案3】:

    对于在每个页面上重复的广告,可能的解决方案是将其样式设置为:

    @media print {
      thead {
        display: table-header-group;
      }
    }
    

    这解决了大多数浏览器的问题,但是在分页时分割表格行仍然存在问题,它们在中间中断。

    虽然我不知道html2pdf转换器是否尊重这种风格,但有可能向开源转换器的开发人员报告这一要求。

    【讨论】:

      【解决方案4】:

      我真的很喜欢Prince XML。它尊重广告位置,并支持很多 CSS。至少它是免费供个人使用的。

      【讨论】:

      • 我实际上研究了很多 Prince XML,它非常好。但是,最终我需要购买一个服务器许可证(4000 美元),这是相当多的。我正在寻找更多的开源替代品。谢谢!
      【解决方案5】:

      如果这只是一次,也许您可​​以简单地在浏览器中打开页面并从“打印”对话框导出为 PDF。

      这样,浏览器就可以正确显示 THEAD 元素并获得 PDF 输出。

      【讨论】:

      • 有趣的想法,我会研究一下。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 2014-02-21
      • 2017-09-23
      • 1970-01-01
      • 2021-05-15
      相关资源
      最近更新 更多