2012-10-04 74 views
2

我如何知道PDF是否被標記?我正在開發一個程序,它將複製PDF文件中的文本並將其顯示在我的應用程序中,所以我試圖測試PDF文件,我從PDF文件(普通複製+粘貼)中複製了一個表格並將其粘貼到MS字。結果是沒有表的正常文本。有一些問題,當你從PDF文件複製表格並將其粘貼到Word時,它會變成圖片。真的嗎?如何確定PDF是否被標記?

+0

從PDF複製的文本是否可以作爲表格粘貼取決於您用來查看/複製PDF和要粘貼到的程序的程序。 PDF可能會將文本顯示爲表格,但當您從中複製時,查看器正在將其轉換爲純文本。或者,您粘貼的程序可能會在粘貼時將其轉換爲純文本。 –

+0

啊所以這取決於它將如何被複制?即時通訊計劃使用API​​讀取PDF文件和即時通訊在Android上開發我的應用程序。 –

回答

4

如何確定PDF被標記或不?

根據您正在使用,以處理您的文件庫中,你可以嘗試檢索來自Catalog辭典條目MarkInfo

從PDF規格:

表3.25條目目錄中的字典
KEY: MarkInfo
TYPE:字典
VALUE:(可選; PDF 1.4)標記信息字典,其中包含有關文檔對標記PDF 約定的使用情況的信息(請參閱第10.6節「邏輯結構」)。

然而,即使這個屬性的值設置爲TRUE,這並不意味着該標籤實際上是在那裏,如果是這樣,他們可能不會在所有的提取表是有用到您。您仍然可以使用僅使用標記標記段落和圖片的表格來查找PDF文件。

長話短說,除非正在生成您的應用程序要消耗,這樣就可以知道哪個標籤來查找文件,它是不是一個好主意,依靠這些標籤爲「從PDF中提取表格「。

1

我發現了一個不同的問題的評論,似乎已經回答了這個問題。

How to read a Table in a PDF using iText java?

您可以提取從內容流中的文本,但對於普通的PDF文件,其結果將是純文本(沒有任何結構)。如果頁面上有表格,該表格將不會被識別。你會得到內容和一些空白空間,但這不是一個表格結構!只有你有一個帶標籤的PDF,你才能獲得一個XML文件。如果PDF中包含被識別爲表格標籤的標籤,這將在PDF中反映出來。

這是http://support.itextpdf.com/node/27

+0

哦。所以即使使用PDF的正常提取來編程它也只會是文本格式。甚至顯示? –

+0

只有在PDF被標記並可以轉換爲xml時,纔會以表格的形式顯示。 –