java - Flying Saucer : Convert Multiple Html to 1 PDF document

标签 java itext flying-saucer

我有一个报告模板,由 4 个 HTML 文件组成。比如说

  1. p1.html
  2. p2.html
  3. p3.html
  4. p4.html

我使用 Flying Saucer 分别解析每个页面,并使用速度替换占位符,并成功将其转换为 pdf。现在的问题是将这 4 个 HTML 页面转换为一个 pdf 文档。

有两种方法可以实现这一目标。

合并 HTML

通过合并所有 HTML 文档,然后使用速度填充占位符,该操作已成功完成,但分页时出现问题。我希望将每个 HTML 页面转换为 1 个 pdf 页面,但在这种情况下,所有文本都会合并。

转换后合并 PDF

这种方法对我来说似乎并不合适,因为从各自的 HTML 页面单独生成每个 PDF 页面,然后合并到 1 个 pdf 文档并不是一个可增强的解决方案。

我们将非常感谢您对编码示例的建议。

最佳答案

我也在寻找一种组合文档的方法。

不过,我确实知道如何在使用单个 HTML 文档时启动新页面。试试这个:

<html>
<head>
    <style>
        @page { /* default page styles here */

        @page p1 { /* page template for first document */ }
        @page p2 { /* page template for second document */ }
        @page p3 { /* page template for third document */ }
        @page p4 { /* page template for fourth document */ }

        #p1 { page: p1; } /* tells #p1 to use p1 page template */
        #p2 { page: p2; } /* tells #p2 to use p2 page template */
        #p3 { page: p3; } /* tells #p3 to use p3 page template */
        #p4 { page: p4; } /* tells #p4 to use p4 page template */
    </style>
</head>

<body>
</body>

    <article id="p1">
        <!-- page 1 content here -->
    </article>

    <article id="p2">
        <!-- page 2 content here -->
    </article>

    <article id="p3">
        <!-- page 3 content here -->
    </article>

    <article id="p4">
        <!-- page 4 content here -->
    </article>

</html>

我的理解是,当一个元素需要不同的页面模板时,就会添加分页符。

如果您不需要不同的页面模板(页眉、页脚等都相同),那么您可能只需为每篇文章请求分页符即可:

article { page-break-before: always; }

关于java - Flying Saucer : Convert Multiple Html to 1 PDF document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29079693/

相关文章:

java - com.itextpdf.text.exceptions.InvalidPdfException : PDF header signature not found

java - 使用 Java 编辑 HTML 文档

c# - 我如何使用 C# 中的 itextsharp 库识别 pdf 方向是横向还是纵向

rotation - 将段落或单元格旋转任意度数——Itext

css - 用于 unicode 字符的 Flying Saucer 字体

java - iText 填充我的堆大小导致应用程序因 OOM 崩溃

java - 尝试使用 Google App Engine(java) 使用不受信任的证书连接到 SSL (HTTPS) 时出现异常

java - 从匿名内部 "runnable"类中调用方法。这是不好的做法吗?

Java:找不到符号

java - 为什么允许将原始数据类型添加到 ArrayList?