2016-08-22 25 views
1

如何将Java中的PDF文件内容完全提取为文本并呈现为HTML?在Java中提取PDF文件并呈现为HTML

不像是单独提取文本或单独提供图片,要求将HTML文件的内容显示为PDF文件的内容(就像原始文件一样,包括原始文件中的图像和表格)。

一些如何在这里回答样本Convert Word to HTML与Apache POI使用Apache POI将MS Doc文件的内容提取到HTML。

回答

1

从PDF文件中提取数据非常简单。有多个库可以正确执行。另一方面(OP描述的工作流程)提取数据并保存其布局是一个非常困难的过程。背后的原因很简单 - 大多数PDF文件并没有任何定义结构的元素。例如,当一个PDF文件显示一张表格时,人们很容易看到它,并且理解这确实是一张包含一些数据的表格。但是,在PDF文件本身中,这是矢量线的集合,并且一些文本在两者之间运行。 PDF本身或PDF阅读器并不知道这是一张表格。因此,当这些数据转换为HTML时,我们不知道我们需要绘制一张表格,而是将其视为矢量图。这仅仅是为什么这很困难的一个例子。还有很多其他的可以用来说明这一点。

另一方面,这样的东西存在为"Tagged PDF"(第10.7节)。这是一个结构元素实际定义的PDF文件,提取相当简单。但是,带有标签的PDF文件不如我们想要的那么常见,并且在大多数情况下,您不能保证与其中一个合作。

市场上有一些工具使用复杂的逻辑来推断未加标签的文档的结构。有些人在这方面比其他人做得更好。我曾与Adobe Acrobat合作,在创建HTML文件方面做得不错。还有Datalogics(我为Datalogics工作)提供的称为PDF Alchemist的产品,可将PDF转换为HTML。他们都是商业解决方案。

如果您正在寻找免费的解决方案,PDFBox在从PDF文档中提取内容方面做得很好。但是,它不具备创建HTML文件的能力,这是必须在库之外实现的。我不知道任何免费的PDF到HTML解决方案都足够好,我愿意推荐。

+0

谢谢@Vel Genov我明白将PDF文件解压缩为HTML有什么困难。非常感谢.. –