Aspose.Words for .NET使用書簽教程——在Aspose.Words中插入和刪除書簽
Aspose.Words For .Net是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺應(yīng)用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。
接下來我們將進入“使用書簽”的介紹,在Aspose.Words中插入和刪除書簽。
>>Aspose.Words for .NET更新至最新版v19.10,歡迎下載體驗
致改變世界的程序員——限時購買Aspose系列產(chǎn)品最高可享10000元高額減免!更多活動詳情可咨詢在線客服哦~
Aspose.Words中的書簽
借助Aspose.Words,可以在報告或文檔中使用書簽將一些數(shù)據(jù)插入書簽或?qū)ζ鋬?nèi)容應(yīng)用特殊格式。同時還可以使用書簽從文檔中的特定位置檢索文本。使用Aspose.Words使用書簽執(zhí)行的操作與使用Microsoft Word可以執(zhí)行的操作相同??梢圆迦胄聲灒瑒h除,移動到書簽,獲取或設(shè)置書簽名稱,獲取或設(shè)置其中包含的文本。
▲插入書簽
使用DocumentBuilder.StartBookmark和DocumentBuilder.EndBookmark分別通過標記書簽的開始和結(jié)束來創(chuàng)建書簽。不要忘記將相同的書簽名稱傳遞給兩個方法。文檔中的書簽可以重疊并且可以跨越任何范圍。保存文檔時,格式不正確的書簽或名稱重復的書簽將被忽略。下面的示例將一些文本添加到文檔中,并將該文本括在書簽中。
下面的示例演示如何創(chuàng)建新書簽。
//文檔目錄的路徑。 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);
▲獲取書簽
有時有必要獲取書簽集合以遍歷書簽或出于其他目的。使用任何文檔節(jié)點公開的Node.Range屬性,該屬性返回一個Range對象,該對象表示此節(jié)點中包含的文檔部分。使用此對象檢索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"];
下面的示例顯示如何獲取或設(shè)置書簽名稱和文本。
//文檔目錄的路徑。 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; //設(shè)置書簽的名稱和文本。 bookmark.Name = "RenamedBookmark"; bookmark.Text = "This is a new bookmarked text.";
下例顯示了如何為表格添加書簽。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_WorkingWithBookmarks(); //創(chuàng)建空文件 Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); Table table = builder.StartTable(); //插入一個單元格 builder.InsertCell(); //調(diào)用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(); // 書簽結(jié)尾 builder.EndBookmark("MyBookmark"); dataDir = dataDir + "Bookmark.Table_out.doc"; doc.Save(dataDir);
▲在塊、單元、行級別上使用書簽
書簽節(jié)點被允許放置在塊,單元和行級別上。在加載或保存DOCX,DOC,WML文檔時,Aspose.Words會在文檔節(jié)點結(jié)構(gòu)中保留書簽位置。您可以通過使用LoadOptions類的AnnotationsAtBlockLevel和AnnotationsAtBlockLevelAsDefault屬性來控制此行為。 如果要以嵌入式書簽?zāi)J酱蜷_文檔,請將LoadOptions.AnnotationsAtBlockLevel屬性的值設(shè)置為false。通過將LoadOptions.AnnotationsAtBlockLevelAsDefault的值設(shè)置為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技術(shù)交流QQ群(642018183)已開通,各類資源及時分享,歡迎交流討論!
如果您對Aspose有任何需求和疑難,記得掃描下方二維碼告訴我們哦~