美文网首页
Java 添加、读取、删除Word书签

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

作者: Tina_Tang | 来源:发表于2020-02-14 10:06 被阅读0次

           书签,意指一本书的标签,主要用于使读者更快地找到阅读或修改的位置。同理,在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);

        }

    }

    书签删除效果:

    (本文完)

    相关文章

      网友评论

          本文标题:Java 添加、读取、删除Word书签

          本文链接:https://www.haomeiwen.com/subject/zyqdfhtx.html