我正在尝试使用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内的错误警告,并要求修复文件,当你这样做时,页面是空白的,页面没有重复。
我该如何正常工作?
在一般情况下,这不是那么直截了当。你需要照顾幻灯片等。
因此,我们在Docx4j Enterprise中提供了商业解决方案,您可以在https://www.plutext.com/m/index.php/products找到它