Spire.Doc支持提取、替换以及删除现有文档中的书签内容,在另外一篇文章中我们已经介绍过如何替换书签内容,本文将展示如何获取和删除书签内容。
获取书签中的文本
C#
//创建Document实例
Document doc = new Document();
//加载Word文档
doc.LoadFromFile("书签.docx");
//创建BookmarksNavigator实例
BookmarksNavigator navigator = new BookmarksNavigator(doc);
//指向特定的书签
navigator.MoveToBookmark("bookmark_1");
//获取书签中的内容
TextBodyPart textBodyPart = navigator.GetBookmarkContent();
//遍历书签内容中的子项目,并将文本信息提取至string类型变量中
string text = null;
foreach (var item in textBodyPart.BodyItems)
{
if (item is Paragraph)
{
foreach (var childObject in (item as Paragraph).ChildObjects)
{
if (childObject is TextRange)
{
text += (childObject as TextRange).Text;
}
}
}
}
//控制台输出文本
Console.WriteLine(text);
VB.NET
'创建Document实例
Dim doc As Document = New Document
'加载Word文档
doc.LoadFromFile("书签.docx")
'创建BookmarksNavigator实例
Dim navigator As BookmarksNavigator = New BookmarksNavigator(doc)
'指向特定的书签
navigator.MoveToBookmark("bookmark_1")
'获取书签中的内容
Dim textBodyPart As TextBodyPart = navigator.GetBookmarkContent
'遍历书签内容中的子项目,并将文本信息提取至string类型变量中
Dim text As String = Nothing
For Each item In textBodyPart.BodyItems
If (TypeOf item Is Paragraph) Then
For Each childObject In CType(item,Paragraph).ChildObjects
If (TypeOf childObject Is TextRange) Then
text = (text + CType(childObject,TextRange).Text)
End If
Next
End If
Next
'控制台输出文本
Console.WriteLine(text)
删除书签及书签内容
C#
//创建Document实例
Document doc = new Document();
//加载Word文档
doc.LoadFromFile("书签.docx");
//创建BookmarksNavigator实例
BookmarksNavigator navigator = new BookmarksNavigator(doc);
//指向特定的书签
navigator.MoveToBookmark("bookmark_1");
//删除书签中的内容
navigator.DeleteBookmarkContent(false);
//删除书签
doc.Bookmarks.Remove(doc.Bookmarks.FindByName("bookmark_1"));
//保存文档
doc.SaveToFile("result.docx", FileFormat.Docx2013);
VB.NET
'创建Document实例
Dim doc As Document = New Document
'加载Word文档
doc.LoadFromFile("书签.docx")
'创建BookmarksNavigator实例
Dim navigator As BookmarksNavigator = New BookmarksNavigator(doc)
'指向特定的书签
navigator.MoveToBookmark("bookmark_1")
'删除书签中的内容
navigator.DeleteBookmarkContent(false)
'删除书签
doc.Bookmarks.Remove(doc.Bookmarks.FindByName("bookmark_1"))
'保存文档
doc.SaveToFile("result.docx", FileFormat.Docx2013)