Exemplo n.º 1
0
        static PdfSharp.Pdf.PdfObject PdfSharpGetItem(PdfSharp.Pdf.PdfDocument document, Int32 forObjectId)
        {
            PdfSharp.Pdf.PdfObject item = null;

            foreach (PdfSharp.Pdf.PdfObject currentItem in document.Internals.GetAllObjects())
            {
                if (currentItem.Internals.ObjectID.ObjectNumber == forObjectId)
                {
                    item = currentItem;

                    break;
                }
            }


            return(item);
        }
Exemplo n.º 2
0
        static void PdfSharpTestParsePage(PdfSharp.Pdf.PdfPage page)
        {
            foreach (String currentPageElementKey in page.Elements.Keys)
            {
                System.Diagnostics.Debug.WriteLine("[Page Element:" + currentPageElementKey + "] " + page.Elements [currentPageElementKey].ToString());
            }



            PdfSharp.Pdf.PdfDictionary pageResources = page.Elements.GetDictionary("/Resources");

            if (pageResources != null)
            {
                PdfSharp.Pdf.PdfDictionary pageObjects = pageResources.Elements.GetDictionary("/XObject");
            }



            PdfSharp.Pdf.PdfDictionary pageFonts = pageResources.Elements.GetDictionary("/Font");


            foreach (String currentElementKey in pageFonts.Elements.Keys)
            {
                System.Diagnostics.Debug.WriteLine("[FONT:" + currentElementKey + "]");

                PdfSharp.Pdf.Advanced.PdfReference fontReference = pageFonts.Elements[currentElementKey] as PdfSharp.Pdf.Advanced.PdfReference;

                PdfSharp.Pdf.PdfDictionary fontDictionary = fontReference.Value as PdfSharp.Pdf.PdfDictionary;

                foreach (String fontElementKey in fontDictionary.Elements.Keys)
                {
                    String propertyName = fontElementKey;

                    String propertyValue = fontDictionary.Elements [fontElementKey].ToString();

                    System.Diagnostics.Debug.WriteLine("[FONT:" + currentElementKey + "] | [" + propertyName + ":" + propertyValue + "]");

                    if (propertyName == "/FontDescriptor")
                    {
                        Int32 fontDescriptorObjectId = Convert.ToInt32(propertyValue.Split(' ')[0]);

                        PdfSharp.Pdf.PdfObject fontDescriptor = PdfSharpGetItem(page.Owner, fontDescriptorObjectId);

                        System.Diagnostics.Debug.WriteLine("DESCRIPTOR (BEGIN)");

                        foreach (String descriptorElementKey in (fontDescriptor as PdfSharp.Pdf.PdfDictionary).Elements.Keys)
                        {
                            propertyName = descriptorElementKey;

                            propertyValue = (fontDescriptor as PdfSharp.Pdf.PdfDictionary).Elements[descriptorElementKey].ToString();

                            System.Diagnostics.Debug.WriteLine("[FONT:" + currentElementKey + "] | [" + propertyName + ":" + propertyValue + "]");
                        }

                        System.Diagnostics.Debug.WriteLine("DESCRIPTOR ( END )");
                    }
                }
            }



            return;
        }