2011-04-13 99 views
0

我必須將多個PDF文檔合併到一個PDF文檔中。除此之外,我必須生成TOC。原始文檔將包含具有特定樣式的文本(如H1)。這個特殊文本成爲TOC的一部分。PDF itext TOC代

已使用iText合併多個PDF文件。我無法找到上的示例/ API解析文檔以查找所有具有H1樣式的內容。 生成TOC是下一個挑戰。

回答

0

你不知道。 PDF文件沒有樣式。他們有「當前圖形狀態」,其中包括:

  • 當前轉換矩陣(CTM)。
  • 行程&填充顏色
  • 剪輯路徑
  • 字體大小&
  • 採空區的其他文本狀態的東西(字符間距,字間距,行距,文本渲染模式...)
    • 包括與CTM結合的單獨的文本轉換矩陣。

所以首先你必須追蹤所有這些東西(這iText的能爲你主要是做)。然後,您必須確定「H1」文本有多大,並鎖定所有尺寸爲屏幕大小的文本,並考慮CTM,文本矩陣和字體大小(iText會再次爲您提供幫助,IIRC )。

只是爲了讓生活更加激動人心,像你自己一樣,你看的文本完全可能不是文本。它可能是路徑或位圖......在這一點上你需要OCR,而且我認爲你不會在OCR的大小信息方面獲得太多。

您需要編寫一個TextRenderListener來確定給定文本的最終大小(以及它是否是最後一部分的最後一部分)並過濾掉所有太小的東西。然後,您將根據您找到的文本構建您的TOC。

+0

感謝馬克的迴應。是否可以將PDF轉換爲DOCX,然後解析DOCX,獲得具有樣式H1的文本,然後再次生成PDF。 – Abhay 2011-04-18 04:11:31

+0

理論性的DOCX轉換器遇到了同樣的問題。一些體面的PDF-> X轉換器存在,但它們傾向於相當$$$。 Acrobat Pro可能會管理某些可接受的內容 – 2011-04-18 16:13:05