本篇文章主要介紹了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;//修改書籤的titlebookmark.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");