JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签
Word中,書簽功能常用于查找、定位、標(biāo)記特定字符或段落,對于篇幅較大的文檔,此功能非常實(shí)用。下面,將介紹通過Java程序來添加及刪除Word書簽的方法。示例要點(diǎn)包括:
1. 添加書簽
1.1 給指定段落添加書簽
1.2 給指定字符串添加書簽
2. 刪除書簽
2.1刪除書簽
2.2 刪除書簽文本
3. 讀取書簽文本
使用工具:Free Spire.Doc for Java (免費(fèi)版)
Jar文件獲取及導(dǎo)入:
方法1: 通過官網(wǎng)
方法2:可通過maven倉庫
Java 代碼示例
【示例1】給指定段落添加書簽
import com.spire.doc.*;importcom.spire.doc.documents.Paragraph;public classAppendBookmark {public static voidmain(String[]args){//加載需要添加書簽的Word文檔
Document doc = newDocument();
doc.loadFromFile("sample.docx");//獲取需要添加書簽的段落
Paragraph para = doc.getSections().get(0).getParagraphs().get(1);//在段落起始、末尾添加書簽的開始標(biāo)簽和結(jié)束標(biāo)簽,并命名書簽
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.*;importcom.spire.doc.documents.Paragraph;importcom.spire.doc.documents.TextSelection;importcom.spire.doc.fields.TextRange;public classAppendBookmarkToCharacter {public static voidmain(String[]args){//加載文檔
Document doc = newDocument();
doc.loadFromFile("sample.docx");//查找指定字符串
TextSelection textSelection = doc.findString("采用蘊(yùn)含深意的象征語言,揭示人生的哲理。",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.*;importcom.spire.doc.documents.BookmarksNavigator;public classDeleteBookmarkAndBookmarkcontent {public static voidmain(String[]args){//加載文檔
Document doc = newDocument();
doc.loadFromFile("test.docx");//定位到特定的書簽
BookmarksNavigator bookmarksNavigator = newBookmarksNavigator(doc);
bookmarksNavigator.moveToBookmark("bookmark1");//刪除書簽處的內(nèi)容
bookmarksNavigator.deleteBookmarkContent(true);//刪除書簽(僅刪除書簽標(biāo)簽,原文書簽處的內(nèi)容)
doc.getBookmarks().remove(doc.getBookmarks().get("bookmark1"));//通過書簽名刪除
doc.getBookmarks().removeAt(0);//通過索引值刪除//保存文檔
doc.saveToFile("deletebookmark.docx",FileFormat.Docx_2013);
}
}
【示例4】讀取書簽文本
import com.spire.doc.*;importcom.spire.doc.documents.BookmarksNavigator;importcom.spire.doc.documents.Paragraph;importcom.spire.doc.documents.TextBodyPart;importcom.spire.doc.fields.TextRange;importjava.io.IOException;importjava.io.PrintWriter;public classGetBookmarkText {public static void main(String[]args) throwsIOException {//加載包含書簽的Word文檔
Document doc = newDocument();
doc.loadFromFile("test.docx");//獲取書簽
BookmarksNavigator bookmarksNavigator = newBookmarksNavigator(doc);
bookmarksNavigator.moveToBookmark("bookmark1");//獲取書簽文本
TextBodyPart textBodyPart =bookmarksNavigator.getBookmarkContent();//創(chuàng)建String變量
String text = "";//遍歷書簽內(nèi)容的項(xiàng)目
for(Object item : textBodyPart.getBodyItems()) {//判斷項(xiàng)目是否為段落
if (item instanceofParagraph) {
Paragraph paragraph=(Paragraph) item;//遍歷段落中的子對象
for(Object childObj : paragraph.getChildObjects()) {//判斷子對象是否為TextRange
if (childObj instanceofTextRange) {//獲取TextRange中的文本
TextRange textRange =(TextRange) childObj;
text= text +textRange.getText();
}
}
}
}//將獲取到的文本寫入Txt文件
PrintWriter printWriter = new PrintWriter("BookmarkText.txt");
printWriter.println(text);
printWriter.close();
}
}
書簽讀取結(jié)果:
(本文完)
原文出處:https://www.cnblogs.com/Yesi/p/11358537.html
總結(jié)
以上是生活随笔為你收集整理的JAVA获取word书签内容_Java 操作Word书签(一):添加、删除、读取书签的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李宏毅机器学习笔记第5周_逻辑回归
- 下一篇: Java常见类