【发布时间】:2019-02-22 07:31:01
【问题描述】:
我正在尝试使用 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