java - Apache POI XSLF 将图像替换为另一个图像

标签 java apache apache-poi

我使用 Apache POI 作为一种模板化布局的方式,其中的占位符形状将替换为从 Restful 调用中检索到的内容。

所有这些工作正常,但我找不到用另一个图像替换图像的方法。

我知道可以使用以下代码创建并将其添加到幻灯片中:

int idx = ui.getPpt().addPicture(bytes, XSLFPictureData.PICTURE_TYPE_PNG);
XSLFPictureShape pic = slide.createPicture(idx);

这一切都有效,但我想做的是替换现有图像,但似乎无法找到一种方法来做到这一点,就像我可以使用表格和文本对象一样。

有人有什么想法吗?

最佳答案

首先阅读幻灯片并获取包含图片的形状。 该形状将是 XSLFPictureShape 的实例。 使用以下代码:

for(XSLFShape shape : slide.getShapes()) {

   XSLFPictureShape image = (XSLFPictureShape) shape;
   image.getPictureData().setData(IOUtils.toByteArray(new  FileInputStream("path_to_image"));

}

关于java - Apache POI XSLF 将图像替换为另一个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960001/

相关文章:

带有通配符的 Java 抽象泛型方法用具体类型实现

java - ClassCastException - oracle.jdbc.OraclePreparedStatement

java - 如何在android studio上创建一个单独的类

java - 正则表达式匹配不完整的表达式

html - 找不到我正在使用的 index.html

java - 将 Excel 文件上传到 servlet 并从中获取数据

java - 使用java删除Excel中的 '0'和 'n/a'

apache - 同时 tomcat 集群,其中集群中的每个节点提供不同的数据

apache - 我需要使用 nginx 或 Apache 才能使用 Lets Encrypt 吗?

java - 与一种风格 POI 进行多重对齐