PDFsharp:从大纲中读取“/A”

问题描述 投票:0回答:1

给定我拥有的特定 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 ]

c# pdf pdfsharp
1个回答
0
投票

我终于找到了这个PDFsharp论坛帖子(在也在那里发帖之后)。

使用

outline.Elements.GetDictionary("/First");
访问轮廓的方式得到了我想要的东西。给定一个代表我相应大纲的 PdfDictionary d,我可以使用
d.Elements.GetString("/A"); 
获取“/A”值。

使用 d.Elements.GetString 上的“/First”和“/Next”键遍历 PDF 对象。

© www.soinside.com 2019 - 2024. All rights reserved.