当前位置: 首页 > 面试题库 >

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

裘光启
2023-03-14
问题内容

有人对此有疑问,但不是最近,而且从那以后技术一定已经取得了进步。

要求:

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

假定的选项是iText,PDFBox,FOP,还有其他内容吗?根据上述要求有什么建议?


问题答案:
  1. iText; 如今,iText是一个商业库,最新版本不再免费(旧版本的一个分支仍在MIT许可下:OpenPDF)
  2. FOP;我在FOP上做了很多工作。这是相当耗费资源的(Java> XML> XSLT> PDF),而复杂的PDF成为噩梦(可能导致XSLT具有20k + LoC)
  3. PDFBox; 尽管我没有在大型项目中使用它,但这似乎是最好的选择
  4. 尚未检查飞碟

最后,我将尝试使用PDFBox。根据您的条形码要求,您可能需要将条形码(字体)内嵌到PDF中或将字体分发给客户-请注意这些问题。



 类似资料:
  • 我有一个问题,其中PdfWriter从iText7.0.4.0(。NET 4.5.1)为某些输入的PDF文件生成损坏的PDF文档。 详细说明,格式良好的段落的PDF文件没有问题。但是,如果输入的PDF包含不规则的内容(对于缺乏更好的词;请参考谷歌驱动器中的示例),PdfWriter会产生损坏的PDF文件;损坏,我的意思是文件可以打开,但它显示的空白页具有极高的缩放(在Adobe Reader XI

  • 问题内容: 我的问题是 我必须订购一个数据表。表的每一行都是一个存储在List中的对象(简称为TableObject)。数据的每一列都是该类的属性(通常是String)。 当用户单击任何列时,我必须对数据进行典型的排序。所以我考虑过将List更改为TreeSet并在TableObject中实现Comparator。 当我尝试重新排序TreeSet时出现问题。首先比较起来比较容易(省略parseIn

  • 第一次在StackOverflow。我希望有人能帮我搜索一个算法。 我需要在给定的范围内生成N个随机数,求和到给定的和! null 可以生成N个常数和的数,解模,像这样:生成和是常数的随机数,但我不能用范围来完成。 或者通过产生N个随机值,将它们求和,然后将常数和除以随机和,然后将每个随机数乘以这个商,就像这里提出的那样。 我不能采用这些解决方案的主要问题是,我的每个随机值都有不同的范围,我需要这

  • 本文向大家介绍Java 生成给定范围内的随机数,包括了Java 生成给定范围内的随机数的使用技巧和注意事项,需要的朋友参考一下 为了生成给定范围内的随机数,Java代码如下- 示例 输出结果 名为Demo的类包含主要功能。在这里,将创建一个新的随机实例以及一个新的数组列表。创建随机元素并将其分配给变量。使用add函数将这些随机变量添加到列表中。这些元素显示在控制台上。

  • 问题内容: 我知道以前曾有人问过这个问题,但是我仍不确定我当前项目要使用哪种PDF生成框架。 我的要求 快速生成PDF文档(主要是订单,发票) 基于Java 易于布置 应该是开源的 易于更改布局 很多人似乎都在使用 iText ,但是除了关注点更改之外,我还有其他关注点:在HTML上下文中,有很好的MVC支持,我通常会坚持使用SpringMVC和FreeMarker来分离逻辑和布局。我有点担心,使

  • 问题内容: 我知道Java枚举被编译为具有私有构造函数和一堆公共静态成员的类。比较给定枚举的两个成员时,我一直使用,例如 但是,我刚遇到一些使用equals运算符==而不是.equals()的代码: 我应该使用哪个运算符? 问题答案: 两者在技术上都是正确的。如果你查看源代码,它只是顺应了。 我使用,但是,这将是null安全的。