使用 Apache POI 向 Word 文档添加图片

Adding a picture to Word Document using Apache POI

我知道可以使用

将图片添加到 Word 文档
XWPFRun: addPicture(java.io.InputStream pictureData, int pictureType, java.lang.String filename, int width, int height) throws InvalidFormatException, java.io.IOException

方法。但是,我不想调整我的图片大小。调整大小不会缩放新图像:它总是拉伸它们,使它们变得无用。

有没有办法插入原始尺寸的图片,或者按比例缩放它们???

我使用 Apache POI 已经有一段时间了,我认为在不指定高度和宽度的情况下无法将图片添加到 WORD 文档。

我总是使用以下代码来检索图片的大小并根据需要相应地缩放它们。

BufferedImage bi = ImageIO.read(new File(filename));
int width          = bi.getWidth();
int height         = bi.getHeight();

您可以按如下方式使用 Apache POI ImageUtils:

Dimension dimension = ImageUtils.getImageDimension(imageInputStream, XWPFDocument.PICTURE_TYPE_JPEG);
double width = dimension.getWidth();
double height = dimension.getHeight();