如何与 Apache POI 合并并保持间距和格式

问题描述 投票:0回答:1
  XMLSlideShow ppt = new XMLSlideShow();
        // Creating an empty presentation
        if (!powerpoints.isEmpty()) {

            for (String arg : powerpoints) {

                FileInputStream inputstream = new FileInputStream(arg);

                XMLSlideShow src = new XMLSlideShow(inputstream);

                ppt.setPageSize(src.getPageSize());

                for (XSLFSlide srcSlide : src.getSlides()) {

                    ppt.createSlide().importContent(srcSlide);

                }
                src.close();
                inputstream.close();
            }
            String mergedFile = intropath + "PowerPoints/result1.pptx";
            FileOutputStream out = new FileOutputStream(mergedFile);
            ppt.write(out);
            ppt.close();
            out.close();

我正在尝试将 powerpoints 与此代码合并。它合并了大部分的所有幻灯片。不过,有些间距是关闭的,每次我打开结果幻灯片时,它都会说“需要修复”。有什么办法可以解决这两个问题或替代方法吗?我曾经使用 Aspose Slides 云,但最近它给我带来了问题。

java apache-poi powerpoint
1个回答
0
投票

此“需要修复”错误可能是由于 XML 文件损坏或错误引起的,也可能是由于组合演示文稿的格式不同,或者幻灯片布局可能无法正常工作。要保留幻灯片布局,你可以在 for 循环中这样执行。

for (XSLFSlide srcSlide : src.getSlides()) {
XSLFSlideLayout srcLayout = srcSlide.getSlideLayout();
XSLFSlide newSlide = ppt.createSlide(srcLayout);
//...
© www.soinside.com 2019 - 2024. All rights reserved.