PDF管理控件Spire.PDF書(shū)簽教程:如何添加書(shū)簽和獲取多級(jí)書(shū)簽
更多資源查看:Spire.XLS工作表教程 | Spire.Doc系列教程 | Spire.PDF系列教程
Spire.PDF是一個(gè)專業(yè)的PDF組件,能夠獨(dú)立地創(chuàng)建、編寫(xiě)、編輯、操作和閱讀PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF的PDF API擁有豐富的功能,如安全設(shè)置(包括數(shù)字簽名)、PDF文本/附件/圖片提取、PDF文件合并/拆分、元數(shù)據(jù)更新、章節(jié)和段落優(yōu)化、圖形/圖像描繪和插入、表格創(chuàng)建和處理、數(shù)據(jù)導(dǎo)入等等。
書(shū)簽不僅可以幫助我們跳轉(zhuǎn)到文檔中相應(yīng)的位置,還可以讓我們快速地了解文檔所講述的內(nèi)容。本文將介紹如何添加刪除PDF書(shū)簽,獲取多級(jí)書(shū)簽。
C# 獲取 PDF 多級(jí)書(shū)簽
Spire.PDF不僅支持對(duì)簡(jiǎn)單書(shū)簽的操作,還支持多級(jí)書(shū)簽。接下來(lái)將介紹如何使用Spire.PDF來(lái)獲取PDF文檔中的多級(jí)書(shū)簽。
static void Main(string[] args) { //加載含有多級(jí)書(shū)簽的PDF文件 PdfDocument doc = new PdfDocument(); doc.LoadFromFile("示例.pdf"); //獲取文檔的書(shū)簽 PdfBookmarkCollection bookmarks = doc.Bookmarks; //聲明一個(gè)可變字符串 StringBuilder stringbuilder = new StringBuilder(); //獲取父書(shū)簽和子書(shū)簽 GetBookmarkTitle(bookmarks, stringbuilder); //聲明txt文件,并將獲得的多級(jí)書(shū)簽寫(xiě)入到文件.txt String fileName = "D://文件.txt"; File.WriteAllText(fileName, stringbuilder.ToString()); Console.ReadLine(); } static void GetBookmarkTitle(PdfBookmarkCollection bookmarks, StringBuilder stringbuilder) { if (bookmarks.Count > 0) { foreach (PdfBookmark parentBookmark in bookmarks) { stringbuilder.AppendLine(parentBookmark.Title); //遞歸文檔多級(jí)書(shū)簽 GetBookmarkTitle(parentBookmark, stringbuilder); } } }
C# 添加、修改和刪除 PDF 書(shū)簽
添加書(shū)簽
在Spire.PDF中,每個(gè)PDF文檔都有一個(gè)書(shū)簽列表(PdfBookmarkCollection)。我們可以通過(guò)PdfDocument對(duì)象的Bookmarks屬性來(lái)獲取該列表,然后通過(guò)Add () 方法將書(shū)簽添加到列表中。
//新建PDF文檔 PdfDocument pdf = new PdfDocument(); //添加頁(yè)面 PdfPageBase page = pdf.Pages.Add(); //添加書(shū)簽 PdfBookmark bookmark = pdf.Bookmarks.Add("第一頁(yè)"); //設(shè)置書(shū)簽所指向的頁(yè)面和位置,(0,0)表示頁(yè)面的開(kāi)始位置 bookmark.Destination = new PdfDestination(page); bookmark.Destination.Location = new PointF(0, 0); //設(shè)置書(shū)簽的文本格式和顏色 bookmark.DisplayStyle = PdfTextStyle.Bold; bookmark.Color = Color.Black; //保存文檔 pdf.SaveToFile("Bookmark2.pdf");
添加子書(shū)簽
//新建PDF文檔 PdfDocument pdf = new PdfDocument(); //添加頁(yè)面 PdfPageBase page = pdf.Pages.Add(); //添加書(shū)簽 PdfBookmark bookmark = pdf.Bookmarks.Add("第一章 熱傳導(dǎo)"); //設(shè)置書(shū)簽指向的頁(yè)面和位置 bookmark.Destination = new PdfDestination(page); bookmark.Destination.Location = new PointF(0, 0); //設(shè)置書(shū)簽的文本格式和顏色 bookmark.DisplayStyle = PdfTextStyle.Bold; bookmark.Color = Color.SeaGreen; //添加子書(shū)簽 PdfBookmark childBookmark = bookmark.Insert(0, "1.1 熱傳導(dǎo)基本知識(shí)"); //設(shè)置子書(shū)簽指向的頁(yè)面和位置 childBookmark.Destination = new PdfDestination(page); childBookmark.Destination.Location = new PointF(400, 300); //設(shè)置子書(shū)簽的文本格式和顏色 childBookmark.DisplayStyle = PdfTextStyle.Regular; childBookmark.Color = Color.Black; //保存文檔 pdf.SaveToFile("ChildBookmark.pdf");
添加書(shū)簽到現(xiàn)有文檔
除了在新建的PDF文檔里添加書(shū)簽,我們還可以給現(xiàn)有的PDF文檔添加書(shū)簽。加載PDF文檔的方法除LoadFromFile以外,還有LoadFromStream (從流加載),LoadFromHTML(從HTML加載)等,可根據(jù)自己的需求選擇相應(yīng)的加載方式。
//加載文檔 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("示例.pdf"); for (int i = 0; i < pdf.Pages.Count; i++) { //添加書(shū)簽 PdfBookmark bookmark = pdf.Bookmarks.Add(string.Format("第{0}章", i+1)); //設(shè)置書(shū)簽指向的頁(yè)面和位置 bookmark.Destination = new PdfDestination(pdf.Pages[i]); bookmark.Destination.Location = new PointF(0, 0); //設(shè)置書(shū)簽的文本格式和顏色 bookmark.DisplayStyle = PdfTextStyle.Bold; bookmark.Color = Color.Black; } //保存文檔 pdf.SaveToFile("Bookmark2.pdf");
修改書(shū)簽
Spire.PDF支持多種書(shū)簽修改方式,例如修改現(xiàn)有書(shū)簽的內(nèi)容,插入新書(shū)簽到現(xiàn)有書(shū)簽列表,插入子書(shū)簽到現(xiàn)有書(shū)簽等。這里我們選取修改書(shū)簽內(nèi)容和插入新書(shū)簽到現(xiàn)有書(shū)簽列表進(jìn)行介紹。
修改現(xiàn)有書(shū)簽內(nèi)容
//加載文檔 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Bookmark2.pdf"); //獲取書(shū)簽列表 PdfBookmarkCollection bookmarks = pdf.Bookmarks; //獲取第一個(gè)書(shū)簽 PdfBookmark bookmark = bookmarks[0]; //修改書(shū)簽指向的頁(yè)面 bookmark.Destination = new PdfDestination(document.Pages[1]); //修改書(shū)簽的文本格式和顏色 bookmark.DisplayStyle = PdfTextStyle.Bold; bookmark.Color = Color.Green; //修改書(shū)簽的title bookmark.Title = "修改"; //保存文檔 pdf.SaveToFile("ModifyBookmark.pdf");
插入新書(shū)簽到現(xiàn)有書(shū)簽列表
//加載文檔 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Bookmark2.pdf"); //插入新書(shū)簽到指定位置 PdfBookmark bookmark = pdf.Bookmarks.Insert(2, "新增第三章"); //設(shè)置書(shū)簽所指向的頁(yè)面和位置 bookmark.Destination = new PdfDestination(document.Pages[1]); bookmark.Destination.Location = new PointF(0, 300); //保存文檔 pdf.SaveToFile("InsertBookmark.pdf");
刪除書(shū)簽
刪除書(shū)簽時(shí),可以使用書(shū)簽的序號(hào),也可以使用書(shū)簽的名稱。這里所使用的是序號(hào)的方式。
//加載文檔 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Bookmark2.pdf"); //獲取所有書(shū)簽 PdfBookmarkCollection bookmarks = document.Bookmarks; //刪除第一個(gè)書(shū)簽 bookmarks.RemoveAt(0); //保存文檔 pdf.SaveToFile("DeleteBookmark.pdf");
如果你有任何問(wèn)題或意見(jiàn),可在下方評(píng)論區(qū)留言,點(diǎn)擊資源列表查看更多教程資源~
*想要購(gòu)買正版授權(quán)的朋友可以咨詢?cè)诰€客服哦~
掃描關(guān)注“慧聚IT”微信公眾號(hào),及時(shí)獲取更多產(chǎn)品最新動(dòng)態(tài)及最新資訊