首頁  >  文章  >  後端開發  >  C#如何實作新增和修改以及刪除PDF書籤的方法介紹

C#如何實作新增和修改以及刪除PDF書籤的方法介紹

黄舟
黄舟原創
2017-07-30 09:58:012055瀏覽

本篇文章主要介紹了C# 新增、修改和刪除PDF書籤的實例程式碼,小編覺得挺好的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

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

Spire.PDF元件概述 

Spire.PDF是一個專業的PDF元件,用於在.NET應用程式中創建,編輯,處理和閱讀PDF文件。支援豐富的PDF文件處理操作,如PDF文件合併/分割、轉換(如HTML轉PDF,PDF轉圖片等)、列印(包括靜默列印)、壓縮、新增/修改/刪除書籤、新增註解、安全性設定(包括數位簽章)、建立與填滿網域、圖片插入與擷取、文字擷取與高亮等。它不依賴Adobe Acrobat,因此運行環境無需安裝Adobe Reader或其他類似元件。 此組件分為商業版和免費版(非試用版)兩種,一般個人使用或操作的PDF文件不超過10頁時,可使用免費版。

關於它的安裝,有很多種管道,包括官網以及開發者最喜歡和常用的NuGet方式。在Visual Studio的NuGet Package Manager Console中輸入以下PowerShell指令回車,元件的dll就會自動地引用到專案中:


##

PM> Install-Package Spire.PDF

#新增、修改和刪除PDF書籤的實作


一、加入書籤

1.1 新增書籤

在Spire.PDF中,每個PDF文件都有一個書籤清單(PdfBookmarkCollection)。我們可以透過PdfDocument物件的Bookmarks屬性來取得該列表,然後透過Add () 方法將書籤新增至列表。

//新建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 新增子書籤

新增子書籤和新增普通書籤的方式基本上一樣,不同的是普通書籤是直接加入文件的書籤清單裡,而子書籤則是加到父書籤的清單裡。

//新建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載入)等,可依自己的需求選擇對應的載入方式。

//加载文档

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 修改現有書籤內容


#
//加载文档

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 插入新書籤到現有書籤清單

//加载文档

 

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. 刪除書籤###### ##刪除書籤時,可以使用書籤的序號,也可以使用書籤的名稱。這裡我使用的是序號的方式。 ############
//加载文档

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

//获取书签列表

PdfBookmarkCollection bookmarks = document.Bookmarks;

//删除第一个书签

bookmarks.RemoveAt(0);

//保存文档

pdf.SaveToFile("DeleteBookmark.pdf");

以上是C#如何實作新增和修改以及刪除PDF書籤的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn