Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅较大的文档,此功能非常实用。下面,将介绍通过Java程序来添加及删除Word书签的方法。示例要点包括:

1. 添加书签

1.1 给指定段落添加书签

1.2 给指定字符串添加书签

2. 删除书签

2.1删除书签

2.2 删除书签文本

3. 读取书签文本

使用工具:Free Spire.Doc for Java (免费版)

Jar文件获取及导入:

方法1: 通过官网

方法2:可通过maven仓库

Java 代码示例

【示例1】给指定段落添加书签

import com.spire.doc.*;importcom.spire.doc.documents.Paragraph;public classAppendBookmark {public static voidmain(String[]args){//加载需要添加书签的Word文档

Document doc = newDocument();

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();

}

}

书签添加效果:

【示例2】给指定字符串添加书签

import com.spire.doc.*;importcom.spire.doc.documents.Paragraph;importcom.spire.doc.documents.TextSelection;importcom.spire.doc.fields.TextRange;public classAppendBookmarkToCharacter {public static voidmain(String[]args){//加载文档

Document doc = newDocument();

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();

}

}

书签添加效果:

【示例3】删除书签、书签文本

import com.spire.doc.*;importcom.spire.doc.documents.BookmarksNavigator;public classDeleteBookmarkAndBookmarkcontent {public static voidmain(String[]args){//加载文档

Document doc = newDocument();

doc.loadFromFile("test.docx");//定位到特定的书签

BookmarksNavigator bookmarksNavigator = newBookmarksNavigator(doc);

bookmarksNavigator.moveToBookmark("bookmark1");//删除书签处的内容

bookmarksNavigator.deleteBookmarkContent(true);//删除书签(仅删除书签标签,原文书签处的内容)

doc.getBookmarks().remove(doc.getBookmarks().get("bookmark1"));//通过书签名删除

doc.getBookmarks().removeAt(0);//通过索引值删除//保存文档

doc.saveToFile("deletebookmark.docx",FileFormat.Docx_2013);

}

}

【示例4】读取书签文本

import com.spire.doc.*;importcom.spire.doc.documents.BookmarksNavigator;importcom.spire.doc.documents.Paragraph;importcom.spire.doc.documents.TextBodyPart;importcom.spire.doc.fields.TextRange;importjava.io.IOException;importjava.io.PrintWriter;public classGetBookmarkText {public static void main(String[]args) throwsIOException {//加载包含书签的Word文档

Document doc = newDocument();

doc.loadFromFile("test.docx");//获取书签

BookmarksNavigator bookmarksNavigator = newBookmarksNavigator(doc);

bookmarksNavigator.moveToBookmark("bookmark1");//获取书签文本

TextBodyPart textBodyPart =bookmarksNavigator.getBookmarkContent();//创建String变量

String text = "";//遍历书签内容的项目

for(Object item : textBodyPart.getBodyItems()) {//判断项目是否为段落

if (item instanceofParagraph) {

Paragraph paragraph=(Paragraph) item;//遍历段落中的子对象

for(Object childObj : paragraph.getChildObjects()) {//判断子对象是否为TextRange

if (childObj instanceofTextRange) {//获取TextRange中的文本

TextRange textRange =(TextRange) childObj;

text= text +textRange.getText();

}

}

}

}//将获取到的文本写入Txt文件

PrintWriter printWriter = new PrintWriter("BookmarkText.txt");

printWriter.println(text);

printWriter.close();

}

}

书签读取结果:

(本文完)

java书签_Java 操作Word书签(一):添加、删除、读取书签相关推荐

  1. phpexcel_cell 获取表格样式_Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行...

    精品推荐 国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布! Docker快速手上视频教程(无废话版)[免费] 作者:E-iceblue https://www.cnblo ...

  2. java word 颜色设置_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  3. java 加背景颜色_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  4. Java程序中操作Word表格

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  5. java使用poi操作word模板,插入图片、段落、表格

    java使用poi操作word插入图片.段落.表格 其他链接 准备工作 创建word模板.docx文件 编写模板格式.xml文件 java上手poi maven依赖 使用到的包 具体应用 对应封装方法 ...

  6. 总结java关于jacob操作word这几天遇到的问题!

    由于这几天的客户需求使用到了java关于jacob操作word的问题,下面对这几天遇到的问题进行一下总结: 本机第一次使用jacob的时候,本机装的WPS接下来一路畅通,直到最后完成word的导出功能 ...

  7. 如何在word表格中添加删除线,划去不想要的部分?

    如何在word表格中添加删除线,划去不想要的部分? 一.在word的表格中不能直接添加删除线,只能先在excel表格中加上删除线,再复制到word表格中 二.excel表格中添加删除线: 右击选中需要 ...

  8. java使用jacob操作word添加图片

    1.操作word需要的jacobjar包和dll文件.(请多多支持!) java使用jacob给word添加水印.这是给word添加水印,当业务需求在多页word文档中,某一页添加水印一样的盖章,这个 ...

  9. java读写word模板_Java操作Word模板插入列表

    Java操作Word模板插入列表 通过poi操作word,插入各种编号的列表,包括数字,字母,罗马字符,自定义任意字符.下面的示例就用了音乐符♬. 1.制作模板,插入列表使用语法*,模板内容为{{*n ...

最新文章

  1. 在CentOS 6.6 64bit上安装Oracle VirtualBox 5.0.12
  2. python语言自学教程-3D图示Python标准自学教程入门篇
  3. 10件开发者和老板都要知道的HTML5的那些事
  4. 电脑教程从入门到精通_HALCON机器视觉软件零基础入门学习到精通实用教学视频教程...
  5. C#——《C#语言程序设计》实验报告——继承与多态——电视和电灯委托
  6. 记录 之 TypeError: ‘int‘ object is not subscriptable
  7. Java关键字(53个关键字)
  8. PID控制器改进笔记之五:改进PID控制器之串级设定
  9. Python库:jieba库中文分词
  10. struct interface_今天就谈谈go中的接受 interface 参数,返回 struct
  11. 解决Linux里面未启用网卡的问题
  12. docker容器下mysql更改WordPress的site address和home(URL)
  13. windows bat与vbs与reg脚本整合 持续更新
  14. linux 更新软件命令 失败,(2015.1.13 更新)联合DSDT和SSDT进行反编译——减少DSDT和SSDT错误的尝试...
  15. 记录 UiPath 学习中遇到的一些问题以及解决办法
  16. 【JZOJ4587】Snow的追寻
  17. TF flags的简介
  18. 网易2019实习生招聘编程题集合
  19. 理工科科研结果展示怎样让PPT高大上?
  20. 蒸汽式粉条机发展和销售乱象

热门文章

  1. 出现BOOTMGR is missing 最简单实用的解决方案
  2. H264 AVCC 格式转 ANNEX B格式
  3. hpp文件和h文件有什么区别
  4. k8s 1.24 dashboard
  5. 数学建模 MATLAB MATLAB全局优化算法
  6. 英特尔SST音频驱动导致Windows11电脑蓝屏,驱动人生带来电脑蓝屏解决方案
  7. 机顶盒 img打包工具_安卓网络机顶盒如何通过KODI看m3u8电视直播
  8. Java 编写在线考试系统-049 窗体程序 完整源码
  9. 常用颜色的十六进制和rgb格式
  10. torch.nn 和 torch.functional 的区别