Vb.net 指定目的地到目标页码
我试图找出pdf上的死书签和链接,因为我将所有命名的目的地存储在字典中,并试图存储目标页面,以便验证其有效页面是否有效?我正在尝试这样的事情Vb.net 指定目的地到目标页码,vb.net,itextsharp,Vb.net,Itextsharp,我试图找出pdf上的死书签和链接,因为我将所有命名的目的地存储在字典中,并试图存储目标页面,以便验证其有效页面是否有效?我正在尝试这样的事情 For Each named As KeyValuePair(Of String, PdfObject) In reader.GetNamedDestinationFromStrings() If Not namedDestinations.ContainsKey(named.Key) Then
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
这段代码是我从其他线程复制的,我需要赶上页码。或者我们是否有其他方法来验证死链接和书签。重新表述您的问题:您希望从PDF文档中获取所有命名目的地,但不是页面引用,而是希望获取页码 但是,您使用的是返回页面引用的
reader.GetNamedDestinationFromStrings()
相反,您应该使用:
Dictionary<string,string> map = SimpleNamedDestination.GetNamedDestination(reader, false);
Dictionary map=SimpleNamedDestination.GetNamedDestination(reader,false);
它以“字符串”(字典的值)的形式提供目的地
这样的
字符串
看起来是这样的:3 XYZ 36 802 0
其中第一个元素(3
)是页码。我假设您复制了一些代码,但不知道它是关于什么的。因此,阅读你问题的人根本不知道你想要达到什么目的。我们可以阅读您的问题,但代码片段似乎与问题无关。我阅读此论坛是为了从注释中查找目标页面,与我应用于套件程序的注释相同…,没有线索如何从此页面获取页码。。,这是我的问题。如果thisPage.Equals(reader.GetPageN(k)),那么msgbox k退出,如果Next
,如果我使用此代码,我可以捕获页码,但是我们有没有其他直接的方法来获取页码..我们有没有任何方法可以像这样从页面注释中获取字符串?你必须更具体一些。(对)命名目的地的引用存储在PDF的根对象中。(对的引用)注释存储在页面的/Annots数组中。命名目的地可用于链接注释中。链接注释只是许多可能的注释类型中的一种。当您要求从页面注释中获取字符串时,不清楚您的意思是什么,因为有些注释很难在字符串中捕获。