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

当一个XMLSlideShow包含一个embedded式Excel(XLSX)对象时,我有一个将多个PPTX幻灯片合并到一个Apache POI的问题。

文档看起来像这样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文件已创build,但已损坏。 “PowerPoint无法读取merged.pptx中的一些内容”。 我可以看到在加载PPTX时,embedded式excel由getAllEmbedds()方法返回:

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

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

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

任何人都设法做到这一点?