免费开源的Java库,可将PDF转换为图像、HTML,提取图像和文字。

3
我需要一个Java库来执行以下任务:1)将Pdf页面转换为图像;2)从PDF页面提取HTML文本以及它们在页面上的位置;3)从PDF页面提取图像。我已经尝试过以下库:
  1. PDFBox - 该库会出现错误--unsupported/disabled operation: BDC and EMC;
  2. icePDF - 它可以完成任务1和3,但是需要付费;
  3. PDFRenderer - 无法完成任务;
  4. BFO - 该付费库可以完成任务1和3。
请问是否有更好的解决方案?

我也对这样的Java库很感兴趣。目前我们在Linux系统上使用http://en.wikipedia.org/wiki/Poppler_(software)来完成类似的任务。 - Udo Klimaschewski
@YashpalSingla,我相信itext可以做到这一点。例如-如何从pdf中提取文本:http://itextpdf.com/examples/iia.php?id=275 - user1516873
谢谢 @user1516873,我会检查两个链接。 - Yashpal Singla
我在Ubuntu中使用pdfToHTML从PDF中获取HTML,然后使用cutycapt获取图像。然后我使用JSoup解析HTML以提取带有样式和位置的文本。输出符合我的要求。 - Yashpal Singla
@user1516873,iText是一款付费产品,单个开发者的许可证价格超过2千美元。 - deathrace
显示剩余5条评论
3个回答

0

你尝试过JOD Converter吗?它是一个Java API,可以连接到自启动的Open Office服务器。

为了查看它是否支持你需要的格式转换,只需安装Open Office,打开一个文件,然后尝试“另存为”所需的格式,以查看是否支持。


谢谢@Stewart,我已经尝试了JOD转换器,但输出的HTML不太有用。 - Yashpal Singla

0

我已经按照以下步骤解决了Ubuntu环境中的问题:

第一步)使用pdftohtml库将pdf转换为html

第二步)使用Jsoup从第一步中的html中提取带有样式和位置的文本

第三步)使用CutyCapt生成HTML的快照(如果需要)

我们还可以使用pdftoppm命令直接从pdf中提取图像


所有这些都可以通过使用pdfbox来完成。 - Neeraj
不是“辛格哈”,而是“辛格拉”,无论如何,感谢您的评论。 - Yashpal Singla
@Neeraj,你能给我提供一个使用pdfbox将pdf转换为html的示例链接吗? - Rachit Agrawal
@Rachit Agarwal:java -jar pdfbox-app-x.y.z.jar ExtractText -html <PDF 文件> <html 文件> http://neerajkarimpuzha.wordpress.com/2012/04/04/pdf-to-html-update/, http://pdfbox.apache.org/commandlineutilities/ExtractText.html - Neeraj
谢谢,但我希望能够通过Java代码来完成这个任务,而不是通过命令行参数调用它。 - Rachit Agrawal

-2

你可以使用PDFBox完成上述所有任务。但是要获取位置,没有API。下载最新的PDFBox。请访问以下链接找到解决方案。

  1. 将Pdf页面转换为图像
  2. 从PDF页面中提取图像
  3. 从PDF页面提取带有位置信息的HTML文本略有不同。使用API无法获取位置信息。但是您可以使用PDFBox获取所有位置信息。

请查看this link。在那里,您可以看到getTextPos()函数。getTextPos().getXPosition(),getTextPos().getYPosition() 将给出X和Y坐标。


1
我已经尝试过PDFBox,正如您在我的帖子中所看到的那样,但它会导致BDC和EMC错误,如果您能帮助我解决这个问题,那就太好了。 - Yashpal Singla
@singla:请检查上面的链接并尝试使用pdfbox完成。如果您遇到错误,请告诉我。 - Neeraj
@Singla:将其转换为图像并提取图像可以直接使用API完成。请下载PDFBox并检查链接。 - Neeraj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接