首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apache POI XSLF在一张幻灯片中的指定位置附加3张图像

使用Apache POI XSLF在一张幻灯片中的指定位置附加3张图像
EN

Stack Overflow用户
提问于 2015-04-20 18:36:07
回答 1查看 2.4K关注 0票数 1

我需要粘贴3张图片在一张幻灯片使用Apache POI XSLF。但是,我只能在幻灯片中添加一张图片。此外,我也找不到任何方法来指定图片的大小和方向。

我尝试了以下代码

代码语言:javascript
复制
    XMLSlideShow ppt = new XMLSlideShow();
    XSLFSlide slide = ppt.createSlide();
    XSLFGroupShape group1 = slide.createGroup();
    byte buf[] = new byte[1024];

    for (int i = 1; i <= 2; i++) {
        byte[] pictureData = IOUtils.toByteArray(new FileInputStream(
                "C:\\Users\\Ashok\\Pictures\\" + i + ".png"));
        int elementIndex = ppt.addPicture(pictureData,
                XSLFPictureData.PICTURE_TYPE_PNG);
        XSLFPictureShape picture = slide.createPicture(elementIndex);
        List<XSLFPictureData> allPictures = ppt.getAllPictures();
        System.out.println(allPictures.size());
    }
    FileOutputStream fos = new FileOutputStream("C:\\test2.pptx");
    ppt.write(fos);
    fos.flush();
    fos.close();

上面的代码只包含最后一张图片。

EN

回答 1

Stack Overflow用户

发布于 2016-05-12 23:16:10

您需要将Anchor设置为您的图片

代码语言:javascript
复制
for (int i = 1; i <= 2; i++) {
    byte[] pictureData = IOUtils.toByteArray(new FileInputStream(
            "C:\\Users\\Ashok\\Pictures\\" + i + ".png"));
    int elementIndex = ppt.addPicture(pictureData,
            XSLFPictureData.PICTURE_TYPE_PNG);
    XSLFPictureShape picture = slide.createPicture(elementIndex);

    // Set picture position and size
    picture.setAnchor(new Rectangle(positionX, positionY, width, height));

    List<XSLFPictureData> allPictures = ppt.getAllPictures();
    System.out.println(allPictures.size());
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29745516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档