繁体   English   中英

使用Apache POI XSLF尝试setFillColor时出现IllegalStateException

[英]IllegalStateException when trying to setFillColor using Apache POI XSLF

我正在尝试使用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的背景,布局的背景和幻灯片的背景上调用它,都会导致同样的错误。

这通过#59702POI 3.15-beta2中 修复

OOXml属性或POI实现或xmlbeans模式的“问题”是,类似属性(如颜色)存储在不同的模式类型下面,旧代码不覆盖那些父节点。 该补丁引入了委托来包装这些差异,现在XSLF usermodel方法可以更加统一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM