我正在尝试使用iTextSharp库解析带标签的PDF的标签结构。当一个标签包含多个子标签时,我们可以使用以下代码访问这些子标签:
PdfDictionary docElement = kids.GetAsDict(0);
PdfArray kids_doc = docElement.GetAsArray(PdfName.K);但是当一个标签只包含一个子标签时,我无法使用上面的代码,因为它返回null而不是PDFArray对象。因此,我尝试使用以下代码将PDFObject类型转换为PDFArray:
var docElement = kids.GetAsDict(0);
PdfObject pdfObj = docElement.Get(PdfName.K);
PdfArray arr = (PdfArray)pdfObj; 但它抛出异常,因为无法将PDFIndirectReference转换为PDFArray。如果标签是PDFArray对象中的>=1,谁能帮我得到如下输出:标签的孩子
发布于 2018-09-07 19:03:44
我用一种不同的方法解决了我面临的问题:我没有将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);https://stackoverflow.com/questions/52199406
复制相似问题