书签,意指一本书的标签,主要用于使读者更快地找到阅读或修改的位置。同理,在Word中编辑或阅读文档时,也可通过使用书签来对某一处或几处进行标记,以便后期能够快速定位到指定文档位置,节约查找时间。本文将通过使用Java程序来详解介绍如何在Word文档中添加、读取和删除书签。
使用工具:Free Spire.Doc for Java(免费版)
Jar文件获取及导入:
方法1:通过官方网站下载获取jar包。解压后将lib文件夹下的Spire.Doc.jar文件导入Java程序。(如下图)
方法2:通过maven仓库安装导入。具体安装详情参见此网页。
【示例1】添加书签
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
public class AddBookMark {
public static void main(String[] args) {
//创建Document对象
Document doc = new Document();
//加载Word文档
doc.loadFromFile("D:\\Desktop\\Sample.doc");
//获取你想要添加书签的段落
Paragraph paragraph = doc.getSections().get(0).getParagraphs().get(6);
//添加一个开始标签并移动到段落开头
BookmarkStart start = paragraph.appendBookmarkStart("我的书签");
paragraph.getItems().insert(0,start);
//在段落末尾添加一个结束标签
paragraph.appendBookmarkEnd("我的书签");
//保存文档
doc.saveToFile("output/AddBookmark.docx", FileFormat.Docx_2013);
}
}
书签添加效果:
【示例2】读取书签文本
import com.spire.doc.Document;
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.FileNotFoundException;
import java.io.PrintWriter;
public class ReadBookMark {
public static void main(String[] args) throws FileNotFoundException {
//创建Document对象
Document doc = new Document();
//加载Word文档
doc.loadFromFile("D:\\Desktop\\AddBookmark.docx");
//获取指定书签
BookmarksNavigator navigator = new BookmarksNavigator(doc);
navigator.moveToBookmark("我的书签");
//获取书签内容
TextBodyPart textBodyPart = navigator.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("output/BookmarkText.txt");
printWriter.println(text);
printWriter.close();
}
}
书签文本读取效果:
【示例3】删除书签
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class DeleteBookMark {
public static void main(String[] args) {
//创建Document对象
Document doc = new Document();
//加载Word文档
doc.loadFromFile("D:\\Desktop\\AddBookmark.docx");
//移除index为0的书签,即第一个书签
doc.getBookmarks().remove(doc.getBookmarks().get(0));
//保存文档
doc.saveToFile("output/RemoveBookmark.docx", FileFormat.Docx);
}
}
书签删除效果:
(本文完)