Получение свойств URL изображения в PDF - PullRequest
1 голос
/ 23 февраля 2011

Я пытаюсь использовать itext, чтобы найти изображение в pdf на основе его URL. Я знаю, что когда PDF-файл создается в Adobe Designer, вы можете указать его «URL», с которого загружается изображение. Когда тот же PDF-файл открывается снова, URL-адрес сохраняется на изображении, поэтому я знаю, что этот 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 голосов
/ 23 февраля 2011

Я думаю, что 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-адреса изображения.

...