如何使用 Docx4j 阅读和编辑现有的 pptx?
how to read and edit existing pptx using Docx4j?
我正在使用以下代码迭代现有的 pptx,但如何在特定幻灯片中编辑(替换文本或图像)。
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
我正在使用以下代码迭代现有的 pptx,但如何在特定幻灯片中编辑(替换文本或图像)。
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