使用docx4j复制多个powerpoint幻灯片

问题描述 投票:3回答:1

我正在尝试使用docx4j复制几张幻灯片,但我遇到了一些麻烦。

我有一个3页的.pptx文件,我希望多次复制每个页面。这是我的代码到目前为止(基于来自here的样本:

    PresentationMLPackage presentationMLPackage = (PresentationMLPackage) OpcPackage.load(new File(args[0]));

    MainPresentationPart pp = (MainPresentationPart)presentationMLPackage.getParts().getParts().get(
            new PartName("/ppt/presentation.xml"));

    List<SlidePart> slideParts = pp.getSlideParts();

    int index = 1;

    for(SlidePart slidePart : slideParts){

        SlideLayoutPart layoutPart = (SlideLayoutPart)presentationMLPackage.getParts().getParts().get(new PartName("/ppt/slideLayouts/slideLayout" + index + ".xml"));
        Sld copied = XmlUtils.deepCopy(slidePart.getContents(), slidePart.getJAXBContext());

        SlidePart slide = new SlidePart(new PartName("/ppt/slides/slide" + index + ".xml"));
        slide.setContents(copied);

        pp.addSlide(1, slide);

        slide.addTargetPart(layoutPart);

        index++;
    }

    presentationMLPackage.save(new java.io.File("test.pptx"));

我的代码运行良好,没有任何错误,当我打开文件时,我收到powerpoint内的错误警告,并要求修复文件,当你这样做时,页面是空白的,页面没有重复。

我该如何正常工作?

java powerpoint docx4j
1个回答
0
投票

在一般情况下,这不是那么直截了当。你需要照顾幻灯片等。

因此,我们在Docx4j Enterprise中提供了商业解决方案,您可以在https://www.plutext.com/m/index.php/products找到它

© www.soinside.com 2019 - 2024. All rights reserved.