比较这些产品的PDF生成与Java内部要求:iText,Apache PDFBox或FOP?

top*_*hef 40 java pdf pdf-generation itext apache-fop

有人提出了这方面的问题,但最近并没有这方面的问

要求:

  • 根据预定义的模板生成pdf文档(我可以使用pdf格式或xsl-fo)
  • 能够填写文本数据
  • 能够填充图形数据(生成条形码)
  • 能够在生产环境中改变pdf模板而无需修补(重新编译)
  • 生成要保存在数据库中(作为blob)和/或打印的pdf文件
  • 开源/免费

假设的选项是iText,PDFBox,FOP,还有其他什么?基于上述要求的建议是什么?

hom*_*ome 30

  1. iText的; 如今iText是一个商业图书馆,最新版本不再免费
  2. FOP; 我和FOP一起工作了很多.它是相当资源密集型的(Java> XML> XSLT> PDF),复杂的PDF变成了一场噩梦(可能会导致XSLT带有20k + LoC)
  3. PDFBox的; 它似乎是最好的选择,虽然我没有在大型项目中使用它
  4. 还没检查飞碟

总而言之,我会试试PDFBox.根据条形码要求,您可能需要将条形码(字体)内嵌到PDF中或将字体分发给客户 - 处理这些问题.

  • 是的,它仍然是OSS.但是看看许可条款相当模糊:http://itextpdf.com/terms-of-use/index.php摘录:`一旦你开发涉及iText软件的商业活动而没有透露,就必须购买这样的许可证.您自己的应用程序的源代码.这些活动包括:作为ASP向客户提供付费服务,在Web应用程序中即时提供PDF,使用封闭源产品发送iText. (9认同)
  • IText仍然是免费开源的,但如果您在商业上使用它,则需要付费.对我来说似乎很合理! (3认同)
  • 100%Apache PDFBox!最好的. (3认同)

Bri*_*ver 6

我和Flying Saucer做了一个项目http://code.google.com/p/flying-saucer/,该项目基于iText.它免费,易于使用,对CSS有很好的支持,并且有很好的开源.


use*_*280 6

我认为你的标准可以通过iText和Apahce FOp来满足,但是你有一些额外的标准:

  • 许可:FOP基于Apache许可证,因此也"友好"用于商业用途
  • 灵活性:像iText这样的低级API比高级FOP更灵活
  • 可视化工具:这里有一个FOP设计师.
  • 编程模型:iText基于编程API,而FOP需要XSLFO模板和较少的编程.
  • 专有与标准.Apache FOP基于标准,因此独立于供应商,而iText是proprietaRy API
  • 性能:据说FOP更加计算密集.它取决于你的目标PDF文件是什么.使用FOP对我来说永远不是问题.

我不会用PDFBox的,这是良好的读取和修改现有的PDF文件,但使用PDFBox的可能是大量的工作从无到有createing文件.