【问题标题】:Adding a picture to Word Document using Apache POI使用 Apache POI 将图片添加到 Word 文档
【发布时间】:2015-02-03 09:18:57
【问题描述】:

我知道已经可以使用

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

方法。但是,我不希望我的图片被调整大小。调整大小并没有缩放新图像:它总是在拉伸它们,使它们变得无用。

有没有办法插入原始大小的图像,或者按比例缩放它们???

【问题讨论】:

    标签: java apache-poi


    【解决方案1】:

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

    我总是使用以下代码来检索图片的大小并在需要时进行相应的缩放。

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

    【讨论】:

    • 我明白了......遗憾的是,这对我不起作用,因为我在 Google App Engine 上使用它并且那里不支持 awt 类。因此,手动缩放与传递实际图像宽度/高度相结合,毕竟是唯一的解决方案。
    • 有非基于 AWT 的 Java 图像元数据库 - 如果您尝试其中之一会发生什么?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 2021-04-11
      相关资源
      最近更新 更多