最近,我有一项任务是选择一些Java PDF库用于PDF生成。 但这不是一个简单的任务。 我想到的第一件事是iText。 众所周知Java库具有良好的声誉。 但是...有一些塞子。 iText 5+版是在AGPL许可下发布的。 即,如果我们想在商业产品中使用iText,则必须付款。 我创建了下一个满足项目需求的小清单:
- 自由执照
- 支持最大数量的项目功能(例如,绝对元素定位)
- 好的文件
- 大量样品
- 将HTML呈现为PDF的可能性
我已经审查了以下库:
- iText 5.0+ AGPL许可证
- iText 4.2 MPL / LGPL许可证
- PDF Box Apache许可证,版本2.0
- JPedal JPedal具有LGPL版本,可在LGPL许可下提供完整的Java PDF查看器。
- FOP Apache许可证,版本2.0
- gnujpdf LGPL许可
- PJX GPLv2许可证
- PDFjet Strange开源许可证模型
- jPod BSD许可证
- PDF渲染器维护未激活
iText评论
- iText 2.1.7:MPL和LGPL许可下的最新正式发行版;
- iText 4.2.0:MPL和LGPL许可下的最新非官方版本;
- iText 5.0.0及更高版本:在AGPL许可下发布。
关于iText 5.0+和iText 4.2的说明从iText 5.0版开始,开发人员已转向AGPL以提高其出售商业许可证的能力。 ..为了帮助那些希望使用旧许可证的人,最终的MPL / LGPL版本更容易获得,并在github上进行了分叉。
Apache™FOP
Apache™FOP(格式化对象处理器)是由XSL格式化对象(XSL-FO)和独立于输出的格式化程序驱动的打印格式化程序。 它是一个Java应用程序,它读取格式对象(FO)树并将结果页面呈现到指定的输出。 该库没有足够的灵活性来进行绝对页面元素定位。 但是,作为内容转换器可能真的很有价值。
Apache PDFBox
非常有趣的项目。 它具有非常令人印象深刻的功能。 最重要的是它正在积极发展中。
摘要
我选择了具有可接受的许可证和庞大社区的iText v.4.2。 但是最重要的功能是非常好的文档(实际上是iText in Action – 2nd Edition ),大量的示例。 iText v.5的几乎所有样本都可以轻松地应用于iText v.4.2。 其他库没有太多样本/样本。 对于快速入门,这非常重要。
这是Maven依赖项信息:
com.lowagieitext4.2.0
选择PDFBox作为备份库。 即,当iText有一些限制时,我将使用它。
资源资源
- http://stackoverflow.com/questions/14213195/itext-latest-maven-dependency
- http://java-source.net/open-source/pdf-libraries
- http://javatoolbox.com/categories/pdf
翻译自: https://www.javacodegeeks.com/2013/05/java-pdf-libraries.html