• <menu id="w2i4a"></menu>
  • logo Aspose.PDF for .NET開發(fā)者使用教程

    文檔首頁>>Aspose.PDF for .NET開發(fā)者使用教程>>Aspose.PDF for .NET使用教程(三):獲取、更新和擴展書簽

    Aspose.PDF for .NET使用教程(三):獲取、更新和擴展書簽


    Aspose.PDF for .NET是一種高PDF處理和解析API,用于在跨平臺應用程序中執(zhí)行文檔管理和操作任務。API可以輕松用于生成、修改、轉(zhuǎn)換、渲染、保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,API還提供PDF壓縮選項,表格創(chuàng)建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務,擴展的安全控制和自定義字體處理。

    【下載體驗Aspose.PDF for .NET最新版】

    在接下來的系列教程中,將為開發(fā)者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉(zhuǎn)換,如何標記PDF文件,如何使用表單和圖表等等。

    第二章:使用書簽

    ▲第二節(jié):獲取、更新和展開書簽

    從PDF文檔中獲取書簽

    Document對象的OutlineCollection集合包含PDF文件的所有書簽。要獲取書簽,循環(huán)遍歷OutlineCollection集合并獲取OutlineItemCollection中的每個書簽。OutlineItemCollection提供對所有書簽屬性的訪問。下面的代碼片段向您展示了如何從PDF文件中獲取書簽。

    //指向documents目錄的路徑。
    string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks();
    
    / /打開文件
    Document pdfDocument = new Document(dataDir + "GetBookmarks.pdf");
    
    //循環(huán)遍歷所有書簽
    foreach (OutlineItemCollection outlineItem in pdfDocument.Outlines)
    {
        Console.WriteLine(outlineItem.Title);
        Console.WriteLine(outlineItem.Italic);
        Console.WriteLine(outlineItem.Bold);
        Console.WriteLine(outlineItem.Color);
    }


    獲取書簽的頁碼


    一旦添加了書簽,就可以通過獲取與bookmark對象關聯(lián)的目標PageNumber來查找它所在的頁面。

    //文檔目錄的路徑。
    string dataDir = RunExamples.GetDataDir_AsposePdf_Bookmarks();
    
    //創(chuàng)建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);
    }


    從PDF文檔中獲取子書簽


    書簽可以按照層次結(jié)構組織父級和子級。要獲取所有書簽,請循環(huán)遍歷文檔對象的大綱集合。但是,要同時獲得子書簽,還需要遍歷第一個循環(huán)中獲得的每個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");
           //還有子書簽循環(huán)通過它
            foreach (OutlineItemCollection childOutline in outlineItem)
            {
                Console.WriteLine(childOutline.Title);
                Console.WriteLine(childOutline.Italic);
                Console.WriteLine(childOutline.Bold);
                Console.WriteLine(childOutline.Color);
            }
        }
    }

    更新PDF文檔中的書簽


    要更新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編輯特定的書簽操作,并將縮放設置為“繼承縮放”。這樣,無論用戶當前如何查看文檔,單擊書簽都不會改變他們的查看方式?!币虼耍枰诰庉嫊灂r以編程方式繼承zoom。

    為了指定繼承縮放,您應該使用0值,因為根據(jù)PDF規(guī)范,左邊、頂部或縮放的任何參數(shù)都應該使用null值,或者縮放指定該參數(shù)的當前值應該保持不變??s放值0與null值具有相同的含義。下面的代碼片段展示了如何更新PDF文檔中的書簽。

    //文檔目錄的路徑。
    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文件時擴展所有書簽。

    為了完成此要求,我們可以將每個大綱/書簽項的打開狀態(tài)設置為“打開”。以下代碼段顯示如何為PDF文檔中展開的每個書簽設置打開狀態(tài)。

    //文檔目錄的路徑。
    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)
    {
        //設置大綱項目的打開狀態(tài)
        item.Open = true;
    }
    
    dataDir = dataDir + "ExpandBookmarks_out.pdf";
    //保存輸出
    doc.Save(dataDir);


    -- 未完待續(xù) --


    *想要購買Aspose.PDF for .NET正版授權的朋友可以聯(lián)系在線客服了解詳情哦~

    歡迎加入ASPOSE技術交流QQ群,各類資源及時分享,技術問題交流討論!(掃描下方二維碼加入群聊)

    1560231367164.png


    850X100.png


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();