首页 文章

Java PDF操作和渲染

提问于
浏览
8

我希望这个问题成为PDF操作和Java渲染的综合指南 . 通过拼接多个开源库我有一个相当全面的实现,我想改进它 .

Background

我的要求和当前的实施:

  • 检查现有PDF文档是否符合特定条件(PDF版本,密码保护,字体嵌入,交叉引用表等) - 未实现 .

  • 允许通过页面坐标或其他一些机制定义Acroform字段 . - 未实现

  • 提供迭代PDF中表单字段的功能,检查字段类型并用数据填充它 - iText v 2.0.8

  • 将PDF渲染为不同分辨率/ DPI的图像 - 两种实现方式(pdfrenderer和IcePDF

  • 将HTML / XHTML文件渲染为PDF - Flying Saucer xhtmlrenderer

  • 以上所有内容作为Java服务器环境中的库(暗示线程安全)

What do I not like

我对以下内容不满意:

  • iText licensing :iText的新版本属于AGPL许可证,对我的项目(以及一般的商业项目)来说,这是非启动性的 . 商业许可证的费用是非平凡的(基于使用价格为几美分的文件到几万美元的网站许可证)如果我要支付软件的许可证费用,我想做一个完整的市场寻找最好的产品 . iText的2.x版本工作正常,但那里有足够的bug .

  • PDF version conformance :这些库中的字体嵌入,交叉引用表等存在奇怪的一致性问题,导致一定程度的悲伤 .

  • Rendering output quality :从这些文件渲染到PNG的质量在嵌入字体,图像和图层方面存在一些问题 .

What I am hoping for

我希望得到用户和研究过PDF库的人的一些反馈 . 请提供尽可能多的以下信息,以确保完整性和后人性 .

  • 是您根据使用或研究得出的答案/评论

  • 名称,图书馆版本和许可证(如果是商业许可证,请尽可能包括费用)

  • 你用什么库?

  • 你喜欢它/它有什么好处

  • 你不喜欢什么/什么不好

  • 你的整体印象是什么?

3 回答

  • 0

    如果你真的从你使用它的产品赚钱,iText只会花钱 . 大多数人会认为是公平的 . 你在比较什么?

    iText通过StackOverflow为非付费用户提供支持 . 并为付费客户提供高级支持 .

  • 2

    我们在http://bfo.com的BFO PDF库可以非常轻松地完成大部分工作 - 加载PDF并确定其属性,创建,迭代和填充表单字段以及将PDF呈现为位图都是标准的东西 . 从HTML或XHTML转换有点棘手,但我们有一个配套产品,BFO报告生成器,它将使用与XHTML CSS非常相似的XML语法来实现 .

    我不确定“PDF版本符合性”是什么意思 - 如果您遇到特定问题,可能需要对此进行扩展,但除此之外,我不会对PDF中的实际版本号感到太多 - 很少见例外,PDF功能几乎是向后兼容的(较新的功能通常只是被不理解它们的读者忽略) .

    将PDF格式化为位图是一种蠕虫 - 正确地执行它意味着编写自己的字体和图像格式解析器(一项重要工作:类型1字体需要PostScript解析器),并将作为PDF渲染模型的方块钉击到圆孔是AWT型号 . 它还依赖于PDF创建软件正常完成工作 . 因此,无论您使用哪种软件,如果文件无法正确呈现,请将其通过电子邮件发送给支持团队 - 我们总是会为我们的产品系列提供麻烦的PDF文件 .

    我们的网站有更多信息和试用版供下载,如果您想了解许可费用信息,请给我们留言 .

    干杯......迈克(CTO @ BFO)

  • 3

    还有ghostscript可以在各种DPI中呈现pdf

    gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300x300 -sOutputFile=page_%d.png doc.pdf
    

相关问题