1. 首页
  2. IT资讯

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

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

书签读取结果:

(本文完)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31499788/viewspace-2665864/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/184562.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code