使用iText和Java中的Apache Velocity模板文件(.vm)生成PDF的一般工作流程是什么?
我有兴趣知道以下步骤:解析模板文件,将Java对象置于上下文中以及执行生成pdf等的步骤。
我知道这是一个非常基本的问题。但我无法在网上找到这种类型的单一例子。我找到XDocReport,但我也有兴趣了解其他替代方案。
请帮我一些示例项目链接或至少开始的步骤。
答案 0 :(得分:5)
是的,你可以。 这一切都取决于你想要PDF的复杂程度。
以下是基本功能的步骤
com.itextpdf.text.html.simpleparser.HTMLWorker
(不建议使用)将该HTML文件解析/转换为PDF格式。com.itextpdf.text.pdf.PdfCopy.PageStamp
向现有PDF添加内容(边框,图章,备注,注释等)。还有com.itextpdf.tool.xml.XMLWorker
用于更高级的HTML转换(添加样式表等)
答案 1 :(得分:4)
直接使用iText和Apache Velocity模板文件(.vm)直接生成PDF是不可能的,因为:
换句话说,Velocity无法生成PDF。
XDocReport能够通过合并包含一些Velocity / Freemarker语法和Java上下文的docx / odt模板来生成docx / odt报告。生成的docx / odt报告可以将其转换为pdf / xhtml。
它的工作原理是因为docx / odt是一个包含多个xml条目的zip。如果解压缩docx,您将看到word / document.xml。在此条目中,您将看到使用MS Word键入的内容。 word / document.xml是纯文本,因此在这种情况下可以使用Velocity。
这里是从使用Velocity的docx模板生成pdf的XDocReport过程:
在此步骤中,我们有一个生成的docx(报告)。
要将其转换为其他格式,XDocReport提供基于Apache POI和iText的docx到pdf转换器。这里是将docx转换为pdf的XDocReport过程:
请注意,XDocReport是模块化的,您也可以使用其他转换器。
答案 2 :(得分:0)
首先,我们使用freemarker模板生成一个html文件,然后通过IItextRender将html渲染为pdf文件。最后,我们可以在浏览器中查看pdf文件,有一个非常有用的javascript工具叫做pdfjs。也许你可以尝试一下。