当一个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
仍然试图以其他方式做到这一点。
有人设法做到了吗?