文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-02 14:40

关注

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

Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅较大的文档,此功能非常实用。示例要点包括:

添加书签

   1.1 给指定段落添加书签

   1.2 给指定字符串添加书签

删除书签

   2.1删除书签

   2.2 删除书签文本

读取书签文本

使用工具: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书签”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯