// Prints out the outline tree to the standard output
        static void PrintOutlineTree(Bookmark item)
        {
            for (; item.IsValid(); item = item.GetNext())
            {
                PrintIndent(item);
                Console.Write("{0:s}{1:s} ACTION -> ", (item.IsOpen() ? "- " : "+ "), item.GetTitle());

                // Print Action
                pdftron.PDF.Action action = item.GetAction();
                if (action.IsValid())
                {
                    if (action.GetType() == pdftron.PDF.Action.Type.e_GoTo)
                    {
                        Destination dest = action.GetDest();
                        if (dest.IsValid())
                        {
                            Page page = dest.GetPage();
                            Console.WriteLine("GoTo Page #{0:d}", page.GetIndex());
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not a 'GoTo' action");
                    }
                }
                else
                {
                    Console.WriteLine("NULL");
                }

                if (item.HasChildren())                  // Recursively print children sub-trees
                {
                    PrintOutlineTree(item.GetFirstChild());
                }
            }
        }