]> source.dussan.org Git - poi.git/commitdiff
handle colors with opacity
authorSergey Vladimirov <sergey@apache.org>
Mon, 22 Aug 2011 11:52:11 +0000 (11:52 +0000)
committerSergey Vladimirov <sergey@apache.org>
Mon, 22 Aug 2011 11:52:11 +0000 (11:52 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1160220 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoUtils.java

index eeb5d7843f94757657f17d557ee61bcff589d147..455eb21b0540568e39de167840f5a2fbec05d8d9 100644 (file)
@@ -306,11 +306,22 @@ public class AbstractWordUtils
         }
     }
 
-    public static String getColor24( int value )
+    public static String getOpacity( int argbValue )
     {
-        if ( value == -1 )
+        int opacity = (int) ( ( argbValue & 0xFF000000l ) >>> 24 );
+        if ( opacity == 0 || opacity == 0xFF )
+            return ".0";
+
+        return "" + ( opacity / (float) 0xFF );
+    }
+
+    public static String getColor24( int argbValue )
+    {
+        if ( argbValue == -1 )
             throw new IllegalArgumentException( "This colorref is empty" );
 
+        int value = argbValue & 0x00FFFFFF;
+
         // http://www.w3.org/TR/REC-html40/types.html#h-6.5
         switch ( value )
         {
index 29723cfcedc975756690f63ddad9b65a3bb60256..f80f59c68b71bcc344f072ee4b1d79b2b6d29cb5 100644 (file)
@@ -76,6 +76,12 @@ public class WordToFoUtils extends AbstractWordUtils
         {
             inline.setAttribute( "color", getColor24( characterRun.getIco24() ) );
         }
+        final int opacity = (int) ( characterRun.getIco24() & 0xFF000000l ) >>> 24;
+        if ( opacity != 0 && opacity != 0xFF )
+        {
+            inline.setAttribute( "opacity",
+                    getOpacity( characterRun.getIco24() ) );
+        }
         if ( characterRun.getLanguageCode() != 0 )
         {
             final String language = getLanguage( characterRun.getLanguageCode() );