Exemple #1
0
        static void PdfSharpTestParseResources(PdfSharp.Pdf.PdfDictionary resources)
        {
            PdfSharpTestParseReference(resources.Reference);

            PdfSharpTestParseElements(resources.Elements);


            return;
        }
Exemple #2
0
        static void PdfSharpTestParseDictionary(PdfSharp.Pdf.PdfDictionary dictionary)
        {
            PdfSharpTestParseElements(dictionary.Elements);


            if (dictionary.Stream != null)
            {
                System.Diagnostics.Debug.WriteLine("[DICTIONARY] " + dictionary.Stream.ToString());
            }

            return;
        }
Exemple #3
0
        static void PdfSharpTestParseReference(PdfSharp.Pdf.Advanced.PdfReference reference)
        {
            if (reference == null)
            {
                return;
            }

            switch (reference.Value.GetType().ToString())
            {
            case "PdfSharp.Pdf.Advanced.PdfContent":

                PdfSharp.Pdf.Advanced.PdfContent pdfContent = reference.Value as PdfSharp.Pdf.Advanced.PdfContent;

                String content = System.Text.ASCIIEncoding.ASCII.GetString(pdfContent.Stream.Value);

                foreach (String currentCommand in content.Split('\n'))
                {
                    System.Diagnostics.Debug.WriteLine("Command: " + currentCommand);
                }

                break;

            case "PdfSharp.Pdf.PdfDictionary":

                PdfSharp.Pdf.PdfDictionary dictionary = reference.Value as PdfSharp.Pdf.PdfDictionary;

                PdfSharpTestParseDictionary(dictionary);

                break;

            case "PdfSharp.Pdf.PdfPage":

                PdfSharp.Pdf.PdfPage pdfPage = reference.Value as PdfSharp.Pdf.PdfPage;

                break;


            default:

                System.Diagnostics.Debug.WriteLine("[REFERENCE PARSE UNKNOWN TYPE] " + reference.Value.GetType().ToString());

                break;
            }

            return;
        }
Exemple #4
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;
        }