给定我拥有的特定 PDF 文档,使用 PDFsharp,我想查看它的书签/大纲。对于其中一些轮廓,定义了 /A。我想获取/A的内容。不过我没找到。
例如,其中一个轮廓定义如下:
7142 0 obj
<</Title <FEFF00430031>
/Count -2
/First 7143 0 R
/Last 7144 0 R
/Parent 7141 0 R
/Next 7145 0 R
/A 928 0 R
>>
endobj
我想坐
/A 928 0 R
线。
给定一个表示该对象的 PdfOutline,我可以 (1) 使用Internals.ObjectId获取其对象id。 (2) 使用 Elements 字典获取 title、first、last、parent、next。
但是,我无法获得/A 部分。我将不胜感激!
(我确实知道我可以使用 Element["/Dest"] 获取 928 定义的 /GoTo 操作。但是,我对此不感兴趣。最终,我对“928”值感兴趣。(因为对象 929 是实际上是我所追求的,我目前使用 document.Internals.GetObject() 找到了它,但这可能是不相关的。))
如果我尝试使用
docSharp.Internals.GetObject(C1.Internals.ObjectID)
我也得到同样的结果。我得到的不是
/A 928 0 R
行,而是 928 的内容 /Dest [ 10 0 R /FitR 376 799 1115 354 ]
。
我终于找到了这个PDFsharp论坛帖子(在也在那里发帖之后)。
使用
outline.Elements.GetDictionary("/First");
访问轮廓的方式得到了我想要的东西。给定一个代表我相应大纲的 PdfDictionary d,我可以使用 d.Elements.GetString("/A");
获取“/A”值。
使用 d.Elements.GetString 上的“/First”和“/Next”键遍历 PDF 对象。