using ComPDFKit.PDFDocument;
using System;
using System.Collections.Generic;
using System.IO;
namespace BookmarkTest
{
internal class BookmarkTest
{
static private string parentPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())));
static private string outputPath = Path.Combine(parentPath, "Output", "CS");
static void Main(string[] args)
{
#region Preparation work
Console.WriteLine("Running Bookmark test sample…" + Environment.NewLine);
SDKLicenseHelper.LicenseVerify();
CPDFDocument document = CPDFDocument.InitWithFilePath("ThreeBookmark.pdf");
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
#endregion
#region Sample 1: Access bookmark
if (AccessBookmark(document))
{
Console.WriteLine("Check bookmark list done.");
}
else
{
Console.WriteLine("Check bookmark list failed.");
Console.WriteLine("--------------------");
Console.WriteLine("Stop.");
Console.WriteLine("--------------------");
Console.ReadLine();
return;
}
document.Release();
Console.WriteLine("--------------------");
#endregion
#region Sample 2: Create bookmark
document = CPDFDocument.InitWithFilePath("ThreeBookmark.pdf");
if (CreateBookmark(document))
{
Console.WriteLine("Add bookmark done.");
}
else
{
Console.WriteLine("Add bookmark failed.");
}
document.Release();
Console.WriteLine("--------------------");
#endregion
#region Sample 3: Remove bookmark
document = CPDFDocument.InitWithFilePath("ThreeBookmark.pdf");
if (RemoveBookmark(document))
{
Console.WriteLine("Remove bookmark done.");
}
else
{
Console.WriteLine("Remove bookmark done.");
}
document.Release();
Console.WriteLine("--------------------");
#endregion
Console.WriteLine("Done!");
Console.WriteLine("--------------------");
Console.ReadLine();
}
///
/// Access bookmark
///
static private bool AccessBookmark(CPDFDocument document)
{
List bookmarkList = document.GetBookmarkList();
if (bookmarkList.Count == 3)
{
Console.WriteLine("Access bookmark list done.");
}
else
{
return false;
}
if (document.BookmarkForPageIndex(0).Title == "Bookmark1")
{
Console.WriteLine("Access bookmark for a page done.");
}
else
{
return false;
}
return true;
}
///
/// Create bookmark
///
static private bool CreateBookmark(CPDFDocument document)
{
var bookmarkCount = document.GetBookmarkList().Count;
CPDFBookmark bookmark = new CPDFBookmark();
bookmark.Title = "new bookmark";
bookmark.PageIndex = 4;
document.AddBookmark(bookmark);
if (!(document.GetBookmarkList().Count - bookmarkCount == 1))
{
return false;
}
Console.WriteLine("Add bookmark in page {0}. ", bookmark.PageIndex + 1);
string addBookmarkPath = Path.Combine(outputPath, "AddBookmarkTest.pdf");
if (document.WriteToFilePath(addBookmarkPath))
{
Console.WriteLine("Browse the changed file in " + addBookmarkPath);
return true;
}
else
{
return false;
}
}
///
/// Remove bookmark
///
static private bool RemoveBookmark(CPDFDocument document)
{
var bookmarkCount = document.GetBookmarkList().Count;
document.RemoveBookmark(0);
if (!(bookmarkCount - document.GetBookmarkList().Count == 1))
{
return false;
}
string removeBookmarkPath = Path.Combine(outputPath, "RemoveBookmarkTest.pdf");
if (document.WriteToFilePath(removeBookmarkPath))
{
Console.WriteLine("Browse the changed file in " + removeBookmarkPath);
return true;
}
else
{
return false;
}
}
}
}