【发布时间】:2013-05-16 06:16:38
【问题描述】:
Freemarker 的一个常见用途是生成 PDF。
不幸的是,我必须生成一个包含很多页面的 pdf,并且“他们”要求我放置一个包含一些信息的页眉和一个包含“第 2/60 页”等内容的页脚......
在网上搜索我发现了如何创建宏模板,但它只共享一些常用标签(如 css),但并没有告诉 freemarker 如何管理多页 PDF。
除此之外,有时我在 ftl 内部还有一个“分页 css 类”,因此我无法确定何时何地创建新页面。
我在 Java 上使用 Freemakrer 2.3
感谢您的帮助。
【问题讨论】:
-
我只将 Freemarker 用于模板引擎,作为 PHP 的 Smarty。我会要求 POI 将其用于 PDF
-
这不是我的选择。他们使用 freemarker,所以我必须这样做。
-
你用 Freemarker 生成了什么?一个 HTML 文档,然后用另一个工具转换成 PDF,或者直接转换成 PDF 文档?
-
我们从由 Map
填充的 HTML 开始,以匹配 freemarker 占位符: final String xhtml = createXHTML("foo.ftl.html", mapFullOfThings);比我们创建一个 byte[] "pdf" 最后 handler = new ResourceStreamRequestHandler(new ByteArrayResourceStream(pdf, "application/pdf")); -
您的描述中缺少一个步骤。 Freemarker 生成一个 HTML 文档(字符串 xhtml 变量)。然后将此 HTML 转换为 PDF(byte[] pdf 变量)。您使用什么工具进行这种转换?
标签: java header footer freemarker