handle colors with opacity

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1160220 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-08-22 11:52:11 +00:00
parent c178314554
commit da8e38019a
2 changed files with 19 additions and 2 deletions

View 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" ); throw new IllegalArgumentException( "This colorref is empty" );
int value = argbValue & 0x00FFFFFF;
// http://www.w3.org/TR/REC-html40/types.html#h-6.5 // http://www.w3.org/TR/REC-html40/types.html#h-6.5
switch ( value ) switch ( value )
{ {

View File

@ -76,6 +76,12 @@ public class WordToFoUtils extends AbstractWordUtils
{ {
inline.setAttribute( "color", getColor24( characterRun.getIco24() ) ); 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 ) if ( characterRun.getLanguageCode() != 0 )
{ {
final String language = getLanguage( characterRun.getLanguageCode() ); final String language = getLanguage( characterRun.getLanguageCode() );