#java #excel #apache-poi #powerpoint
#java #excel #apache-poi #powerpoint
Вопрос:
У меня проблема с объединением нескольких слайд-шоу PPTX в одно с Apache POI, когда одно XMLSlideShow содержит встроенный объект Excel (XLSX).
Документация выглядит следующим образом 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
Все еще пытаюсь сделать это каким-то другим способом.
Кому-нибудь удалось это сделать?