您好,登錄后才能下訂單哦!
有時候我們在閱讀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");
以上博主只總結了部分操作PDF書簽的功能,如果需要詳細了解其他的功能,請查閱:http://e-iceblue.cn/Introduce/Spire-PDF-NET.html.希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。