我正在尝试查找pdf上的死书签和链接,因为我将所有已命名的目的地存储在字典中并尝试存储目标页面,以便我可以验证其有效页面?我正在尝试这样的事情......
For Each named As KeyValuePair(Of String, PdfObject) In reader.GetNamedDestinationFromStrings()
If Not namedDestinations.ContainsKey(named.Key) Then
namedDestinations.Add(named.Key, named.Value)
Dim thisDest As PdfArray = DirectCast(named.Value, PdfArray)
Dim a As PdfIndirectReference = DirectCast(thisDest(0), PdfIndirectReference)
Dim thisPage As PdfDictionary = PdfReader.GetPdfObject(a)
End If
Next
此代码我已从其他线程复制,我需要赶上页码。或者我们还有其他任何方法来验证死链接和书签..
答案 0 :(得分:1)
要重新解释您的问题:您希望从PDF文档中获取所有已命名的目标,但是您希望获取页码,而不是页面引用。
但是,您正在使用返回页面引用的reader.GetNamedDestinationFromStrings()
。
相反,你应该使用:
Dictionary<string,string> map = SimpleNamedDestination.GetNamedDestination(reader, false);
以“字符串”的形式为您提供目的地(Dictionary
的值)。
这样的string
如下所示:3 XYZ 36 802 0
其中第一个元素(3
)是页码。