温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何通过Java程序来添加及删除Word书签

发布时间:2021-11-30 16:08:32 来源:亿速云 阅读:255 作者:小新 栏目:编程语言

这篇文章主要介绍了如何通过Java程序来添加及删除Word书签,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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程序。参考如下导入效果:

如何通过Java程序来添加及删除Word书签

方法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_2013);
         doc.dispose();
     }
 }

书签添加效果:

如何通过Java程序来添加及删除Word书签

【示例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();
     }
 }

字符串书签添加效果:

如何通过Java程序来添加及删除Word书签

【示例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_2013);
     }
 }

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

书签读取结果:

如何通过Java程序来添加及删除Word书签

感谢你能够认真阅读完这篇文章,希望小编分享的“如何通过Java程序来添加及删除Word书签”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI