]> source.dussan.org Git - poi.git/commitdiff
Same workaround for CHPX / SEPX, as for PAPX. Disable SPRM processing for Word95...
authorSergey Vladimirov <sergey@apache.org>
Sat, 9 Jul 2011 16:04:46 +0000 (16:04 +0000)
committerSergey Vladimirov <sergey@apache.org>
Sat, 9 Jul 2011 16:04:46 +0000 (16:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144689 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/model/CHPX.java
src/scratchpad/src/org/apache/poi/hwpf/usermodel/Section.java

index 7aebf89f0201773c87acc0a1f669685cb198205f..b0f14ad375cab6d1446f126ab3477a59c34aafe5 100644 (file)
@@ -55,18 +55,20 @@ public final class CHPX extends BytePropertyNode<CHPX>
     return (SprmBuffer)_buf;
   }
 
-  public CharacterProperties getCharacterProperties(StyleSheet ss, short istd)
-  {
-    CharacterProperties baseStyle;
-    if (ss == null) {
-      //old document format
-      baseStyle = new CharacterProperties();
-    } else {
-      baseStyle = ss.getCharacterStyle(istd);
+    public CharacterProperties getCharacterProperties( StyleSheet ss, short istd )
+    {
+        if ( ss == null )
+        {
+            // TODO Fix up for Word 6/95
+            return new CharacterProperties();
+        }
+
+        CharacterProperties baseStyle = ss.getCharacterStyle( istd );
+        CharacterProperties props = CharacterSprmUncompressor.uncompressCHP(
+                baseStyle, getGrpprl(), 0 );
+        ;
+        return props;
     }
-    CharacterProperties props = CharacterSprmUncompressor.uncompressCHP(baseStyle, getGrpprl(), 0);
-    return props;
-  }
 
   public String toString() {
       return "CHPX from " + getStart() + " to " + getEnd() + 
index 3e314f1f19fd9e90263b727c609a140292badd96..8ce3787a18013b0d0deb58addf1c17f9dd053839 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hwpf.usermodel;
 
+import org.apache.poi.hwpf.HWPFOldDocument;
 import org.apache.poi.hwpf.model.SEPX;
 
 public final class Section
@@ -25,11 +26,17 @@ public final class Section
 
   private SectionProperties _props;
 
-  public Section(SEPX sepx, Range parent)
-  {
-    super(Math.max(parent._start, sepx.getStart()), Math.min(parent._end, sepx.getEnd()), parent);
-    _props = sepx.getSectionProperties();
-  }
+    public Section( SEPX sepx, Range parent )
+    {
+        super( Math.max( parent._start, sepx.getStart() ), Math.min(
+                parent._end, sepx.getEnd() ), parent );
+
+        // XXX: temporary workaround for old Word95 document
+        if ( parent.getDocument() instanceof HWPFOldDocument )
+            _props = new SectionProperties();
+        else
+            _props = sepx.getSectionProperties();
+    }
 
   public int type()
   {