Word中,書籤功能經常使用於查找、定位、標記特定字符或段落,對於篇幅較大的文檔,此功能很是實用。下面,將介紹經過Java程序來添加及刪除Word書籤的方法。示例要點包括:html
1. 添加書籤java
1.1 給指定段落添加書籤app
1.2 給指定字符串添加書籤maven
2. 刪除書籤工具
2.1刪除書籤spa
2.2 刪除書籤文本code
3. 讀取書籤文本orm
使用工具:Free Spire.Doc for Java (免費版)htm
Jar文件獲取及導入:對象
方法1: 經過官網下載jar文件包。下載後,解壓文件。並將lib文件夾下的Spire.Doc.jar文件導入到java程序。參考以下導入效果:
Java 代碼示例
【示例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(); } }
書籤讀取結果:
(本文完)