2011-02-23 82 views
1

我正在嘗試使用itext在基於URL的pdf中查找圖像。 我知道,在Adobe設計器中編寫PDF時,您可以設置從中加載圖像的「URL」。 當再次打開相同的pdf時,該URL將保存在圖像上,所以我知道該URL保存在pdf中。但是,我似乎無法看到URL可用於迭代的任何地方。檢索PDF中圖像的URL屬性

即使您遍歷所有對象並使用下面的代碼查找圖像對象。

iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(path); 
iTextSharp.text.pdf.PdfObject pdfObject = reader.GetPdfObject(objectIndex); 

然後通過對象的「字典」值迭代:

PdfDictionary pdx=(PdfDictionary)pdfObject; 
foreach(PdfName name in pdx.Keys) 
{ 
    string value = pdx.Get(name).ToString(); 
    Debug.WriteLine("Object at index " + objectIndex + " has dict item " + name + " of value " + value); 
} 

您可以找到由Adobe設計師插入的圖像對象,但對象不具有對他們的URL項/屬性,即使URL顯然存儲在PDF文件中。

任何人都可以在這裏提供見解?

謝謝。 Scott。

回答

0

我想這個URL存儲在XFA的某個地方。

org.w3c.dom.Document xfaDOM = myReader.getAcroFields().getXfa().getDomDocument(); 
String imgURL = magicallyExtractImageUrlfromDOM(xfaDOM); 

糟糕。這是Java。對於C#,它會非常相似,只有getDomDocument()的返回類型是XmlDocument

編輯:IIRC,LiveCycle Designer會讓你將你的表單看作一個XML文檔,所以你應該能夠輕鬆確定一個XPath表達式來提取圖像的URL。