这篇文章主要介绍了如何通过Java程序来添加及删除Word书签,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅
这篇文章主要介绍了如何通过Java程序来添加及删除Word书签,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Word中,书签功能常用于查找、定位、标记特定字符或段落,对于篇幅较大的文档,此功能非常实用。示例要点包括:
添加书签
1.1 给指定段落添加书签
1.2 给指定字符串添加书签
删除书签
2.1删除书签
2.2 删除书签文本
读取书签文本
使用工具: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_2013); 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_2013); 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_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书签”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!
--结束END--
本文标题: 如何通过Java程序来添加及删除Word书签
本文链接: https://lsjlt.com/news/230273.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0