gpt4 book ai didi

java - Apache POI - 合并 pptx 时出错

转载 作者:行者123 更新时间:2023-12-01 06:14:24 28 4
gpt4 key购买 nike

我有一个场景,我需要从 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 删除了 merged.pptx 中不可读的内容[已修复]。您应该查看此演示文稿以确定是否有任何内容被意外更改或删除”我可以看到带有“单击添加标题”和“单击添加副标题”的空白幻灯片

有什么建议可以解决这个问题吗?

最佳答案

这段代码适用于我复制幻灯片内容、布局和注释。如果您想遵循原来的问题,只需根据您的需要修改代码即可。我假设你必须:

  1. 不从源幻灯片导入幻灯片内容
  2. 将笔记内容复制到幻灯片

        // get the layout from the source slide
    XSLFSlideLayout layout = srcSlide.getSlideLayout();
    XSLFSlide newslide = ppt
    .createSlide(defaultMaster.getLayout(layout.getType()))
    .importContent(srcSlide);
    XSLFNotes srcNotes = srcSlide.getNotes();
    XSLFNotes newNotes = ppt.getNotesSlide(newslide);
    newNotes.importContent(srcNotes);

关于java - Apache POI - 合并 pptx 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27792966/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com