2016-08-22 94 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有什麼困難。非常感謝.. –