//--------------------------------------------------------------------------------------- // Copyright (c) 2001-2006 by PDFTron Systems. All Rights Reserved. // Consult legal.txt regarding legal and license information. //--------------------------------------------------------------------------------------- using System; using System.Collections; using pdftron; using pdftron.Common; using pdftron.Filters; using pdftron.SDF; using pdftron.PDF; namespace BookmarkSplitCS { /// //----------------------------------------------------------------------------------------- // The sample code illustrates how to split the document based on bookmarks. //----------------------------------------------------------------------------------------- /// class BookmarkSplit { static int max_bookmark_levels = 3; static string output_path = "../../../../TestFiles/Output/"; static void CreateSplitList(PDFDoc doc, Bookmark item, SortedList slist, int level) { for (; item.IsValid(); item=item.GetNext()) { Action action = item.GetAction(); if (action.IsValid() && action.GetType() == Action.Type.e_GoTo) { Destination dest = action.GetDest(); Page page = dest.GetPage(); int page_idx = page.GetIndex(); if (slist.ContainsKey(page_idx) == false) { slist.Add(page_idx, item.GetTitle()); } } if (level /// The main entry point for the application. /// static void Main(string[] args) { PDFNet.Initialize(); try { PDFDoc doc = new PDFDoc("c:/PDFReference16.pdf"); doc.InitSecurityHandler(); // Get the root bookmark... Bookmark root = doc.GetFirstBookmark(); if (!root.IsValid()) Console.WriteLine("No bookmarks"); SplitByBookmarks(doc, root); doc.Close(); } catch (PDFNetException e) { Console.WriteLine(e.Message); } PDFNet.Terminate(); Console.WriteLine("Done."); } } }