//---------------------------------------------------------------------------------------
// 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.");
}
}
}