Exemplo n.º 1
0
 protected void processAttributes(List<Property> properties, Element element) {
   CTShd shd = null;
   Shading shading = null;
   int bgColor = 0xffffff; // the background color of the page is assumed as white
   int fgColor = 0; // the default color of the font is assumed as black
   int pctPattern = -1;
   for (int i = 0; i < properties.size(); i++) {
     if (properties.get(i) instanceof Shading) {
       shd = (CTShd) properties.get(i).getObject();
       fgColor = extractColor(shd.getColor(), 0);
       if ((shd.getVal() != null)
           && ("clear".equals(shd.getVal().value()))
           && ("auto".equals(shd.getFill()))) {
         // This is a reset to the background color of the page,
         // it is treated as an special case, as the background color
         // isn't inherited
         bgColor = 0xffffff;
         pctPattern = -2;
       } else {
         pctPattern = (shd.getVal() != null ? extractPattern(shd.getVal().value()) : -1);
         bgColor = extractColor(shd.getFill(), bgColor);
       }
     }
   }
   if (pctPattern == -1) {
     applyAttributes(properties, element);
   } else {
     properties.add(createShading(fgColor, bgColor, pctPattern));
     applyAttributes(properties, element);
     properties.remove(properties.size() - 1);
   }
 }