首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将PDFObject/PDFDictionary转换为PDFArray

如何将PDFObject/PDFDictionary转换为PDFArray
EN

Stack Overflow用户
提问于 2018-09-06 16:08:50
回答 1查看 365关注 0票数 0

我正在尝试使用iTextSharp库解析带标签的PDF的标签结构。当一个标签包含多个子标签时,我们可以使用以下代码访问这些子标签:

代码语言:javascript
复制
PdfDictionary docElement = kids.GetAsDict(0);                
PdfArray kids_doc = docElement.GetAsArray(PdfName.K);

但是当一个标签只包含一个子标签时,我无法使用上面的代码,因为它返回null而不是PDFArray对象。因此,我尝试使用以下代码将PDFObject类型转换为PDFArray:

代码语言:javascript
复制
var docElement = kids.GetAsDict(0);
PdfObject pdfObj = docElement.Get(PdfName.K);                    
PdfArray arr = (PdfArray)pdfObj; 

但它抛出异常,因为无法将PDFIndirectReference转换为PDFArray。如果标签是PDFArray对象中的>=1,谁能帮我得到如下输出:标签的孩子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-07 19:03:44

我用一种不同的方法解决了我面临的问题:我没有将PDFObject/PDFDictionary转换为PDFArray,而是创建了新的PDFArray对象,然后删除了PDFName.K的现有键,并添加了之前创建的数组作为PDFName.K。我给出的解决方案如下:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52199406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档