6

我们来回顾一下“docx”和“图片”的关系:

据我了解,*.docx存储原始图片(将图片复制/粘贴到Word中时的图片)。每次使用该图片时,Word 都会创建一个指向原始图片的“链接”。

但是,如果您对该图片进行了一些更改(例如调整大小、裁剪或更改颜色),Word 会记住您的更改,修改“链接”(添加一些特殊标签)。太好了,因为您永远不会失去图片的质量!

让我们从 *.docx 文件中获取图片。为此,我使用以下代码片段:

XWPFDocument wordDoc = new XWPFDocument( pathToFile );
for (XWPFParagraph p : wordDoc.getParagraphs()) {
    for (XWPFRun run : p.getRuns()) {
        for (XWPFPicture pic : run.getEmbeddedPictures()) {
            byte [] img = pic.getPictureData().getData()

            File  outputfile = new File ( pathToOutputFile );                
            BufferedImage image = ImageIO.read(new ByteArrayInputStream(img));
            ImageIO.write(image , "png", outputfile);
        }
    }
}

但这样我就可以从 *.docx 获得原始图片。例如,如果您从图片中裁剪出一部分并将其余部分给我,那么我总是可以在outputfile. 这不好。

有谁知道如何获取某人在 Word 中对其进行的所有更改的图片?

4

0 回答 0