this.setObject(shading);
}
public RShading(CSSValue value) {
CTShd shd = Context.getWmlObjectFactory().createCTShd();
// PrimitiveType 25 -> RGBCOLOR
short ignored = 1;
float fRed;
float fGreen;
float fBlue;
CSSPrimitiveValue cssPrimitiveValue = (CSSPrimitiveValue) value;
try {
fRed = cssPrimitiveValue.getRGBColorValue().getRed()
.getFloatValue(ignored);
fGreen = cssPrimitiveValue.getRGBColorValue().getGreen()
.getFloatValue(ignored);
fBlue = cssPrimitiveValue.getRGBColorValue().getBlue()
.getFloatValue(ignored);
shd.setFill(UnitsOfMeasurement.rgbTripleToHex(fRed, fGreen, fBlue) );
} catch (UnsupportedOperationException e) {
try {
Class<?> xhtmlImporterClass = Class.forName("org.docx4j.convert.in.xhtml.FSColorToHexString");
Method rgbToHexMethod = xhtmlImporterClass.getMethod("rgbToHex", CSSPrimitiveValue.class);
shd.setFill((String)rgbToHexMethod.invoke(null, cssPrimitiveValue));
} catch (Exception e2) {
log.error("docx4j-XHTMLImport jar not found. Please add this to your classpath.");
log.error(e2.getMessage(), e2);
throw e; // same as before
}