用于PDF渲染的Java库

有没有人知道Java的PDF渲染的好库? 理想情况下,它不仅应支持显示图像,还应支持从中检索文本,查找哪个文本位于某个位置等。

这个问题被问了很多。 用于创建PDF的iText仍然没有比这更好的了。 渲染PDF是一个棘手的前景。 也许从pdfrenderer开始。 我之前用它来直接从Java打印PDF并取得了良好的效果。 它似乎也提供了一个很好的显示选项。

文本部分比较棘手,因为PDF不会以您想象的方式保存其文本信息,因为它的设计用于显示和打印,而不是更“文字处理”的中心方法。

iText上有一本名为iText In Action的精彩书籍,里面有很多关于如何用库做事的好例子。 我可能会从那里开始,看看它是否能完全符合您的要求。

pdfrenderer不解析Acrobat 9生成的文档,使用IcePDF 。

你可以看看Apache FOP 。 你将不得不学习XSL-FO ,但是让布局正确起来要容易得多。 使用iText可能会很痛苦。

我看过其中一些。

iText用于生成PDF。

要阅读PDF,您需要以下其中一项:

  • 来自Sun的开源pdf-renderer是一个较旧且不受支持的库,不擅长处理复杂的嵌入和True Type字体。

  • 开源pdfBox似乎来自一些Apache Fop团队目前只比pdf-renderer略好(对不起家伙)。

两个专业版本是:

  • JPedal,不是免费使用,但非常好。

  • IceBox已经发布到开源,但你需要支付商业许可证。

以上两者似乎都很出色。

LGPL许可证下有几个PDF渲染器。 除PDFRenderer外,还有IcePdf和JPedal。

去年年底,我在iText上添加了文本解析function。 iText文本解析器能够为找到的文本提供坐标。 但是,iText不会在屏幕上呈现PDF,因此这可能对您的需求有用,也可能没有用。 使用pdfrenderer的经验是没关系,但有点慢,并且不能处理所有PDF文件的全部范围。

您可以使用GlobalReports 。 使用一个库,您可以生成读取现有pdf的pdf并进行编辑。

该库完全是开源的。