检索PDF中图像的URL属性

时间:2011-02-23 07:04:18

标签: c# image url itextsharp

我正在尝试使用itext根据其URL在pdf中查找图像。 我知道当在Adobe设计器中编写pdf时,您可以设置其加载图像的“URL”。 当再次打开相同的pdf时,URL将保留在Image上,因此我知道该URL保留在pdf中。但是,我似乎无法看到URL可用于itext的任何地方。

即使您遍历所有对象并使用下面的代码查找图像对象。

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 Designer插入的图像对象,但对象上没有URL项/属性,即使URL显然存储在pdf文件中。

有人能在这里提供见解吗?

感谢。 斯科特。

1 个答案:

答案 0 :(得分: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。