Vb.net 指定目的地到目标页码

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

我试图找出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

这段代码是我从其他线程复制的,我需要赶上页码。或者我们是否有其他方法来验证死链接和书签。

重新表述您的问题:您希望从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数组中。命名目的地可用于链接注释中。链接注释只是许多可能的注释类型中的一种。当您要求从页面注释中获取字符串时,不清楚您的意思是什么,因为有些注释很难在字符串中捕获。