手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

JAVA 替换、复制和移除Word书签内容

时间:2024-10-29 07:58:18

在Word中添加书签有助于我们下次更加方便的浏览文档,通过书签可以很方便地修改、复制或移除Word的内容。本篇经验将介绍在Java中替换、复制和移除Word书签内容。

工具/原料

 Free Spire.Doc for Java 2.0.0(免费版)

 Intellij IDEA

Jar包文件导入:

1、首先,获取jar包。Step 1: 下载控件包之后解压,打开“Project Structure”界面。(以下是两种在IDEA中快速打开Project Structure界面的方式:①file->Project Structure ②Shift+Ctrl+Alt+S快捷键进入‘Project Structure’。可选其中任意一种)

2、Step 2:按以下操作步骤进行导入。① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击”Apply”/”OK”;④ 导入完成。如下图:

JAVA 替换、复制和移除Word书签内容
JAVA 替换、复制和移除Word书签内容

3、测试文档:

JAVA 替换、复制和移除Word书签内容

JAVA代码参考示例

1、替换书签内容 Bookmark鲍伊酷雪Navigator类用于导航到书签,通过它的moveToBookmark()方法和replaceBookmarkContent烫喇霰嘴()方法可以定位和替换指定书签的内容。import com.spire.doc.*;import com.spire.doc.documents.BookmarksNavigator;public class replaceBookmarkContent { public static void main(String[] args) { String input = "data/Sample1.docx"; String output = "output/replaceBookmarkContent.docx"; //从硬盘中加载文件 Document doc = new Document(); doc.loadFromFile(input); //定位书签 BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc); bookmarkNavigator.moveToBookmark("我的书签"); //用新的内容替换上下文 bookmarkNavigator.replaceBookmarkContent("这部分内容已经被替换。这部分内容已经被替换。这部分内容已经被替换。这部分内容已经被替换。",false); //保存文件 doc.saveToFile(output, FileFormat.Docx); }}

2、替换结果:

JAVA 替换、复制和移除Word书签内容

3、复制书签内容import com.spire.doc.*;import com.spire.蟠校盯昂doc.documents.*;public class copyBookmarkContent { public static void main(String[] args) { String input = "data/Sample1.docx"; String output = "output/copyBookmarkContent.docx"; //从硬盘上加载文件 Document doc = new Document(); doc.loadFromFile(input); //获取书签名 Bookmark bookmark = doc.getBookmarks().get("我的书签"); DocumentObject docObj = null; If (((Paragraph) bookmark.getBookmarkStart().getOwner()).isInCell()) { docObj = bookmark.getBookmarkStart().getOwner().getOwner().getOwner().getOwner(); } else { docObj = bookmark.getBookmarkStart().getOwner(); } int startIndex = doc.getSections().get(0).getBody().getChildObjects().indexOf(docObj); if (((Paragraph) bookmark.getBookmarkEnd().getOwner()).isInCell()) { docObj = bookmark.getBookmarkEnd().getOwner().getOwner().getOwner().getOwner(); } else { docObj = bookmark.getBookmarkEnd().getOwner(); } int endIndex = doc.getSections().get(0).getBody().getChildObjects().indexOf(docObj); //获取这个段落中的书签对象的start和end索引 Paragraph para = (Paragraph) bookmark.getBookmarkStart().getOwner(); int pStartIndex = para.getChildObjects().indexOf(bookmark.getBookmarkStart()); para = (Paragraph) bookmark.getBookmarkEnd().getOwner(); int pEndIndex = para.getChildObjects().indexOf(bookmark.getBookmarkEnd()); //获取当前书签的内容并复制 TextBodySelection select = new TextBodySelection(doc.getSections().get(0).getBody(), startIndex, endIndex, pStartIndex, pEndIndex); TextBodyPart body = new TextBodyPart(select); for (int i = 0; i < body.getBodyItems().getCount(); i++) { doc.getSections().get(0).getBody().getChildObjects().add(body.getBodyItems().get(i).deepClone()); } //保存文件 doc.saveToFile(output, FileFormat.Docx); }}

4、复制结果:

JAVA 替换、复制和移除Word书签内容

5、移除书签内容import com.spire.doc.*挢旗扦渌;import com.spire.doc.documents.霸烹钟爷Paragraph;public class removeBookmarkContent { public static void main(String[] args) { String input = "data/Sample1.docx"; String output = "output/removeBookmarkContent.docx"; //从硬盘中加载文件 Document document = new Document(); document.loadFromFile(input); //获取书签名 Bookmark bookmark = document.getBookmarks().get("我的书签"); Paragraph para = (Paragraph) bookmark.getBookmarkStart().getOwner(); int startIndex = para.getChildObjects().indexOf(bookmark.getBookmarkStart()); para = (Paragraph) bookmark.getBookmarkEnd().getOwner(); int endIndex = para.getChildObjects().indexOf(bookmark.getBookmarkEnd()); //移除内容,从getBookmarkStart对象开始,到getBookmarkEnd对象结束 for (int i = startIndex + 1; i < endIndex; i++) { para.getChildObjects().removeAt(startIndex + 1); } //保存文件 document.saveToFile(output, FileFormat.Docx); }}

6、移除结果:

JAVA 替换、复制和移除Word书签内容
© 手抄报圈