GetNamedDestinationFromStrings() public method

public GetNamedDestinationFromStrings ( ) : Hashtable
return Hashtable
Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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].ToString());
             names[name] = s.ToString();
         }
         catch {
             names.Remove(name);
         }
     }
     return names;
 }