2013-04-29 80 views

回答

0

StructTreeRoot是一個標籤PDF的強制性元素:

PdfDictionary root = reader.Catalog; 
PdfObject structTreeRoot = root.Get(PdfName.STRUCTTREEROOT); 

如果structTreeRoot等於null,那麼你的PDF沒有標記。您需要檢查MarkInfo屬性。

PdfDictionary markInfo = root.GetAsDict(PdfName.MARKINFO); 

markInfo詞典不能爲null,它需要一個標記條目。此條目的值必須是Boolean,它需要是true

在回答您的評論謊稱一些你測試的PDF文件的有效標籤的PDF,請參閱下面的截圖:

PDF 1 PDF 2 PDF 3

到左邊,你可以看到內部您共享文檔的對象樹。正如你所看到的,文件有StructTreeRoot,但MarkInfofalse

在右側,您可以看到在Adobe Reader中打開的文檔。在所有這三種情況下,文檔屬性都有一個條目:標籤PDF:No.

打敗我,爲什麼你會另外聲明。

+0

謝謝布魯諾..如何找到pdf版本,圖片或文本pdf,從屬性頁面的數量? – Jai 2013-04-29 09:30:26

+0

圖片或文字PDF:非常困難。最好的方法是使用解析器類來解析頁面。如果找不到文字,則可能只有圖像。頁數:這是一個簡單的:http://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/book/iTextExamplesWeb/iTextExamplesWeb/iTextInAction2Ed/Chapter06/PageInformation.cs(請不要濫用評論部分提出後續問題,在評論窗口中很難回答,也不要用SO作爲閱讀文檔的替代品。) – 2013-04-29 09:45:49

+0

k Bruno.Thanks much .. – Jai 2013-04-29 10:16:19