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

}

}

书签读取结果:

(本文完)

原文出处:https://www.cnblogs.com/Yesi/p/11358537.html

JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签相关推荐

  1. java获取网页的内容_java获取网页内容

    package DC.Utility; import java.io.BufferedReader; import java.io.InputStreamReader; public class Ge ...

  2. java导出word纸张方向_java导出word的几种方式

    目前来看,java导出word大致有6种解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过J ...

  3. 解决 Java poi 3.8 等版本 操作 word 插入 图片 不成功的问题

    解决 Java poi 3.8等版本操作word插入图片不成功的问题 问题: 最近有一个需求是将Excel中的数据转换到word中,其中包括了文字和图片, 在使用 poi 3.8 向word中写入图片 ...

  4. python操作word文档-python操作word

    1.Python写word文档 要操作word文档首先需要安装python-docx库: pip install python-docx 然后导入docx模块,或者从docx模块中导入Document ...

  5. java书签_Java 操作Word书签(一):添加、删除、读取书签

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

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

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

  7. java word表格_java操作word的表格

    java操作word的表格 最近项目中需要把提交的页面表单的数据动态写在word模板中,简单的写了个工具类.里面有怎眼操作word 中表格的内容,可以在word中已有的表格后面添加行并且可以增加内容. ...

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

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

  9. java pdf 转word源码_Java 实现word模板转为pdf

    1. pom相关依赖 工具poi-tl (操作word文档模板) + jacob (将操作后的word模板转为pdf) com.deepoove poi-tl 1.9.1 com.jacob jaco ...

  10. java生成文字与图片_java生成word(文字和图片)

    1.整体思路 利用xml模板,在模板中预留占位标识(${yourContent}),然后将xml转为ftl文件,通过Map传值填充对应的内容即可,word其实和html一样,也有自己的xml标签,表头 ...

最新文章

  1. linux connect自动重连,Linux系统中使用sshfs挂载远程主机的目录到本地系
  2. SAP ABAP ALV(LVC)的一个自定义事件(F4帮助事件,回车ENTER按钮事件)的一个实例
  3. 看漫画学python 豆瓣_看漫画就能学好python?
  4. 网络性能测试工具Iperf上手指南
  5. Java8 新特性lambda表达式(一)初始
  6. Mac Supervisor 管理进程
  7. cisco engine memory
  8. 如何使用sp_send_dbmail存储过程将SQL查询结果通过电子邮件发送到智能手机
  9. CSS基本选择器之类选择器多类名(CSS、HTML)
  10. python学习交流 - 匿名函数
  11. 第九届蓝桥杯 明码2018
  12. 在线JSON转Excel工具
  13. 计算机中的逻辑与或非,与或非运算(与或非逻辑运算口诀)
  14. 从汇编的角度分析函数调用过程(2)
  15. 模拟轮盘抽奖游戏:一等奖、二等奖、三等奖
  16. 怎么快速修改图片的像素?
  17. moments音标_moment的意思在线翻译,解释moment中文英文含义,短语词组,音标读音,例句,词源,同义词【澳典网ODict.Net】...
  18. 山还是山 水还是水
  19. 简读《SASE安全访问边缘白皮书》| 了解SASE的核心技术及应用场景
  20. python多线程结束线程_Python多线程和Office第2部分

热门文章

  1. 二次规划(QP)求解与序列二次规划(SQP)求解非线性规划问题
  2. Datalogic得利捷推出物流应用领域全新标杆产品——AV900
  3. 微信浏览器下载APK文件的实现方案
  4. windows对应字体
  5. c语言实现将文本转换为语音,C#文字转换语音朗读或保存MP3、WAV等格式
  6. 软件需求说明书模板概要书
  7. BT656与BT1120的区别
  8. 双击java安装包没有反应_雨林木风Win7下双击JER安装包没有反应的解决技巧
  9. 济南遥墙机场停5天怎么收费,济南遥墙国际机场停车场收费标准
  10. java求职英文简历范本2篇_Java英文简历范文