C# 添加、修改、刪除PDF書籤

有時候我們在閱讀PDF文檔時會遇到這樣一種情況:PDF文檔頁數比較多,但是又沒有書籤,所以我們不能根據書籤快速瞭解文檔所講解的內容,也不能點擊書籤快速跳轉到相應的位置,而只能一頁一頁的翻閱,非常苦惱。相信開發人員在開發和PDF有關的應用程序時,也會有這樣的功能需求,因此在這篇文章中我就介紹一下如何使用編程的方式(C#)和Spire.PDF組件給PDF文檔添加書籤(包括添加書籤到現有文檔和添加子書籤),以及修改和刪除現有PDF文檔中的指定書籤。

添加書籤

1.1 添加書籤

在Spire.PDF中,每個PDF文檔都有一個書籤列表(PdfBookmarkCollection)。我們可以通過PdfDocument對象的Bookmarks屬性來獲取該列表,然後通過Add () 方法將書籤添加到列表中。

【C#】

//新建PDF文檔

PdfDocument pdf = new PdfDocument();

//添加頁面

PdfPageBase page = pdf.Pages.Add();

//添加書籤
PdfBookmark bookmark = pdf.Bookmarks.Add("第一頁");

//設置書籤所指向的頁面和位置,(0,0)表示頁面的開始位置

bookmark.Destination = new PdfDestination(page);
bookmark.Destination.Location = new PointF(0, 0);

//設置書籤的文本格式和顏色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.Black;

//保存文檔

pdf.SaveToFile("Bookmark2.pdf");

 

 


 

1.2 添加子書籤

添加子書籤和添加普通書籤的方式基本一樣,不同的是普通書籤是直接添加到文檔的書籤列表裏,而子書籤則是添加到父書籤的列表裏。

【C#】

 

//新建PDF文檔

PdfDocument pdf = new PdfDocument();

//添加頁面

PdfPageBase page = pdf.Pages.Add(); 

//添加書籤

PdfBookmark bookmark = pdf.Bookmarks.Add("第一章 熱傳導");

//設置書籤指向的頁面和位置

bookmark.Destination = new PdfDestination(page);
bookmark.Destination.Location = new PointF(0, 0);
 
//設置書籤的文本格式和顏色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.SeaGreen;

//添加子書籤

PdfBookmark childBookmark = bookmark.Insert(0, "1.1 熱傳導基本知識");

//設置子書籤指向的頁面和位置

childBookmark.Destination = new PdfDestination(page);
childBookmark.Destination.Location = new PointF(400, 300);

//設置子書籤的文本格式和顏色

childBookmark.DisplayStyle = PdfTextStyle.Regular;
childBookmark.Color = Color.Black;

//保存文檔

pdf.SaveToFile("ChildBookmark.pdf");

 

 

子書籤添加結果:



 

1.3 添加書籤到現有文檔

除了在新建的PDF文檔裏添加書籤,我們還可以給現有的PDF文檔添加書籤。加載PDF文檔的方法除LoadFromFile以外,還有LoadFromStream (從流加載),LoadFromHTML(從HTML加載)等,可根據自己的需求選擇相應的加載方式。

【C#】

 

//加載文檔

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("示例.pdf"); 

for (int i = 0; i < pdf.Pages.Count; i++)
{
    //添加書籤

    PdfBookmark bookmark = pdf.Bookmarks.Add(string.Format("第{0}章", i+1));

    //設置書籤指向的頁面和位置

    bookmark.Destination = new PdfDestination(pdf.Pages[i]);
    bookmark.Destination.Location = new PointF(0, 0);

    //設置書籤的文本格式和顏色

    bookmark.DisplayStyle = PdfTextStyle.Bold;
    bookmark.Color = Color.Black;
}

//保存文檔

pdf.SaveToFile("Bookmark2.pdf");

 

 

 

2. 修改書籤

Spire.PDF支持多種書籤修改方式,例如修改現有書籤的內容,插入新書籤到現有書籤列表,插入子書籤到現有書籤等。這裏我選取修改書籤內容和插入新書籤到現有書籤列表進行介紹。

2.1修改現有書籤

【C#】

//加載文檔

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Bookmark2.pdf");

//獲取書籤列表

PdfBookmarkCollection bookmarks = pdf.Bookmarks;

//獲取第一個書籤

PdfBookmark bookmark = bookmarks[0];

//修改書籤指向的頁面

bookmark.Destination = new PdfDestination(document.Pages[1]); 

//修改書籤的文本格式和顏色

bookmark.DisplayStyle = PdfTextStyle.Bold;
bookmark.Color = Color.Green;

//修改書籤的title

bookmark.Title = "修改";

//保存文檔

pdf.SaveToFile("ModifyBookmark.pdf");

修改結果:



 

 

2.2 插入新書籤到現有書籤列表

【C#】

//加載文檔

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Bookmark2.pdf");

//插入新書籤到指定位置(此處插入的是第三個書籤的位置)

PdfBookmark bookmark = pdf.Bookmarks.Insert(2, "新增第三章");

//設置書籤所指向的頁面和位置

bookmark.Destination = new PdfDestination(document.Pages[1]);
bookmark.Destination.Location = new PointF(0, 300);

//保存文檔

pdf.SaveToFile("InsertBookmark.pdf");

 



 

 

3. 刪除書籤

刪除書籤時,可以使用書籤的序號,也可以使用書籤的名稱。這裏我使用的是序號的方式。

【C#】

//加載文檔

PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Bookmark2.pdf");

//獲取書籤列表

PdfBookmarkCollection bookmarks = document.Bookmarks;

//刪除第一個書籤

bookmarks.RemoveAt(0);

//保存文檔

pdf.SaveToFile("DeleteBookmark.pdf");

 



 以上博主只總結了部分操作PDF書籤的功能,如果需要詳細瞭解其他的功能,請查閱:http://e-iceblue.cn/Introduce/Spire-PDF-NET.html。如有任何疑問,歡迎給博主留言。歡迎轉載,轉載時請註明出處!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章