我有一个场景,我需要从 pptx (source.pptx) 复制几张幻灯片,然后根据幻灯片中可用的演示文稿将其下载为单独的 pptx 文件 (output.pptx)。我正在使用 apache poi 来实现它。这是我的代码。
String filename = filepath+"\\source.pptx";
try {
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(filename));
XMLSlideShow outputppt = new XMLSlideShow();
XSLFSlide[] slides = ppt.getSlides();
for (int i = 0; i < slides.length; i++) {
try {
XSLFNotes mynotes = slides[i].getNotes();
for (XSLFShape shape : mynotes) {
if (shape instanceof XSLFTextShape) {
XSLFTextShape txShape = (XSLFTextShape) shape;
for (XSLFTextParagraph xslfParagraph : txShape.getTextParagraphs()) {
if (xslfParagraph.getText().equals("NOTES1") || xslfParagraph.getText().equals("NOTES2")) {
outputppt.createSlide().importContent(slides[i]);
}
}
}
}
} catch (Exception e) {
}
}
FileOutputStream out = new FileOutputStream("output.pptx");
outputppt.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
当我打开创建的 output.pptx 时,我收到以下错误:“PowerPoint 发现 output.pptx 中的内容有问题 PowerPoint 可以尝试修复演示文稿如果您信任此演示文稿的来源,请单击修复。”
单击修复后:“PowerPoint 删除了 merge.pptx [已修复] 中的不可读内容。您应该查看此演示文稿以确定是否有任何内容被意外更改或删除”我可以看到带有“单击以添加标题”和“单击以添加标题”的空白幻灯片添加字幕”
有什么建议可以解决这个问题吗?