我正在尝试使用Apache POI XSLF库设置pptx文件的背景填充颜色。我的代码如下所示:
XSLFSlideMaster defaultMaster = ppt.getSlideMasters().get(0);
XSLFSlideLayout layout = defaultMaster.getLayout(SlideLayout.BLANK);
XSLFBackground background = layout.getBackground();
background.setFillColor(Color.BLACK);这导致了
Exception in thread "main" java.lang.IllegalStateException: CTShapeProperties was not found.
at org.apache.poi.xslf.usermodel.XSLFShape.getSpPr(XSLFShape.java:240)
at org.apache.poi.xslf.usermodel.XSLFSimpleShape.setFillColor(XSLFSimpleShape.java:549)我试着在SlideMaster的背景、布局的背景和幻灯片的背景上调用它,结果都是相同的错误。
发布于 2017-02-11 20:21:03
这是通过#59702在POI 3.15-beta2中修复的。
OOXml属性、POI实现或xmlbeans模式的“问题”在于,类似的属性(如颜色)存储在不同的模式类型下,而旧代码没有涵盖父节点。补丁引入了代理来包装这些差异,XSLF用户模型方法现在可以更加统一。
https://stackoverflow.com/questions/39107649
复制相似问题