///////////////////////////////////////////////////////////////////////
        // ParseElement
        ///////////////////////////////////////////////////////////////////////
        private static void ParseElement(PdeElement element, String outDir)
        {
            // parse element based on type;
            PdfElementType elemType = element.GetType_();

            switch (elemType)
            {
            case PdfElementType.kPdeTable:
                ParseTable((PdeTable)element, outDir);
                return;
            }

            int numChilds = element.GetNumChildren();

            for (int i = 0; i < numChilds; i++)
            {
                ParseElement(element.GetChild(i), outDir);
            }
        }
        ///////////////////////////////////////////////////////////////////////
        // ParseElement
        ///////////////////////////////////////////////////////////////////////
        private static void ParseElement(PdeElement element, StreamWriter file)
        {
            // parse element based on type;
            PdfElementType elemType = element.GetType_();

            switch (elemType)
            {
            case PdfElementType.kPdeText:
                ParseText((PdeText)element, file);
                return;
            }

            int numChilds = element.GetNumChildren();

            for (int i = 0; i < numChilds; i++)
            {
                ParseElement(element.GetChild(i), file);
            }
        }