using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// 加载文档
Document document = new Document();
document.LoadFromFile(@"C:\Users\Administrator\Documents\visual studio 2015\Projects\ConsoleApplication2\ConsoleApplication2\a.docx");
//使用GetText方法获取文档中的所有文本
string s = document.GetText();
//查找需要设置书签的内容
TextSelection selection = document.FindString("[ALC]", false, false);
TextRange range = selection.GetAsOneRange();
Paragraph para = range.OwnerParagraph;
string text = range.Text;
int index = para.ChildObjects.IndexOf(range);
//添加书签,并命名
BookmarkStart start = new BookmarkStart(document, "测试书签");
BookmarkEnd end = new BookmarkEnd(document, "测试书签");
para.ChildObjects.Insert(index, start);
para.ChildObjects.Insert(index + 2, end);
//保存文档
document.SaveToFile(@"C:\Users\Administrator\Documents\visual studio 2015\Projects\ConsoleApplication2\ConsoleApplication2\b.docx", FileFormat.Docx);
//读取书签内容
document.LoadFromFile(@"C:\Users\Administrator\Documents\visual studio 2015\Projects\ConsoleApplication2\ConsoleApplication2\b.docx");
//创建BookmarksNavigator实例
BookmarksNavigator navigator = new BookmarksNavigator(document);
//指向特定的书签
navigator.MoveToBookmark("测试书签");
//获取书签中的内容
TextBodyPart textBodyPart = navigator.GetBookmarkContent();
//遍历书签内容中的子项目,并将文本信息提取至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);
}
}
}