50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > Java 操作Word书签(一):添加 删除 读取书签

Java 操作Word书签(一):添加 删除 读取书签

时间:2024-07-05 02:45:40

相关推荐

Java 操作Word书签(一):添加 删除 读取书签

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

1. 添加书签

1.1 给指定段落添加书签

1.2 给指定字符串添加书签

2. 删除书签

2.1 删除书签

2.2 删除书签文本

3. 读取书签文本

使用工具: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 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_);doc.dispose();}}

书签添加效果:

【示例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_);doc.dispose();}}

书签添加效果:

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

import com.spire.doc.*;import com.spire.doc.documents.BookmarksNavigator;public class DeleteBookmarkAndBookmarkcontent {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.getBookmarks().remove(doc.getBookmarks().get("bookmark1"));//通过书签名删除doc.getBookmarks().removeAt(0);//通过索引值删除//保存文档doc.saveToFile("deletebookmark.docx",FileFormat.Docx_);}}

【示例4】读取书签文本

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()) {//判断子对象是否为TextRangeif (childObj instanceof TextRange) {//获取TextRange中的文本TextRange textRange = (TextRange) childObj;text = text + textRange.getText();}}}}//将获取到的文本写入Txt文件PrintWriter printWriter = new PrintWriter("BookmarkText.txt");printWriter.println(text);printWriter.close();}}

书签读取结果:

(本文完)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。