Same workaround for CHPX / SEPX, as for PAPX. Disable SPRM processing for Word95 files.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144689 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sergey Vladimirov 2011-07-09 16:04:46 +00:00
parent 91f3ea74b9
commit bb9b395b69
2 changed files with 25 additions and 16 deletions

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

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