Aspose.PDF for .NET是一種高PDF處理和解析API,用於在跨平臺應用程序中執行文檔管理和操做任務。API能夠輕鬆用於生成、修改、轉換、渲染、保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,API還提供PDF壓縮選項,表格建立和操做,圖形和圖像功能,普遍的超連接功能,印章和水印任務,擴展的安全控制和自定義字體處理。編程
【下載體驗Aspose.PDF for .NET最新版】安全
在接下來的系列教程中,將爲開發者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉換,如何標記PDF文件,如何使用表單和圖表等等。字體
Document對象的OutlineCollection集合包含PDF文件的全部書籤。要獲取書籤,循環遍歷OutlineCollection集合並獲取OutlineItemCollection中的每一個書籤。OutlineItemCollection提供對全部書籤屬性的訪問。下面的代碼片斷向您展現瞭如何從PDF文件中獲取書籤。spa
//指向documents目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); / /打開文件 Document pdfDocument = new Document(dataDir + "GetBookmarks.pdf"); //循環遍歷全部書籤 foreach (OutlineItemCollection outlineItem in pdfDocument.Outlines) { Console.WriteLine(outlineItem.Title); Console.WriteLine(outlineItem.Italic); Console.WriteLine(outlineItem.Bold); Console.WriteLine(outlineItem.Color); }
一旦添加了書籤,就能夠經過獲取與bookmark對象關聯的目標PageNumber來查找它所在的頁面。對象
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); //建立PdfBookmarkEditor PdfBookmarkEditor bookmarkEditor = new PdfBookmarkEditor(); //打開PDF文件 bookmarkEditor.BindPdf(dataDir + "GetBookmarks.pdf"); //提取書籤 Aspose.Pdf.Facades.Bookmarks bookmarks = bookmarkEditor.ExtractBookmarks(); foreach (Aspose.Pdf.Facades.Bookmark bookmark in bookmarks) { string strLevelSeprator = string.Empty; for (int i = 1; i < bookmark.Level; i++) { strLevelSeprator += "----"; } Console.WriteLine("{0}Title: {1}", strLevelSeprator, bookmark.Title); Console.WriteLine("{0}Page Number: {1}", strLevelSeprator, bookmark.PageNumber); Console.WriteLine("{0}Page Action: {1}", strLevelSeprator, bookmark.Action); }
書籤能夠按照層次結構組織父級和子級。要獲取全部書籤,請循環遍歷文檔對象的大綱集合。可是,要同時得到子書籤,還須要遍歷第一個循環中得到的每一個OutlineItemCollection對象中的全部書籤。下面的代碼片斷展現瞭如何從PDF文檔獲取子書籤。繼承
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); //打開文檔 Document pdfDocument = new Document(dataDir + "GetChildBookmarks.pdf"); //遍歷全部書籤 foreach (OutlineItemCollection outlineItem in pdfDocument.Outlines) { Console.WriteLine(outlineItem.Title); Console.WriteLine(outlineItem.Italic); Console.WriteLine(outlineItem.Bold); Console.WriteLine(outlineItem.Color); if (outlineItem.Count > 0) { Console.WriteLine("Child Bookmarks"); //還有子書籤循環經過它 foreach (OutlineItemCollection childOutline in outlineItem) { Console.WriteLine(childOutline.Title); Console.WriteLine(childOutline.Italic); Console.WriteLine(childOutline.Bold); Console.WriteLine(childOutline.Color); } } }
要更新PDF文件中的書籤,首先經過指定書籤的索引從Document對象的OutlineColletion集合中獲取特定書籤。將書籤檢索到OutlineItemCollection對象後,能夠更新其屬性,而後使用該Save方法保存更新的PDF文件。如下代碼段顯示如何更新PDF文檔中的書籤。教程
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); //打開文檔 Document pdfDocument = new Document(dataDir + "UpdateBookmarks.pdf"); //獲取書籤對象 OutlineItemCollection pdfOutline = pdfDocument.Outlines[1]; pdfOutline.Title = "Updated Outline"; pdfOutline.Italic = true; pdfOutline.Bold = true; dataDir = dataDir + "UpdateBookmarks_out.pdf"; //保存輸出 pdfDocument.Save(dataDir);
單擊書籤(使用Aspose生成)時的默認縮放操做是適應頁面寬度。不過,咱們可使用Acrobat編輯特定的書籤操做,並將縮放設置爲「繼承縮放」。這樣,不管用戶當前如何查看文檔,單擊書籤都不會改變他們的查看方式。」所以,須要在編輯書籤時以編程方式繼承zoom。索引
爲了指定繼承縮放,您應該使用0值,由於根據PDF規範,左邊、頂部或縮放的任何參數都應該使用null值,或者縮放指定該參數的當前值應該保持不變。縮放值0與null值具備相同的含義。下面的代碼片斷展現瞭如何更新PDF文檔中的書籤。ci
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); //打開文檔 Document doc = new Document(dataDir + "input.pdf"); //獲取PDF文件的大綱/書籤集合 OutlineItemCollection item = new OutlineItemCollection(doc.Outlines); //將縮放級別設置爲0 XYZExplicitDestination dest = new XYZExplicitDestination(2, 100, 100, 0); //添加XYZExplicitDestination做爲動做以概述PDF的集合 item.Action = new GoToAction(dest); //添加項目以概述PDF文件的集合 doc.Outlines.Add(item); dataDir = dataDir + "InheritZoom_out.pdf"; //保存輸出 doc.Save(dataDir);
書籤保存在Document對象的OutlineItemCollection集合中,自己在OutlineCollection集合中。可是,咱們可能要求在查看PDF文件時擴展全部書籤。開發
爲了完成此要求,咱們能夠將每一個大綱/書籤項的打開狀態設置爲「打開」。如下代碼段顯示如何爲PDF文檔中展開的每一個書籤設置打開狀態。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks(); //打開文檔 Document doc = new Document(dataDir + "input.pdf"); //設置頁面查看模式,即顯示縮略圖,全屏,顯示附件面板 doc.PageMode = PageMode.UseOutlines; //遍歷PDF文件的輪廓集合中的每一個Ouline項目 foreach (OutlineItemCollection item in doc.Outlines) { //設置大綱項目的打開狀態 item.Open = true; } dataDir = dataDir + "ExpandBookmarks_out.pdf"; //保存輸出 doc.Save(dataDir);