import com.spire.doc.*;
import com.spire.doc.documents.BookmarksNavigator;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextBodyPart;
import com.spire.doc.fields.TextRange;
import java.io.IOException;
import java.io.PrintWriter;
public class GetBookmarkText {
public static void main(String[]args) throws IOException {
//加载包含书签的Word文档
Document doc = new Document();
doc.loadFromFile("test.docx");
//获取书签
BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
bookmarksNavigator.moveToBookmark("bookmark1");
//获取书签文本
TextBodyPart textBodyPart = bookmarksNavigator.getBookmarkContent();
//创建String变量
String text = "";
//遍历书签内容的项目
for (Object item : textBodyPart.getBodyItems()) {
//判断项目是否为段落
if (item instanceof Paragraph) {
Paragraph paragraph = (Paragraph) item;
//遍历段落中的子对象
for (Object childObj : paragraph.getChildObjects()) {
//判断子对象是否为TextRange
if (childObj instanceof TextRange) {
//获取TextRange中的文本
TextRange textRange = (TextRange) childObj;
text = text + textRange.getText();
}
}
}
}
//将获取到的文本写入Txt文件
PrintWriter printWriter = new PrintWriter("BookmarkText.txt");
printWriter.println(text);
printWriter.close();
}
}