aspose.word读取word中的图片并替换为文字

aspose.word读取word中的图片并替换为文字

try {
            // 新建文档对象
            Document doc = new Document(filePath);
            // 查询文档中所有图片
            NodeCollection shapeCollection = doc.getChildNodes(NodeType.SHAPE, true);
            // 序列化
            Node[] shapes = shapeCollection.toArray();
            int index = 1;
            // 如果文档存在图片
            if (shapes.length > 0) {
                for (Node node : shapes) {
                    Shape shape = (Shape) node;
                    if (shape.getShapeType() == ShapeType.OLE_OBJECT) {// 如果shape类型是ole类型
                        System.out.println(node.getNodeType());
                        ImageData i = shape.getImageData();// 获得图片数据
                        String imageName = index++ + ".wmf";
                        i.save(imgDir + imageName);// 导出图片
                        File f = new File(imgDir + imageName);
                        DocumentBuilder builder = new DocumentBuilder(doc);// 新建文档节点
                        builder.moveTo(shape);// 移动到图片位置
                        builder.write("[" + imageName + "]");// 插入替换文本
                        shape.remove();// 移除图形
                    } else if (shape.getShapeType() == ShapeType.IMAGE) {// 如果shape类型是ole类型
                        System.out.println(node.getNodeType());
                        ImageData i = shape.getImageData();// 获得图片数据
                        String imageName = index++ + ".png";
                        i.save(imgDir + imageName);// 导出图片
                        File f = new File(imgDir + imageName);
                        DocumentBuilder builder = new DocumentBuilder(doc);// 新建文档节点
                        builder.moveTo(shape);// 移动到图片位置
                        builder.write("[" + imageName + "]");// 插入替换文本
                        shape.remove();// 移除图形
                    }
                }
                doc.save("");// 保存修改后的文档
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

你可能感兴趣的:(Java)