Java 添加、读取、删除Word书签

       书签,意指一本书的标签,主要用于使读者更快地找到阅读或修改的位置。同理,在Word中编辑或阅读文档时,也可通过使用书签来对某一处或几处进行标记,以便后期能够快速定位到指定文档位置,节约查找时间。本文将通过使用Java程序来详解介绍如何在Word文档中添加、读取和删除书签。

使用工具: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 AddBookMark {    

public static void main(String[] args) {        

//创建Document对象        

Document doc = new Document();        

//加载Word文档        

doc.loadFromFile("D:\\Desktop\\Sample.doc");        

//获取你想要添加书签的段落        

Paragraph paragraph = doc.getSections().get(0).getParagraphs().get(6);        

//添加一个开始标签并移动到段落开头        

BookmarkStart start = paragraph.appendBookmarkStart("我的书签");        

paragraph.getItems().insert(0,start);        

//在段落末尾添加一个结束标签        

paragraph.appendBookmarkEnd("我的书签");        

//保存文档        

doc.saveToFile("output/AddBookmark.docx", FileFormat.Docx_2013);    

  }

}

书签添加效果:


【示例2】读取书签文本

import com.spire.doc.Document;

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.FileNotFoundException;

import java.io.PrintWriter;

public class ReadBookMark {

public static void main(String[] args) throws FileNotFoundException {

//创建Document对象

Document doc = new Document();

//加载Word文档

doc.loadFromFile("D:\\Desktop\\AddBookmark.docx");

//获取指定书签

BookmarksNavigator navigator = new BookmarksNavigator(doc);

navigator.moveToBookmark("我的书签");

//获取书签内容

TextBodyPart textBodyPart = navigator.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("output/BookmarkText.txt");

  printWriter.println(text);

   printWriter.close();

    }

}

书签文本读取效果:


【示例3】删除书签

import com.spire.doc.Document;

import com.spire.doc.FileFormat;

public class DeleteBookMark {

public static void main(String[] args) {

//创建Document对象

Document doc = new Document();

//加载Word文档

doc.loadFromFile("D:\\Desktop\\AddBookmark.docx");

//移除index为0的书签,即第一个书签

doc.getBookmarks().remove(doc.getBookmarks().get(0));

//保存文档

 doc.saveToFile("output/RemoveBookmark.docx", FileFormat.Docx);

    }

}

书签删除效果:

(本文完)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 批注,是作者或审阅者给文档添加的注释或注解。通过查看批注,可以更加详细地了解某些文字的背景。除添加文本信息到...
    Tina_Tang阅读 1,909评论 0 2
  • 本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片。下面将通过Java代码来演示如何读取批注。 ...
    也许会了阅读 1,009评论 0 1
  • 在日常学习和工作中,我们经常会用到PPT。例如企业产品宣传、学校讲课、演讲等方面。同时在制作PPT过程中,我...
    Tina_Tang阅读 464评论 0 1
  • 送宇文太守①赴宣城 王维 寥落云外山,迢遥舟中赏。 铙吹②发西江,秋空多清响。 地迥古城芜,月明寒潮广。 时赛敬...
    古诗新读阅读 445评论 1 1
  • 春节是我们传统的节日,俗话说是过年。 过年前一天,人们都会去人山人海的商店买东西。有的人买鸡...
    米卡_b9a5阅读 184评论 0 0