Java读取Word批注中的文本和图片

本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片。下面将通过Java代码来演示如何读取批注。

Java读取Word批注中的文本和图片_第1张图片

工具使用:Word类库(Free Spire.Doc for Java 免费版)

Jar文件获取:可通过官网下载,下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入java程序;也可以通过Maven仓库安装导入。,具体路径配置及导入方法可以参考教程https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html。

测试文档如下:批注中包含文本和图片

Java读取Word批注中的文本和图片_第2张图片

【示例1】读取批注中的文本

import com.spire.doc.*;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.fields.Comment;

import com.spire.doc.fields.TextRange;


publicclassReadComment {

    publicstaticvoid main(String[] args) {

        //加载测试文档

        Document doc = newDocument();

        doc.loadFromFile("sample.docx");


        //实例化String类型变量

        String text = "";


        //遍历所有批注

        for(int i = 0;i< doc.getComments().getCount();i++){

            Comment comment = doc.getComments().get(i);

            //遍历所有批注中的段落

            for(int j= 0;j < comment.getBody().getParagraphs().getCount();j++) {

                Paragraph paragraph = comment.getBody().getParagraphs().get(j);

                //遍历段落中的对象

                for(Object object : paragraph.getChildObjects()) {

                    //读取文本

                    if(object instanceofTextRange) {

                        TextRange textRange = (TextRange) object;

                        text = text + textRange.getText();

                    }

                }

            }

        }

        //输入文本内容

        System.out.println(text);

    }

}

批注文本读取结果:

Java读取Word批注中的文本和图片_第3张图片

【示例2】读取批注中的图片

import com.spire.doc.*;

import com.spire.doc.documents.Paragraph;

import com.spire.doc.fields.Comment;

import com.spire.doc.fields.DocPicture;


import javax.imageio.ImageIO;

import java.awt.image.RenderedImage;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;



publicclassExtractImgsInComment {

    publicstaticvoid main(String[] args) throws IOException{

        //加载测试文档

        Document doc = newDocument();

        doc.loadFromFile("sample.docx");


        //创建ArrayList数组对象

        ArrayList images = newArrayList();


        //遍历所有批注

        for(int i = 0;i< doc.getComments().getCount();i++){

            Comment comment = doc.getComments().get(i);

            //遍历所有批注中的段落

            for(int j= 0;j < comment.getBody().getParagraphs().getCount();j++) {

                Paragraph paragraph = comment.getBody().getParagraphs().get(j);

                //遍历段落中的对象

                for(Object object : paragraph.getChildObjects()) {

                    //获取图片对象

                    if(object instanceofDocPicture){

                        DocPicture picture = (DocPicture) object;

                        images.add(picture.getImage());

                    }

                }

            }

        }

        //提取图片,并指定图片格式

        for(int z = 0; z< images.size(); z++) {

            File file = newFile(String.format("图片-%d.png", z));

            ImageIO.write((RenderedImage) images.get(z), "PNG", file);

        }

    }

}

批注图片读取结果:

Java读取Word批注中的文本和图片_第4张图片

本篇文章来自PHP中文网的java学习教程栏目:https://www.php.cn/java/

你可能感兴趣的:(Java读取Word批注中的文本和图片)