]> source.dussan.org Git - poi.git/commitdiff
output language in (Word) XSL FO
authorSergey Vladimirov <sergey@apache.org>
Wed, 27 Jul 2011 15:57:45 +0000 (15:57 +0000)
committerSergey Vladimirov <sergey@apache.org>
Wed, 27 Jul 2011 15:57:45 +0000 (15:57 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1151511 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
src/scratchpad/src/org/apache/poi/hwpf/usermodel/CharacterRun.java

index ef1d82a75b96e91ca3976600f6a5364ecf73362c..5e4dc654269920229d881f575465c6fa7d7a3718 100644 (file)
@@ -23,6 +23,9 @@ import java.io.InputStream;
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.HWPFDocumentCore;
 import org.apache.poi.hwpf.HWPFOldDocument;
@@ -46,6 +49,9 @@ public class AbstractWordUtils
 {
     static final String EMPTY = "";
 
+    private static final POILogger logger = POILogFactory
+            .getLogger( AbstractWordUtils.class );
+
     public static final float TWIPS_PER_INCH = 1440.0f;
     public static final int TWIPS_PER_PT = 20;
 
@@ -377,6 +383,23 @@ public class AbstractWordUtils
         return "";
     }
 
+    public static String getLanguage( int languageCode )
+    {
+        switch ( languageCode )
+        {
+        case 1033:
+            return "en-us";
+        case 1049:
+            return "ru-ru";
+        case 2057:
+            return "en-uk";
+        default:
+            logger.log( POILogger.WARN, "Uknown or unmapped language code: ",
+                    Integer.valueOf( languageCode ) );
+            return "";
+        }
+    }
+
     public static String getListItemNumberLabel( int number, int format )
     {
 
index 783896f096c14bedf86cf6d50a6c0982aa2bea0e..202341fceef5ff4bf3c8750d8de7a2a1f771196f 100644 (file)
@@ -74,6 +74,12 @@ public class WordToFoUtils extends AbstractWordUtils
         {
             inline.setAttribute( "color", getColor24( characterRun.getIco24() ) );
         }
+        if ( characterRun.getLanguageCode() != 0 )
+        {
+            final String language = getLanguage( characterRun.getLanguageCode() );
+            if ( isNotEmpty( language ) )
+                inline.setAttribute( "language", language );
+        }
         if ( characterRun.isCapitalized() )
         {
             inline.setAttribute( "text-transform", "uppercase" );
@@ -273,7 +279,7 @@ public class WordToFoUtils extends AbstractWordUtils
             graphicElement.setAttribute( "clip", "rect(" + rectTop + "pt, "
                     + rectRight + "pt, " + rectBottom + "pt, " + rectLeft
                     + "pt)" );
-            graphicElement.setAttribute( "oveerflow", "hidden" );
+            graphicElement.setAttribute( "overflow", "hidden" );
         }
     }
 
index d1ea20687281797453777b752b01af694a28e6a2..61be15b668ffda60a3623f78345d4429889bc86e 100644 (file)
@@ -620,6 +620,10 @@ public final class CharacterRun
     return _props.getBrc();
   }
 
+  public int getLanguageCode() {
+      return _props.getLidDefault();
+  }
+  
   public String toString() {
      String text = text();
      return "CharacterRun of " + text.length() + " characters - " + text;