iTextSharp.text.pdf.PdfReader.GetNamedDestinationFromStrings C# (CSharp) Метод

GetNamedDestinationFromStrings() публичный Метод

public GetNamedDestinationFromStrings ( ) : Hashtable
Результат Hashtable
        public Hashtable GetNamedDestinationFromStrings() {
            if (catalog.Get(PdfName.NAMES) != null) {
                PdfDictionary dic = (PdfDictionary)GetPdfObjectRelease(catalog.Get(PdfName.NAMES));
                if (dic != null) {
                    dic = (PdfDictionary)GetPdfObjectRelease(dic.Get(PdfName.DESTS));
                    if (dic != null) {
                        Hashtable names = PdfNameTree.ReadTree(dic);
                        object[] keys = new object[names.Count];
                        names.Keys.CopyTo(keys, 0);
                        foreach (object key in keys) {
                            PdfArray arr = GetNameArray((PdfObject)names[key]);
                            if (arr != null)
                                names[key] = arr;
                            else
                                names.Remove(key);
                        }
                        return names;
                    }
                }
            }
            return new Hashtable();
        }
        

Usage Example

Пример #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);
        }
All Usage Examples Of iTextSharp.text.pdf.PdfReader::GetNamedDestinationFromStrings