对此有一些疑问,但不是最近,而且从那时起技术一定会向前发展。
要求:
- 基于预定义模板生成 pdf 文档(我可以使用 pdf 表单或 xsl-fo)
- 能够填充文本数据
- 能够填充图形数据(生成的条形码)
- 无需修补(重新编译)即可在生产环境中更改 pdf 模板
- 生成要保存在数据库中(作为 blob)和/或打印的 pdf 文件
- 开源/免费
假定的选项是 iText、PDFBox、FOP 还是其他?基于上述要求的建议是什么?
对此有一些疑问,但不是最近,而且从那时起技术一定会向前发展。
要求:
假定的选项是 iText、PDFBox、FOP 还是其他?基于上述要求的建议是什么?
最后,我想试试 PDFBox。根据您的条码要求,您可能需要将条码(字体)内嵌到 PDF 中或将字体分发给您的客户 - 处理这些问题。
我已经使用基于 iText的 Flying Saucer http://code.google.com/p/flying-saucer/完成了一个项目。它是免费的,易于使用,对 CSS 有很好的支持,并且有很好的开源。
我认为 iText 和 Apahce FOp 都可以满足您的标准,但在这里您还有一些额外的标准:
我不会使用 PDFBox,它非常适合阅读和修改现有的 PDF 文件,但使用 PDFBox 从头开始创建文件可能需要做很多工作。
我有点偏见(提交者),但我建议使用 iText。
基于预定义模板生成 pdf 文档(我可以使用 pdf 表单或 xsl-fo)
PDF 表格:检查
能够填充文本数据
PDF表格,检查。您还可以执行程序化布局。
能够填充图形数据(生成的条形码)
查看。给定一个已知位置(可能是“此特定注释的位置”),iText 将为您绘制一个条形码,并给出符号和值。您可以从此处列出的常量推导出支持的符号系统列表。
对于这类事情,我使用具有“仅图标”外观的按钮字段。“图标”是一些任意的 PDF 绘图指令,或图像。iText 的条形码内容将创建一个PdfTemplate
您可以轻松填充到按钮中的内容。
无需修补(重新编译)即可在生产环境中更改 pdf 模板
如果您的所有布局都被烘焙到 PDF 模板中,并且您的“条形码在此处”信息没有硬编码到源代码中,那么您就是黄金。
生成要保存在数据库中(作为 blob)和/或打印的 pdf 文件
PDF是PDF是PDF。哎呀,通过您的一些额外工作,您可以使用 iText 构建 PDF/A 文件。“A”代表存档。
开源/免费
开源:是的。v2.1.7 是最后一个使用 MPL 的版本。从 5.x 开始,所有 iText 版本都在 AGPL 之下。是的,iText 从 2.1.7 跳到了 5.0,以便同步 iText 和 iTextSharp 之间的版本编号。
不是完全免费的“little f”,但 2.1.7 版本并不难获得。OTOH,它是孤品,无人维护。做一个知情的消费者。
这也取决于您希望如何创建 PDF。FOP 从 XML 工作,IText 允许您以编程方式从 Java 创建。
另一个为飞碟竖起大拇指。如果您熟悉 html 和 css,它工作得很好并且很容易使用。
没有真正记录的是如何访问 iTexts 内置的条形码功能。然而,这很容易实现。我在这里放了一个简短的教程:http: //andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html
没有人在谈论BFO(Big faceless),尽管它是商业的