public static Hashtable GetNamedDestination(PdfReader reader, bool fromNames)
{
IntHashtable pages = new IntHashtable();
int numPages = reader.NumberOfPages;
for (int k = 1; k <= numPages; ++k)
{
pages[reader.GetPageOrigRef(k).Number] = k;
}
Hashtable names = fromNames ? reader.GetNamedDestinationFromNames() : reader.GetNamedDestinationFromStrings();
string[] keys = new string[names.Count];
names.Keys.CopyTo(keys, 0);
foreach (string name in keys)
{
PdfArray arr = (PdfArray)names[name];
StringBuilder s = new StringBuilder();
try
{
s.Append(pages[(arr.GetAsIndirectObject(0)).Number]);
s.Append(' ').Append(arr[1].ToString().Substring(1));
for (int k = 2; k < arr.Size; ++k)
{
s.Append(' ').Append(arr[k]);
}
names[name] = s.ToString();
}
catch
{
names.Remove(name);
}
}
return(names);
}