如何将多个演示文稿(pptx幻灯片)与Apache POI中的嵌入对象合并

时间:2016-10-11 08:55:37

标签: java excel apache-poi powerpoint

当一个XMLSlideShow包含嵌入式Excel(XLSX)对象时,我将使用Apache POI将多个PPTX幻灯片合并到一个幻灯片中时出现问题。

文档看起来像这样 https://poi.apache.org/slideshow/xslf-cookbook.html#Merge

XMLSlideShow pptx = new XMLSlideShow();
String[] inputs = {"presentations1.pptx", "presentation2.pptx"};
for(String arg : inputs){
    FileInputStream is = new FileInputStream(arg);
    XMLSlideShow src = new XMLSlideShow(is);
    is.close();

    for(XSLFSlide srcSlide : src.getSlides()){
        pptx.createSlide().importContent(srcSlide);
    }
}

FileOutputStream out = new FileOutputStream("merged.pptx");
pptx.write(out);
out.close();

创建了PPTX文件,但该文件已损坏。 " PowerPoint无法读取merged.pptx"中的某些内容。 我可以看到,在加载PPTX时,嵌入式excel由 getAllEmbedds()方法返回:

XMLSlideShow pptx = new XMLSlideShow(new FileInputStream("presentations1.pptx"))
PackagePart embedded = pptx.getAllEmbedds().get(0);

但是在合并时它不会复制到新的XMLSlideShow。 我正在使用POI 3.15

仍然试图以其他方式做到这一点。

有人设法做到了吗?

0 个答案:

没有答案