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

View 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() );