Как преобразовать PDFObject / PDFDictionary в PDFArray - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь проанализировать структуру тегов PDF с тегами, используя библиотеку iTextSharp.Когда тег содержит более одного дочернего тега, мы можем получить доступ к этим дочерним элементам, используя следующий код:

PdfDictionary docElement = kids.GetAsDict(0);                
PdfArray kids_doc = docElement.GetAsArray(PdfName.K);

Но когда тег содержит только один дочерний тег, я не могу использовать приведенный выше код, поскольку он возвращает ноль вместоPDFArray объект.Поэтому я попытался типизировать PDFObject в PDFArray с помощью следующего кода:

var docElement = kids.GetAsDict(0);
PdfObject pdfObj = docElement.Get(PdfName.K);                    
PdfArray arr = (PdfArray)pdfObj; 

, но он выдает исключение из-за невозможности преобразования PDFIndirectReference в PDFArray.Может кто-нибудь помочь мне получить вывод как: дети тега, если это> = 1 в объекте PDFArray

1 Ответ

0 голосов
/ 07 сентября 2018

Я решил проблему, с которой столкнулся, с помощью другого подхода: вместо преобразования PDFObject / PDFDictionary в PDFArray я создал новый объект PDFArray, а затем удалил существующий ключ для PDFName.K и добавил ранее созданный массив как PDFName.K. Я даю решение, как показано ниже:

PdfArray arr = new PdfArray();
PdfObject pdfObj = docElement.Get(PdfName.K);  
arr.Add(pdfObj);                                        
for (int i = 1; i < kidsCount; i++)
{                        
    arr.Add(kids[i]);
}
docElement.Remove(PdfName.K);
docElement.Put(PdfName.K,arr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...