在我正在做的一个项目中,我需要生成一个PDF。此PDF将只包含文本,文本的内容将是相当可变的。大多数文本应以相互下面的单独段落印刷。如果段落不适合在一页,它应该添加到下一个。它应该是免费的(比如啤酒,最好是开源的)和稳定的(所以不是一些玩具项目)。
作为一个侧面,该项目本身将被用于商业。用户将能够发送一个API调用,并将为他们生成一个特定的PDF (它的内容是我们的专长)。
发布于 2015-07-19 08:57:15
Apache FOP与共济会的结合是一个很好的解决方案,可以建立一个简单的模板系统,生成只有文本和一些基本图像的PDF格式。
Freemarker用于创建动态模板,从而生成以下样式的XML:
<letter>
<paragraph>Some static content always in here</paragraph>
<paragraph>Bla bla bla</paragraph>
<paragraph>Foo foo foo</paragraph>
</letter>其中bla和foo实际上来自POJO中的列表。FOP也可以用来创建这个XML (或者有一个完全动态的模板),但是这样做感觉更脆弱。
然后使用Apache从PDF中创建XML。您基本上告诉FOP,对于一个“段落”,它必须在PDF中创建一个具有特定规范的文本块。
这样,您就可以像在普通网页中使用CSS一样,将内容生成和结构(Freemarker)和最终演示文稿(Apache )完全分开。
发布于 2015-06-30 11:45:35
根据什么是Java最好的PDF开源库?[封闭] over at StackOverflow的说法,最好的选择可能是iText:
iText是一个PDF库,允许您创建、调整、检查和维护便携文档格式的文档:-根据来自XML文件或数据库的数据生成文档和报告--创建地图和书籍,利用PDF中提供的许多交互功能--向现有PDF文档中添加书签、页码、水印和其他功能--从现有PDF文件中拆分或连接页面--填写交互表单--为Java、.NET、Android和GAE开发人员使用动态生成或操作的PDF文档,以增强其应用程序的PDF功能。一些iText工程师正在积极支持StackOverflow:https://stackoverflow.com/questions/tagged/itext上的项目
这个图书馆似乎是免费供个人使用的。
https://softwarerecs.stackexchange.com/questions/20768
复制相似问题