我正在使用 apache poi xslf 导出 ppt 文件。首先,我有一个包含 3 张幻灯片的模板:标题幻灯片、摘要幻灯片和第三张幻灯片
我复制了第三张幻灯片(我将它作为模板),以便复制数据库中的许多数据/图形。
所以为了做到这一点:
XMLSlideShow slideShow = new XMLSlideShow(dlfile.getContentStream());
XSLFSlide[] slides = slideShow.getSlides();
XSLFSlide createdSlide = slideShow.createSlide(slides[2].getSlideLayout());
//get content from slide to createdslide
createdSlide.importContent(slides[2]);
//... add data to created slide
我在行有一个错误:createdSlide.importContent(slides[2]);
Caused by: java.lang.IllegalArgumentException: Relationship null doesn't start with this part /ppt/slides/slide3.xml
at org.apache.poi.openxml4j.opc.PackagePart.getRelatedPart(PackagePart.java:468)
at org.apache.poi.xslf.usermodel.XSLFSheet.importBlip(XSLFSheet.java:521)
at org.apache.poi.xslf.usermodel.XSLFSlide.importContent(XSLFSlide.java:235)
PS:此代码与另一个模板一起工作得很好。我需要根据用户选择使用不同的模板。(模板存储在数据库中,因为我正在使用 liferay)。
我已经搜索了几个小时,但徒劳无功!我什至不明白错误是什么意思。
任何链接/帮助将不胜感激。