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


    本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片。关于操作Word批注的方法还可以参考这两篇文章:Java 添加、回复、修改、删除Word批注Java 给Word指定字符串添加批注。下面将通过Java代码来演示如何读取批注。

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

    Jar文件获取:可通过官网下载,下载后解压文件,并将lib文件夹下的Spire.Doc.jar文件导入java程序;也可以通过Maven仓库安装导入,具体路径配置及导入方法可以参考教程

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

     


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

    import com.spire.doc.*;
    import com.spire.doc.documents.Paragraph;
    import com.spire.doc.fields.Comment;
    import com.spire.doc.fields.TextRange;
    
    public class ReadComment {
        public static void main(String[] args) {
            //加载测试文档
            Document doc = new Document();
            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 instanceof TextRange) {
                            TextRange textRange = (TextRange) object;
                            text = text + textRange.getText();
                        }
                    }
                }
            }
            //输入文本内容
            System.out.println(text);
        }
    }

    批注文本读取结果:

    【示例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;
    
    
    public class ExtractImgsInComment {
        public static void main(String[] args) throws IOException{
            //加载测试文档
            Document doc = new Document();
            doc.loadFromFile("sample.docx");
    
            //创建ArrayList数组对象
            ArrayList images = new ArrayList();
    
            //遍历所有批注
            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 instanceof DocPicture){
                            DocPicture picture = (DocPicture) object;
                            images.add(picture.getImage());
                        }
                    }
                }
            }
            //提取图片,并指定图片格式
            for (int z = 0; z< images.size(); z++) {
                File file = new File(String.format("图片-%d.png", z));
                ImageIO.write((RenderedImage) images.get(z), "PNG", file);
            }
        }
    }

    批注图片读取结果:

    (本文完)

  • 相关阅读:
    编译 安装 infobright
    MySQL忘记密码恢复密码的实现方法
    Intel 服务器 架构 NUMA
    Centos 卸载 java
    vs2010 无法将文件“obj**”复制到“bin**”
    linux安装eclipse PyDev
    infobright 编译安装
    [转贴]==开手排车的八个绝招==
    [摘]广义企业级PDM系统下的PPM(工艺规划管理)
    中国皇帝定下佛教戒律:僧人不准吃肉
  • 原文地址:https://www.cnblogs.com/Yesi/p/11887877.html
Copyright © 2020-2023  润新知