翻譯|使用教程|編輯:李顯亮|2019-10-22 10:28:23.173|閱讀 2504 次
概述:借助Aspose.Words,可以在報告或文檔中使用書簽將一些數據插入書簽或對其內容應用特殊格式。同時還可以使用書簽從文檔中的特定位置檢索文本。本文將介紹在Aspose.Words中插入和刪除書簽。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Aspose.Words For .Net是一種高級Word文檔處理API,用于執行各種文檔管理和操作任務。API支持生成,修改,轉換,呈現和打印文檔,而無需在跨平臺應用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導出或轉換為固定布局文件格式和最常用的圖像/多媒體格式。
接下來我們將進入“使用書簽”的介紹,在Aspose.Words中插入和刪除書簽。
>>Aspose.Words for .NET更新至最新版v19.10,歡迎下載體驗
致改變世界的程序員——限時購買Aspose系列產品最高可享10000元高額減免!更多活動詳情可哦~
借助Aspose.Words,可以在報告或文檔中使用書簽將一些數據插入書簽或對其內容應用特殊格式。同時還可以使用書簽從文檔中的特定位置檢索文本。使用Aspose.Words使用書簽執行的操作與使用Microsoft Word可以執行的操作相同。可以插入新書簽,刪除,移動到書簽,獲取或設置書簽名稱,獲取或設置其中包含的文本。
▲插入書簽
使用DocumentBuilder.StartBookmark和DocumentBuilder.EndBookmark分別通過標記書簽的開始和結束來創建書簽。不要忘記將相同的書簽名稱傳遞給兩個方法。文檔中的書簽可以重疊并且可以跨越任何范圍。保存文檔時,格式不正確的書簽或名稱重復的書簽將被忽略。下面的示例將一些文本添加到文檔中,并將該文本括在書簽中。
下面的示例演示如何創建新書簽。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_WorkingWithBookmarks(); Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); builder.StartBookmark("My Bookmark"); builder.Writeln("Text inside a bookmark."); builder.StartBookmark("Nested Bookmark"); builder.Writeln("Text inside a NestedBookmark."); builder.EndBookmark("Nested Bookmark"); builder.Writeln("Text after Nested Bookmark."); builder.EndBookmark("My Bookmark"); PdfSaveOptions options = new PdfSaveOptions(); options.OutlineOptions.BookmarksOutlineLevels.Add("My Bookmark", 1); options.OutlineOptions.BookmarksOutlineLevels.Add("Nested Bookmark", 2); dataDir = dataDir + "Create.Bookmark_out.pdf"; doc.Save(dataDir, options);
▲獲取書簽
有時有必要獲取書簽集合以遍歷書簽或出于其他目的。使用任何文檔節點公開的Node.Range屬性,該屬性返回一個Range對象,該對象表示此節點中包含的文檔部分。使用此對象檢索BookmarkCollection,然后使用集合索引器獲取特定的書簽。
下例顯示了如何從書簽集合中獲取書簽。
// 文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_WorkingWithBookmarks(); Document doc = new Document(dataDir + "Bookmarks.doc"); //按索引。 Bookmark bookmark1 = doc.Range.Bookmarks[0]; //按名稱。 Bookmark bookmark2 = doc.Range.Bookmarks["Bookmark2"];
下面的示例顯示如何獲取或設置書簽名稱和文本。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_WorkingWithBookmarks(); Document doc = new Document(dataDir + "Bookmark.doc"); //使用Bookmarks集合的索引器獲取所需的書簽。 Bookmark bookmark = doc.Range.Bookmarks["MyBookmark"]; //獲取書簽的名稱和文本。 string name = bookmark.Name; string text = bookmark.Text; //設置書簽的名稱和文本。 bookmark.Name = "RenamedBookmark"; bookmark.Text = "This is a new bookmarked text.";
下例顯示了如何為表格添加書簽。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_WorkingWithBookmarks(); //創建空文件 Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); Table table = builder.StartTable(); //插入一個單元格 builder.InsertCell(); //調用InsertCell之后在此處開始書簽 builder.StartBookmark("MyBookmark"); builder.Write("This is row 1 cell 1"); //插入一個單元格 builder.InsertCell(); builder.Write("This is row 1 cell 2"); builder.EndRow(); //插入一個單元格 builder.InsertCell(); builder.Writeln("This is row 2 cell 1"); //插入一個單元格 builder.InsertCell(); builder.Writeln("This is row 2 cell 2"); builder.EndRow(); builder.EndTable(); // 書簽結尾 builder.EndBookmark("MyBookmark"); dataDir = dataDir + "Bookmark.Table_out.doc"; doc.Save(dataDir);
▲在塊、單元、行級別上使用書簽
書簽節點被允許放置在塊,單元和行級別上。在加載或保存DOCX,DOC,WML文檔時,Aspose.Words會在文檔節點結構中保留書簽位置。您可以通過使用LoadOptions類的AnnotationsAtBlockLevel和AnnotationsAtBlockLevelAsDefault屬性來控制此行為。 如果要以嵌入式書簽模式打開文檔,請將LoadOptions.AnnotationsAtBlockLevel屬性的值設置為false。通過將LoadOptions.AnnotationsAtBlockLevelAsDefault的值設置為false,可以使此行為成為默認行為。
下面的示例顯示了如何在塊級別插入書簽。
LoadOptions options = new LoadOptions(); options.AnnotationsAtBlockLevel = true; Document doc = new Document(dataDir + "AnnotationsAtBlockLevel.docx", options); DocumentBuilder builder = new DocumentBuilder(doc); StructuredDocumentTag sdt = (StructuredDocumentTag)doc.GetChildNodes(NodeType.StructuredDocumentTag, true)[0]; BookmarkStart start = builder.StartBookmark("bm"); BookmarkEnd end = builder.EndBookmark("bm"); sdt.ParentNode.InsertBefore(start, sdt); sdt.ParentNode.InsertAfter(end, sdt); //將文檔保存到DOCX doc.Save(dataDir + "AnnotationsAtBlockLevel_out.docx", SaveFormat.Docx);
ASPOSE技術交流QQ群(642018183)已開通,各類資源及時分享,歡迎交流討論!
如果您對Aspose有任何需求和疑難,記得掃描下方二維碼告訴我們哦~
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn