use*_*775 6 java image docx apache-poi xwpf
让我们回顾一下"docx"和"pictures"之间的关系:
据我了解,*.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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是这样我从*.docx获得原始图片.例如,如果您从图片中裁剪出一个部分并给我剩下的部分,那么我总能找到整个图像outputfile.这不好.
有谁知道如何通过Word中有人对其进行的所有更改来获取图片?