如何使用 Docx4j 阅读和编辑现有的 pptx?

how to read and edit existing pptx using Docx4j?

我正在使用以下代码迭代现有的 pptx,但如何在特定幻灯片中编辑(替换文本或图像)。

Example in documentation

    String inputfilepath = "C:/tmp/template.pptx";

            PresentationMLPackage presentationMLPackage = 
                (PresentationMLPackage)OpcPackage.load(new java.io.File(inputfilepath));

        for (int i=0 ; i<presentationMLPackage.getMainPresentationPart().getSlideCount(); i++) {

            SlidePart slidePart = presentationMLPackage.getMainPresentationPart().getSlide(i);

            SlideLayoutPart slideLayoutPart = slidePart.getSlideLayoutPart();

            //System.out.println(slp.getSourceRelationships().get(0).getTarget());
            System.out.println(slidePart.getPartName().getName());

            String layoutName = slideLayoutPart.getJaxbElement().getCSld().getName(); 

            System.out.println("layout: " + slideLayoutPart.getPartName().getName() + " with cSld/@name='" + layoutName + "'");

            System.out.println("Master: " + slideLayoutPart.getSlideMasterPart().getPartName().getName());

}

我对 docx、xlsx、ppt 等 office 文件做了很多研究 我想建议你一件事 使用 zip/rar 打开文件后,您会发现其内部文件结构

Files 

_rels
docProps
ppt

[Content_types].xml 这些文件夹包含的文件通常是 xml PPt 并移至幻灯片内的幻灯片 将有 xml 个文件名 slide1..2..3.etc 这些文件包含您在 ppt 中键入的所有文本。 用您的内容替换 Xml 文件 使用 java 编码并将其放回 zip 文件中。

就是这样。 它的工作 100% 我已经实施了很多次。

**summary:**

In java code just try this
1.Rename your file extension from pptx to zip
2.extract path ppt\slides\[yourslide].xml
3.do your content replacement for the extracted xml file.
4.Place it back into zip 
5.rename the file extension to pptx 

那就是享受!!!

此致, Kishan.c.s