博客
关于我
Java 操作Word书签(一):添加、删除、读取书签
阅读量:415 次
发布时间:2019-03-06

本文共 4807 字,大约阅读时间需要 16 分钟。

Java程序添加与删除Word书签的实用指南

Word书签功能是文档处理中的重要工具,常用于查找、定位和标记特定字符或段落。对于处理较大文档的用户来说,此功能尤为实用。本文将详细介绍如何通过Java程序实现Word书签的添加、删除以及读取功能。


1. 添加书签

1.1 给指定段落添加书签

通过Java程序,可以通过以下步骤给Word文档中的指定段落添加书签:

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
public class AppendBookmark {
public static void main(String[] args) {
// 加载需要编辑的Word文档
Document doc = new Document();
doc.loadFromFile("sample.docx");
// 获取目标段落
Paragraph para = doc.getSections().get(0).getParagraphs().get(1);
// 添加书签
BookmarkStart start = para.appendBookmarkStart("bookmark01");
para.getItems().insert(0, start);
para.appendBookmarkEnd("bookmark01");
// 保存修改
doc.saveToFile("appendbookmark.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

1.2 给指定字符串添加书签

如果需要为文档中的特定字符串添加书签,可以按照以下步骤操作:

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.TextRange;
public class AppendBookmarkToCharacter {
public static void main(String[] args) {
// 加载文档
Document doc = new Document();
doc.loadFromFile("sample.docx");
// 查找指定字符串
TextSelection textSelection = doc.findString("采用蕴含深意的象征语言,揭示人生的哲理。", false, false);
TextRange range = textSelection.getAsOneRange();
Paragraph para = range.getOwnerParagraph();
int index = para.getChildObjects().indexOf(range);
// 添加书签
BookmarkStart start = new BookmarkStart(doc, "书签1");
BookmarkEnd end = new BookmarkEnd(doc, "书签1");
para.getChildObjects().insert(index, start);
para.getChildObjects().insert(index + 2, end);
// 保存文档
doc.saveToFile("appendbookmarktocharacter.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

2. 删除书签

2.1 删除书签

要删除Word书签,可以通过以下步骤实现:

import com.spire.doc.*;
import com.spire.doc.documents.BookmarksNavigator;
public class DeleteBookmark {
public static void main(String[] args) {
// 加载文档
Document doc = new Document();
doc.loadFromFile("test.docx");
// 定位到指定书签
BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
bookmarksNavigator.moveToBookmark("bookmark1");
// 删除书签内容
bookmarksNavigator.deleteBookmarkContent(true);
// 保存修改
doc.saveToFile("deletebookmark.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

2.2 删除书签文本

如果需要仅删除书签标签而保留原文,可以按照以下方法操作:

import com.spire.doc.*;
import com.spire.doc.fields.Bookmark;
public class DeleteBookmarkContent {
public static void main(String[] args) {
// 加载文档
Document doc = new Document();
doc.loadFromFile("test.docx");
// 删除指定书签
Bookmark bookmark = doc.getBookmarks().remove(doc.getBookmarks().get("bookmark1"));
// 保存修改
doc.saveToFile("deletebookmark.docx", FileFormat.Docx_2013);
doc.dispose();
}
}

3. 读取书签文本

要读取Word文档中的书签文本,可以按照以下步骤操作:

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;
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();
StringBuilder text = new StringBuilder();
// 遍历书签内容
for (Object item : textBodyPart.getBodyItems()) {
if (item instanceof Paragraph) {
Paragraph paragraph = (Paragraph) item;
for (Object childObj : paragraph.getChildObjects()) {
if (childObj instanceof TextRange) {
TextRange textRange = (TextRange) childObj;
text.append(textRange.getText());
}
}
}
}
// 将文本保存为文件
PrintWriter printWriter = new PrintWriter("BookmarkText.txt");
printWriter.println(text.toString());
printWriter.close();
}
}

工具与依赖

工具推荐

Free Spire.Doc for Java(免费版)是实现Word书签操作的理想选择。该工具支持丰富的文档操作功能,适合开发者和普通用户使用。

JAR文件获取与导入

可以通过以下两种方式获取Spire.Doc的JAR文件:

  • 官方文件包:访问Spire.Doc官网下载完整文件包。解压后,将lib文件夹中的Spire.Doc.jar添加到项目中。
  • Maven仓库:如果使用Maven,可以通过仓库添加依赖项。参考Spire.Doc Maven文档获取详细信息。

  • 通过以上方法,开发者可以轻松实现Word书签的添加、删除和读取功能。这些代码示例为使用Spire.Doc库提供了实用的操作模板,帮助用户高效完成文档管理任务。

    转载地址:http://hunkz.baihongyu.com/

    你可能感兴趣的文章
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中建立Websocket客户端连接
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    node-request模块
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>