gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:02:28 24 4
gpt4 key购买 nike

我有一个包含 4 个 HTML 文件的报告模板。让我们说

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

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

有两种方法可以做到这一点。

合并 HTML

通过合并所有 HTML 文档,然后使用 velocity 填充占位符,这是成功完成的,但在分页时出现问题。我希望每个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com