aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2011-06-18 08:57:10 +0000
committerYegor Kozlov <yegor@apache.org>2011-06-18 08:57:10 +0000
commitbc8498d5964dbc6d56eb11d41dec8481cd5d0587 (patch)
tree48057d6da700af798eab9ab3bfa508ff8de0c9a1
parentf1ec56abe207b72ea7109fe4382062c1e83f1450 (diff)
downloadpoi-bc8498d5964dbc6d56eb11d41dec8481cd5d0587.tar.gz
poi-bc8498d5964dbc6d56eb11d41dec8481cd5d0587.zip
Support for sprmPJc paragraph SPRM and handling of additional properties in ParagraphSprmCompressor, see Bugzilla 51389 and 51390
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1137143 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/documentation/content/xdocs/status.xml2
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java1283
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java321
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java6
-rw-r--r--src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java565
-rw-r--r--src/types/definitions/pap_type.xml110
6 files changed, 1392 insertions, 895 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index a79dc31eb2..77ba26574c 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,8 @@
<changes>
<release version="3.8-beta4" date="2011-??-??">
+ <action dev="poi-developers" type="add">51390 - Added handling of additional properties to HWPF ParagraphSprmCompressor</action>
+ <action dev="poi-developers" type="add">51389 - Support for sprmPJc paragraph SPRM in HWPF</action>
<action dev="poi-developers" type="fix">48469 - New Case Study for PI web site </action>
<action dev="poi-developers" type="fix">50681 - Avoid exceptions in HSSFDataFormat.getDataFormatString() </action>
<action dev="poi-developers" type="fix">50681 - Fixed autosizing columns beyond 255 character limit </action>
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java b/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
index 158edb34e9..8fb95da6b7 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/model/types/PAPAbstractType.java
@@ -18,93 +18,107 @@
package org.apache.poi.hwpf.model.types;
+
+import org.apache.poi.util.BitField;
+import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.HexDump;
import org.apache.poi.hdf.model.hdftypes.HDFType;
import org.apache.poi.hwpf.usermodel.*;
-import org.apache.poi.util.BitField;
-import org.apache.poi.util.BitFieldFactory;
/**
* Paragraph Properties.
* NOTE: This source is automatically generated please do not modify this file. Either subclass or
* remove the record in src/records/definitions.
- *
+
* @author S. Ryan Ackley
*/
-public abstract class PAPAbstractType implements HDFType {
+public abstract class PAPAbstractType
+ implements HDFType
+{
protected int field_1_istd;
- protected byte field_2_jc;
+ protected byte field_2_fSideBySide;
protected byte field_3_fKeep;
protected byte field_4_fKeepFollow;
protected byte field_5_fPageBreakBefore;
- protected byte field_6_fBrLnAbove;
- protected byte field_7_fBrLnBelow;
- protected byte field_8_pcVert;
- protected byte field_9_pcHorz;
- protected byte field_10_brcp;
- protected byte field_11_brcl;
- protected byte field_12_ilvl;
- protected byte field_13_fNoLnn;
- protected int field_14_ilfo;
- protected byte field_15_fSideBySide;
- protected byte field_16_fNoAutoHyph;
- protected byte field_17_fWidowControl;
- protected int field_18_dxaRight;
- protected int field_19_dxaLeft;
- protected int field_20_dxaLeft1;
- protected LineSpacingDescriptor field_21_lspd;
- protected int field_22_dyaBefore;
- protected int field_23_dyaAfter;
- protected byte[] field_24_phe;
- protected byte field_25_fCrLf;
- protected byte field_26_fUsePgsuSettings;
- protected byte field_27_fAdjustRight;
- protected byte field_28_fKinsoku;
- protected byte field_29_fWordWrap;
- protected byte field_30_fOverflowPunct;
- protected byte field_31_fTopLinePunct;
- protected byte field_32_fAutoSpaceDE;
- protected byte field_33_fAutoSpaceDN;
- protected int field_34_wAlignFont;
- protected short field_35_fontAlign;
- private static BitField fVertical = BitFieldFactory.getInstance(0x0001);
- private static BitField fBackward = BitFieldFactory.getInstance(0x0002);
- private static BitField fRotateFont = BitFieldFactory.getInstance(0x0004);
- protected byte field_36_fBackward;
- protected byte field_37_fRotateFont;
- protected byte field_38_fInTable;
- protected byte field_39_fTtp;
- protected byte field_40_wr;
- protected byte field_41_fLocked;
- protected byte[] field_42_ptap;
- protected int field_43_dxaAbs;
- protected int field_44_dyaAbs;
- protected int field_45_dxaWidth;
- protected BorderCode field_46_brcTop;
- protected BorderCode field_47_brcLeft;
- protected BorderCode field_48_brcBottom;
- protected BorderCode field_49_brcRight;
- protected BorderCode field_50_brcBetween;
- protected BorderCode field_51_brcBar;
- protected int field_52_dxaFromText;
- protected int field_53_dyaFromText;
- protected int field_54_dyaHeight;
- protected byte field_55_fMinHeight;
- protected ShadingDescriptor field_56_shd;
- protected DropCapSpecifier field_57_dcs;
- protected byte field_58_lvl;
- protected byte field_59_fNumRMIns;
- protected byte[] field_60_anld;
- protected int field_61_fPropRMark;
- protected int field_62_ibstPropRMark;
- protected DateAndTime field_63_dttmPropRMark;
- protected byte[] field_64_numrm;
- protected int field_65_itbdMac;
- protected int[] field_66_rgdxaTab;
- protected byte[] field_67_rgtbd;
- protected byte field_68_tableLevel;
- protected byte field_69_fTtpEmbedded;
- protected byte field_70_embeddedCellMark;
+ protected byte field_6_brcl;
+ protected byte field_7_brcp;
+ protected byte field_8_ilvl;
+ protected int field_9_ilfo;
+ protected byte field_10_fNoLnn;
+ protected LineSpacingDescriptor field_11_lspd;
+ protected int field_12_dyaBefore;
+ protected int field_13_dyaAfter;
+ protected byte field_14_fInTable;
+ protected byte field_15_finTableW97;
+ protected byte field_16_fTtp;
+ protected int field_17_dxaAbs;
+ protected int field_18_dyaAbs;
+ protected int field_19_dxaWidth;
+ protected byte field_20_fBrLnAbove;
+ protected byte field_21_fBrLnBelow;
+ protected byte field_22_pcVert;
+ protected byte field_23_pcHorz;
+ protected byte field_24_wr;
+ protected byte field_25_fNoAutoHyph;
+ protected int field_26_dyaHeight;
+ protected byte field_27_fMinHeight;
+ protected DropCapSpecifier field_28_dcs;
+ protected int field_29_dyaFromText;
+ protected int field_30_dxaFromText;
+ protected byte field_31_fLocked;
+ protected byte field_32_fWidowControl;
+ protected byte field_33_fKinsoku;
+ protected byte field_34_fWordWrap;
+ protected byte field_35_fOverflowPunct;
+ protected byte field_36_fTopLinePunct;
+ protected byte field_37_fAutoSpaceDE;
+ protected byte field_38_fAutoSpaceDN;
+ protected int field_39_wAlignFont;
+ protected short field_40_fontAlign;
+ private static BitField fVertical = new BitField(0x0001);
+ private static BitField fBackward = new BitField(0x0002);
+ private static BitField fRotateFont = new BitField(0x0004);
+ protected byte field_41_fVertical;
+ protected byte field_42_fBackward;
+ protected byte field_43_fRotateFont;
+ protected byte field_44_lvl;
+ protected byte field_45_fBiDi;
+ protected byte field_46_fNumRMIns;
+ protected byte field_47_fCrLf;
+ protected byte field_48_fUsePgsuSettings;
+ protected byte field_49_fAdjustRight;
+ protected short field_50_dxcRight;
+ protected short field_51_dxcLeft;
+ protected short field_52_dxcLeft1;
+ protected byte field_53_fDyaBeforeAuto;
+ protected byte field_54_fDyaAfterAuto;
+ protected int field_55_dxaRight;
+ protected int field_56_dxaLeft;
+ protected int field_57_dxaLeft1;
+ protected byte field_58_jc;
+ protected byte field_59_fNoAllowOverlap;
+ protected BorderCode field_60_brcTop;
+ protected BorderCode field_61_brcLeft;
+ protected BorderCode field_62_brcBottom;
+ protected BorderCode field_63_brcRight;
+ protected BorderCode field_64_brcBetween;
+ protected BorderCode field_65_brcBar;
+ protected ShadingDescriptor field_66_shd;
+ protected byte[] field_67_anld;
+ protected byte[] field_68_phe;
+ protected int field_69_fPropRMark;
+ protected int field_70_ibstPropRMark;
+ protected DateAndTime field_71_dttmPropRMark;
+ protected int field_72_itbdMac;
+ protected int[] field_73_rgdxaTab;
+ protected byte[] field_74_rgtbd;
+ protected byte[] field_75_numrm;
+ protected byte[] field_76_ptap;
+ protected byte field_77_tableLevel;
+ protected byte field_78_fTtpEmbedded;
+ protected byte field_79_embeddedCellMark;
public PAPAbstractType()
@@ -112,12 +126,263 @@ public abstract class PAPAbstractType implements HDFType {
}
+
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+
+ buffer.append("[PAP]\n");
+
+ buffer.append(" .istd = ");
+ buffer.append(" (").append(getIstd()).append(" )\n");
+
+ buffer.append(" .fSideBySide = ");
+ buffer.append(" (").append(getFSideBySide()).append(" )\n");
+
+ buffer.append(" .fKeep = ");
+ buffer.append(" (").append(getFKeep()).append(" )\n");
+
+ buffer.append(" .fKeepFollow = ");
+ buffer.append(" (").append(getFKeepFollow()).append(" )\n");
+
+ buffer.append(" .fPageBreakBefore = ");
+ buffer.append(" (").append(getFPageBreakBefore()).append(" )\n");
+
+ buffer.append(" .brcl = ");
+ buffer.append(" (").append(getBrcl()).append(" )\n");
+
+ buffer.append(" .brcp = ");
+ buffer.append(" (").append(getBrcp()).append(" )\n");
+
+ buffer.append(" .ilvl = ");
+ buffer.append(" (").append(getIlvl()).append(" )\n");
+
+ buffer.append(" .ilfo = ");
+ buffer.append(" (").append(getIlfo()).append(" )\n");
+
+ buffer.append(" .fNoLnn = ");
+ buffer.append(" (").append(getFNoLnn()).append(" )\n");
+
+ buffer.append(" .lspd = ");
+ buffer.append(" (").append(getLspd()).append(" )\n");
+
+ buffer.append(" .dyaBefore = ");
+ buffer.append(" (").append(getDyaBefore()).append(" )\n");
+
+ buffer.append(" .dyaAfter = ");
+ buffer.append(" (").append(getDyaAfter()).append(" )\n");
+
+ buffer.append(" .fInTable = ");
+ buffer.append(" (").append(getFInTable()).append(" )\n");
+
+ buffer.append(" .finTableW97 = ");
+ buffer.append(" (").append(getFinTableW97()).append(" )\n");
+
+ buffer.append(" .fTtp = ");
+ buffer.append(" (").append(getFTtp()).append(" )\n");
+
+ buffer.append(" .dxaAbs = ");
+ buffer.append(" (").append(getDxaAbs()).append(" )\n");
+
+ buffer.append(" .dyaAbs = ");
+ buffer.append(" (").append(getDyaAbs()).append(" )\n");
+
+ buffer.append(" .dxaWidth = ");
+ buffer.append(" (").append(getDxaWidth()).append(" )\n");
+
+ buffer.append(" .fBrLnAbove = ");
+ buffer.append(" (").append(getFBrLnAbove()).append(" )\n");
+
+ buffer.append(" .fBrLnBelow = ");
+ buffer.append(" (").append(getFBrLnBelow()).append(" )\n");
+
+ buffer.append(" .pcVert = ");
+ buffer.append(" (").append(getPcVert()).append(" )\n");
+
+ buffer.append(" .pcHorz = ");
+ buffer.append(" (").append(getPcHorz()).append(" )\n");
+
+ buffer.append(" .wr = ");
+ buffer.append(" (").append(getWr()).append(" )\n");
+
+ buffer.append(" .fNoAutoHyph = ");
+ buffer.append(" (").append(getFNoAutoHyph()).append(" )\n");
+
+ buffer.append(" .dyaHeight = ");
+ buffer.append(" (").append(getDyaHeight()).append(" )\n");
+
+ buffer.append(" .fMinHeight = ");
+ buffer.append(" (").append(getFMinHeight()).append(" )\n");
+
+ buffer.append(" .dcs = ");
+ buffer.append(" (").append(getDcs()).append(" )\n");
+
+ buffer.append(" .dyaFromText = ");
+ buffer.append(" (").append(getDyaFromText()).append(" )\n");
+
+ buffer.append(" .dxaFromText = ");
+ buffer.append(" (").append(getDxaFromText()).append(" )\n");
+
+ buffer.append(" .fLocked = ");
+ buffer.append(" (").append(getFLocked()).append(" )\n");
+
+ buffer.append(" .fWidowControl = ");
+ buffer.append(" (").append(getFWidowControl()).append(" )\n");
+
+ buffer.append(" .fKinsoku = ");
+ buffer.append(" (").append(getFKinsoku()).append(" )\n");
+
+ buffer.append(" .fWordWrap = ");
+ buffer.append(" (").append(getFWordWrap()).append(" )\n");
+
+ buffer.append(" .fOverflowPunct = ");
+ buffer.append(" (").append(getFOverflowPunct()).append(" )\n");
+
+ buffer.append(" .fTopLinePunct = ");
+ buffer.append(" (").append(getFTopLinePunct()).append(" )\n");
+
+ buffer.append(" .fAutoSpaceDE = ");
+ buffer.append(" (").append(getFAutoSpaceDE()).append(" )\n");
+
+ buffer.append(" .fAutoSpaceDN = ");
+ buffer.append(" (").append(getFAutoSpaceDN()).append(" )\n");
+
+ buffer.append(" .wAlignFont = ");
+ buffer.append(" (").append(getWAlignFont()).append(" )\n");
+
+ buffer.append(" .fontAlign = ");
+ buffer.append(" (").append(getFontAlign()).append(" )\n");
+ buffer.append(" .fVertical = ").append(isFVertical()).append('\n');
+ buffer.append(" .fBackward = ").append(isFBackward()).append('\n');
+ buffer.append(" .fRotateFont = ").append(isFRotateFont()).append('\n');
+
+ buffer.append(" .fVertical = ");
+ buffer.append(" (").append(getFVertical()).append(" )\n");
+
+ buffer.append(" .fBackward = ");
+ buffer.append(" (").append(getFBackward()).append(" )\n");
+
+ buffer.append(" .fRotateFont = ");
+ buffer.append(" (").append(getFRotateFont()).append(" )\n");
+
+ buffer.append(" .lvl = ");
+ buffer.append(" (").append(getLvl()).append(" )\n");
+
+ buffer.append(" .fBiDi = ");
+ buffer.append(" (").append(getFBiDi()).append(" )\n");
+
+ buffer.append(" .fNumRMIns = ");
+ buffer.append(" (").append(getFNumRMIns()).append(" )\n");
+
+ buffer.append(" .fCrLf = ");
+ buffer.append(" (").append(getFCrLf()).append(" )\n");
+
+ buffer.append(" .fUsePgsuSettings = ");
+ buffer.append(" (").append(getFUsePgsuSettings()).append(" )\n");
+
+ buffer.append(" .fAdjustRight = ");
+ buffer.append(" (").append(getFAdjustRight()).append(" )\n");
+
+ buffer.append(" .dxcRight = ");
+ buffer.append(" (").append(getDxcRight()).append(" )\n");
+
+ buffer.append(" .dxcLeft = ");
+ buffer.append(" (").append(getDxcLeft()).append(" )\n");
+
+ buffer.append(" .dxcLeft1 = ");
+ buffer.append(" (").append(getDxcLeft1()).append(" )\n");
+
+ buffer.append(" .fDyaBeforeAuto = ");
+ buffer.append(" (").append(getFDyaBeforeAuto()).append(" )\n");
+
+ buffer.append(" .fDyaAfterAuto = ");
+ buffer.append(" (").append(getFDyaAfterAuto()).append(" )\n");
+
+ buffer.append(" .dxaRight = ");
+ buffer.append(" (").append(getDxaRight()).append(" )\n");
+
+ buffer.append(" .dxaLeft = ");
+ buffer.append(" (").append(getDxaLeft()).append(" )\n");
+
+ buffer.append(" .dxaLeft1 = ");
+ buffer.append(" (").append(getDxaLeft1()).append(" )\n");
+
+ buffer.append(" .jc = ");
+ buffer.append(" (").append(getJc()).append(" )\n");
+
+ buffer.append(" .fNoAllowOverlap = ");
+ buffer.append(" (").append(getFNoAllowOverlap()).append(" )\n");
+
+ buffer.append(" .brcTop = ");
+ buffer.append(" (").append(getBrcTop()).append(" )\n");
+
+ buffer.append(" .brcLeft = ");
+ buffer.append(" (").append(getBrcLeft()).append(" )\n");
+
+ buffer.append(" .brcBottom = ");
+ buffer.append(" (").append(getBrcBottom()).append(" )\n");
+
+ buffer.append(" .brcRight = ");
+ buffer.append(" (").append(getBrcRight()).append(" )\n");
+
+ buffer.append(" .brcBetween = ");
+ buffer.append(" (").append(getBrcBetween()).append(" )\n");
+
+ buffer.append(" .brcBar = ");
+ buffer.append(" (").append(getBrcBar()).append(" )\n");
+
+ buffer.append(" .shd = ");
+ buffer.append(" (").append(getShd()).append(" )\n");
+
+ buffer.append(" .anld = ");
+ buffer.append(" (").append(getAnld()).append(" )\n");
+
+ buffer.append(" .phe = ");
+ buffer.append(" (").append(getPhe()).append(" )\n");
+
+ buffer.append(" .fPropRMark = ");
+ buffer.append(" (").append(getFPropRMark()).append(" )\n");
+
+ buffer.append(" .ibstPropRMark = ");
+ buffer.append(" (").append(getIbstPropRMark()).append(" )\n");
+
+ buffer.append(" .dttmPropRMark = ");
+ buffer.append(" (").append(getDttmPropRMark()).append(" )\n");
+
+ buffer.append(" .itbdMac = ");
+ buffer.append(" (").append(getItbdMac()).append(" )\n");
+
+ buffer.append(" .rgdxaTab = ");
+ buffer.append(" (").append(getRgdxaTab()).append(" )\n");
+
+ buffer.append(" .rgtbd = ");
+ buffer.append(" (").append(getRgtbd()).append(" )\n");
+
+ buffer.append(" .numrm = ");
+ buffer.append(" (").append(getNumrm()).append(" )\n");
+
+ buffer.append(" .ptap = ");
+ buffer.append(" (").append(getPtap()).append(" )\n");
+
+ buffer.append(" .tableLevel = ");
+ buffer.append(" (").append(getTableLevel()).append(" )\n");
+
+ buffer.append(" .fTtpEmbedded = ");
+ buffer.append(" (").append(getFTtpEmbedded()).append(" )\n");
+
+ buffer.append(" .embeddedCellMark = ");
+ buffer.append(" (").append(getEmbeddedCellMark()).append(" )\n");
+
+ buffer.append("[/PAP]\n");
+ return buffer.toString();
+ }
+
/**
* Size of record (exluding 4 byte header)
*/
public int getSize()
{
- return 4 + + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 1 + 1 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 12 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 2 + 1 + 2 + 2 + 1 + 1 + 84 + 1 + 2 + 4 + 128 + 2 + 128 + 128 + 1 + 1 + 1;
+ return 4 + + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 1 + 4 + 4 + 4 + 1 + 1 + 1 + 4 + 4 + 4 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 1 + 2 + 4 + 4 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 1 + 1 + 4 + 4 + 4 + 1 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 2 + 84 + 12 + 1 + 2 + 4 + 2 + 128 + 128 + 128 + 4 + 1 + 1 + 1;
}
@@ -139,19 +404,19 @@ public abstract class PAPAbstractType implements HDFType {
}
/**
- * Get the jc field for the PAP record.
+ * Get the fSideBySide field for the PAP record.
*/
- public byte getJc()
+ public byte getFSideBySide()
{
- return field_2_jc;
+ return field_2_fSideBySide;
}
/**
- * Set the jc field for the PAP record.
+ * Set the fSideBySide field for the PAP record.
*/
- public void setJc(byte field_2_jc)
+ public void setFSideBySide(byte field_2_fSideBySide)
{
- this.field_2_jc = field_2_jc;
+ this.field_2_fSideBySide = field_2_fSideBySide;
}
/**
@@ -203,355 +468,435 @@ public abstract class PAPAbstractType implements HDFType {
}
/**
- * Get the fBrLnAbove field for the PAP record.
+ * Get the brcl field for the PAP record.
*/
- public byte getFBrLnAbove()
+ public byte getBrcl()
{
- return field_6_fBrLnAbove;
+ return field_6_brcl;
}
/**
- * Set the fBrLnAbove field for the PAP record.
+ * Set the brcl field for the PAP record.
*/
- public void setFBrLnAbove(byte field_6_fBrLnAbove)
+ public void setBrcl(byte field_6_brcl)
{
- this.field_6_fBrLnAbove = field_6_fBrLnAbove;
+ this.field_6_brcl = field_6_brcl;
}
/**
- * Get the fBrLnBelow field for the PAP record.
+ * Get the brcp field for the PAP record.
*/
- public byte getFBrLnBelow()
+ public byte getBrcp()
{
- return field_7_fBrLnBelow;
+ return field_7_brcp;
}
/**
- * Set the fBrLnBelow field for the PAP record.
+ * Set the brcp field for the PAP record.
*/
- public void setFBrLnBelow(byte field_7_fBrLnBelow)
+ public void setBrcp(byte field_7_brcp)
{
- this.field_7_fBrLnBelow = field_7_fBrLnBelow;
+ this.field_7_brcp = field_7_brcp;
}
/**
- * Get the pcVert field for the PAP record.
+ * Get the ilvl field for the PAP record.
*/
- public byte getPcVert()
+ public byte getIlvl()
{
- return field_8_pcVert;
+ return field_8_ilvl;
}
/**
- * Set the pcVert field for the PAP record.
+ * Set the ilvl field for the PAP record.
*/
- public void setPcVert(byte field_8_pcVert)
+ public void setIlvl(byte field_8_ilvl)
{
- this.field_8_pcVert = field_8_pcVert;
+ this.field_8_ilvl = field_8_ilvl;
}
/**
- * Get the pcHorz field for the PAP record.
+ * Get the ilfo field for the PAP record.
*/
- public byte getPcHorz()
+ public int getIlfo()
{
- return field_9_pcHorz;
+ return field_9_ilfo;
}
/**
- * Set the pcHorz field for the PAP record.
+ * Set the ilfo field for the PAP record.
*/
- public void setPcHorz(byte field_9_pcHorz)
+ public void setIlfo(int field_9_ilfo)
{
- this.field_9_pcHorz = field_9_pcHorz;
+ this.field_9_ilfo = field_9_ilfo;
}
/**
- * Get the brcp field for the PAP record.
+ * Get the fNoLnn field for the PAP record.
*/
- public byte getBrcp()
+ public byte getFNoLnn()
{
- return field_10_brcp;
+ return field_10_fNoLnn;
}
/**
- * Set the brcp field for the PAP record.
+ * Set the fNoLnn field for the PAP record.
*/
- public void setBrcp(byte field_10_brcp)
+ public void setFNoLnn(byte field_10_fNoLnn)
{
- this.field_10_brcp = field_10_brcp;
+ this.field_10_fNoLnn = field_10_fNoLnn;
}
/**
- * Get the brcl field for the PAP record.
+ * Get the lspd field for the PAP record.
*/
- public byte getBrcl()
+ public LineSpacingDescriptor getLspd()
{
- return field_11_brcl;
+ return field_11_lspd;
}
/**
- * Set the brcl field for the PAP record.
+ * Set the lspd field for the PAP record.
*/
- public void setBrcl(byte field_11_brcl)
+ public void setLspd(LineSpacingDescriptor field_11_lspd)
{
- this.field_11_brcl = field_11_brcl;
+ this.field_11_lspd = field_11_lspd;
}
/**
- * Get the ilvl field for the PAP record.
+ * Get the dyaBefore field for the PAP record.
*/
- public byte getIlvl()
+ public int getDyaBefore()
{
- return field_12_ilvl;
+ return field_12_dyaBefore;
}
/**
- * Set the ilvl field for the PAP record.
+ * Set the dyaBefore field for the PAP record.
*/
- public void setIlvl(byte field_12_ilvl)
+ public void setDyaBefore(int field_12_dyaBefore)
{
- this.field_12_ilvl = field_12_ilvl;
+ this.field_12_dyaBefore = field_12_dyaBefore;
}
/**
- * Get the fNoLnn field for the PAP record.
+ * Get the dyaAfter field for the PAP record.
*/
- public byte getFNoLnn()
+ public int getDyaAfter()
{
- return field_13_fNoLnn;
+ return field_13_dyaAfter;
}
/**
- * Set the fNoLnn field for the PAP record.
+ * Set the dyaAfter field for the PAP record.
*/
- public void setFNoLnn(byte field_13_fNoLnn)
+ public void setDyaAfter(int field_13_dyaAfter)
{
- this.field_13_fNoLnn = field_13_fNoLnn;
+ this.field_13_dyaAfter = field_13_dyaAfter;
}
/**
- * Get the ilfo field for the PAP record.
+ * Get the fInTable field for the PAP record.
*/
- public int getIlfo()
+ public byte getFInTable()
{
- return field_14_ilfo;
+ return field_14_fInTable;
}
/**
- * Set the ilfo field for the PAP record.
+ * Set the fInTable field for the PAP record.
*/
- public void setIlfo(int field_14_ilfo)
+ public void setFInTable(byte field_14_fInTable)
{
- this.field_14_ilfo = field_14_ilfo;
+ this.field_14_fInTable = field_14_fInTable;
}
/**
- * Get the fSideBySide field for the PAP record.
+ * Get the finTableW97 field for the PAP record.
*/
- public byte getFSideBySide()
+ public byte getFinTableW97()
{
- return field_15_fSideBySide;
+ return field_15_finTableW97;
}
/**
- * Set the fSideBySide field for the PAP record.
+ * Set the finTableW97 field for the PAP record.
*/
- public void setFSideBySide(byte field_15_fSideBySide)
+ public void setFinTableW97(byte field_15_finTableW97)
{
- this.field_15_fSideBySide = field_15_fSideBySide;
+ this.field_15_finTableW97 = field_15_finTableW97;
}
/**
- * Get the fNoAutoHyph field for the PAP record.
+ * Get the fTtp field for the PAP record.
*/
- public byte getFNoAutoHyph()
+ public byte getFTtp()
{
- return field_16_fNoAutoHyph;
+ return field_16_fTtp;
}
/**
- * Set the fNoAutoHyph field for the PAP record.
+ * Set the fTtp field for the PAP record.
*/
- public void setFNoAutoHyph(byte field_16_fNoAutoHyph)
+ public void setFTtp(byte field_16_fTtp)
{
- this.field_16_fNoAutoHyph = field_16_fNoAutoHyph;
+ this.field_16_fTtp = field_16_fTtp;
}
/**
- * Get the fWidowControl field for the PAP record.
+ * Get the dxaAbs field for the PAP record.
*/
- public byte getFWidowControl()
+ public int getDxaAbs()
{
- return field_17_fWidowControl;
+ return field_17_dxaAbs;
}
/**
- * Set the fWidowControl field for the PAP record.
+ * Set the dxaAbs field for the PAP record.
*/
- public void setFWidowControl(byte field_17_fWidowControl)
+ public void setDxaAbs(int field_17_dxaAbs)
{
- this.field_17_fWidowControl = field_17_fWidowControl;
+ this.field_17_dxaAbs = field_17_dxaAbs;
}
/**
- * Get the dxaRight field for the PAP record.
+ * Get the dyaAbs field for the PAP record.
*/
- public int getDxaRight()
+ public int getDyaAbs()
{
- return field_18_dxaRight;
+ return field_18_dyaAbs;
}
/**
- * Set the dxaRight field for the PAP record.
+ * Set the dyaAbs field for the PAP record.
*/
- public void setDxaRight(int field_18_dxaRight)
+ public void setDyaAbs(int field_18_dyaAbs)
{
- this.field_18_dxaRight = field_18_dxaRight;
+ this.field_18_dyaAbs = field_18_dyaAbs;
}
/**
- * Get the dxaLeft field for the PAP record.
+ * Get the dxaWidth field for the PAP record.
*/
- public int getDxaLeft()
+ public int getDxaWidth()
{
- return field_19_dxaLeft;
+ return field_19_dxaWidth;
}
/**
- * Set the dxaLeft field for the PAP record.
+ * Set the dxaWidth field for the PAP record.
*/
- public void setDxaLeft(int field_19_dxaLeft)
+ public void setDxaWidth(int field_19_dxaWidth)
{
- this.field_19_dxaLeft = field_19_dxaLeft;
+ this.field_19_dxaWidth = field_19_dxaWidth;
}
/**
- * Get the dxaLeft1 field for the PAP record.
+ * Get the fBrLnAbove field for the PAP record.
*/
- public int getDxaLeft1()
+ public byte getFBrLnAbove()
{
- return field_20_dxaLeft1;
+ return field_20_fBrLnAbove;
}
/**
- * Set the dxaLeft1 field for the PAP record.
+ * Set the fBrLnAbove field for the PAP record.
*/
- public void setDxaLeft1(int field_20_dxaLeft1)
+ public void setFBrLnAbove(byte field_20_fBrLnAbove)
{
- this.field_20_dxaLeft1 = field_20_dxaLeft1;
+ this.field_20_fBrLnAbove = field_20_fBrLnAbove;
}
/**
- * Get the lspd field for the PAP record.
+ * Get the fBrLnBelow field for the PAP record.
*/
- public LineSpacingDescriptor getLspd()
+ public byte getFBrLnBelow()
{
- return field_21_lspd;
+ return field_21_fBrLnBelow;
}
/**
- * Set the lspd field for the PAP record.
+ * Set the fBrLnBelow field for the PAP record.
*/
- public void setLspd(LineSpacingDescriptor field_21_lspd)
+ public void setFBrLnBelow(byte field_21_fBrLnBelow)
{
- this.field_21_lspd = field_21_lspd;
+ this.field_21_fBrLnBelow = field_21_fBrLnBelow;
}
/**
- * Get the dyaBefore field for the PAP record.
+ * Get the pcVert field for the PAP record.
*/
- public int getDyaBefore()
+ public byte getPcVert()
{
- return field_22_dyaBefore;
+ return field_22_pcVert;
}
/**
- * Set the dyaBefore field for the PAP record.
+ * Set the pcVert field for the PAP record.
*/
- public void setDyaBefore(int field_22_dyaBefore)
+ public void setPcVert(byte field_22_pcVert)
{
- this.field_22_dyaBefore = field_22_dyaBefore;
+ this.field_22_pcVert = field_22_pcVert;
}
/**
- * Get the dyaAfter field for the PAP record.
+ * Get the pcHorz field for the PAP record.
*/
- public int getDyaAfter()
+ public byte getPcHorz()
{
- return field_23_dyaAfter;
+ return field_23_pcHorz;
}
/**
- * Set the dyaAfter field for the PAP record.
+ * Set the pcHorz field for the PAP record.
*/
- public void setDyaAfter(int field_23_dyaAfter)
+ public void setPcHorz(byte field_23_pcHorz)
{
- this.field_23_dyaAfter = field_23_dyaAfter;
+ this.field_23_pcHorz = field_23_pcHorz;
}
/**
- * Get the phe field for the PAP record.
+ * Get the wr field for the PAP record.
*/
- public byte[] getPhe()
+ public byte getWr()
{
- return field_24_phe;
+ return field_24_wr;
}
/**
- * Set the phe field for the PAP record.
+ * Set the wr field for the PAP record.
*/
- public void setPhe(byte[] field_24_phe)
+ public void setWr(byte field_24_wr)
{
- this.field_24_phe = field_24_phe;
+ this.field_24_wr = field_24_wr;
}
/**
- * Get the fCrLf field for the PAP record.
+ * Get the fNoAutoHyph field for the PAP record.
*/
- public byte getFCrLf()
+ public byte getFNoAutoHyph()
{
- return field_25_fCrLf;
+ return field_25_fNoAutoHyph;
}
/**
- * Set the fCrLf field for the PAP record.
+ * Set the fNoAutoHyph field for the PAP record.
*/
- public void setFCrLf(byte field_25_fCrLf)
+ public void setFNoAutoHyph(byte field_25_fNoAutoHyph)
{
- this.field_25_fCrLf = field_25_fCrLf;
+ this.field_25_fNoAutoHyph = field_25_fNoAutoHyph;
}
/**
- * Get the fUsePgsuSettings field for the PAP record.
+ * Get the dyaHeight field for the PAP record.
*/
- public byte getFUsePgsuSettings()
+ public int getDyaHeight()
{
- return field_26_fUsePgsuSettings;
+ return field_26_dyaHeight;
}
/**
- * Set the fUsePgsuSettings field for the PAP record.
+ * Set the dyaHeight field for the PAP record.
*/
- public void setFUsePgsuSettings(byte field_26_fUsePgsuSettings)
+ public void setDyaHeight(int field_26_dyaHeight)
{
- this.field_26_fUsePgsuSettings = field_26_fUsePgsuSettings;
+ this.field_26_dyaHeight = field_26_dyaHeight;
}
/**
- * Get the fAdjustRight field for the PAP record.
+ * Get the fMinHeight field for the PAP record.
*/
- public byte getFAdjustRight()
+ public byte getFMinHeight()
{
- return field_27_fAdjustRight;
+ return field_27_fMinHeight;
}
/**
- * Set the fAdjustRight field for the PAP record.
+ * Set the fMinHeight field for the PAP record.
+ */
+ public void setFMinHeight(byte field_27_fMinHeight)
+ {
+ this.field_27_fMinHeight = field_27_fMinHeight;
+ }
+
+ /**
+ * Get the dcs field for the PAP record.
*/
- public void setFAdjustRight(byte field_27_fAdjustRight)
+ public DropCapSpecifier getDcs()
{
- this.field_27_fAdjustRight = field_27_fAdjustRight;
+ return field_28_dcs;
+ }
+
+ /**
+ * Set the dcs field for the PAP record.
+ */
+ public void setDcs(DropCapSpecifier field_28_dcs)
+ {
+ this.field_28_dcs = field_28_dcs;
+ }
+
+ /**
+ * Get the dyaFromText field for the PAP record.
+ */
+ public int getDyaFromText()
+ {
+ return field_29_dyaFromText;
+ }
+
+ /**
+ * Set the dyaFromText field for the PAP record.
+ */
+ public void setDyaFromText(int field_29_dyaFromText)
+ {
+ this.field_29_dyaFromText = field_29_dyaFromText;
+ }
+
+ /**
+ * Get the dxaFromText field for the PAP record.
+ */
+ public int getDxaFromText()
+ {
+ return field_30_dxaFromText;
+ }
+
+ /**
+ * Set the dxaFromText field for the PAP record.
+ */
+ public void setDxaFromText(int field_30_dxaFromText)
+ {
+ this.field_30_dxaFromText = field_30_dxaFromText;
+ }
+
+ /**
+ * Get the fLocked field for the PAP record.
+ */
+ public byte getFLocked()
+ {
+ return field_31_fLocked;
+ }
+
+ /**
+ * Set the fLocked field for the PAP record.
+ */
+ public void setFLocked(byte field_31_fLocked)
+ {
+ this.field_31_fLocked = field_31_fLocked;
+ }
+
+ /**
+ * Get the fWidowControl field for the PAP record.
+ */
+ public byte getFWidowControl()
+ {
+ return field_32_fWidowControl;
+ }
+
+ /**
+ * Set the fWidowControl field for the PAP record.
+ */
+ public void setFWidowControl(byte field_32_fWidowControl)
+ {
+ this.field_32_fWidowControl = field_32_fWidowControl;
}
/**
@@ -559,15 +904,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFKinsoku()
{
- return field_28_fKinsoku;
+ return field_33_fKinsoku;
}
/**
* Set the fKinsoku field for the PAP record.
*/
- public void setFKinsoku(byte field_28_fKinsoku)
+ public void setFKinsoku(byte field_33_fKinsoku)
{
- this.field_28_fKinsoku = field_28_fKinsoku;
+ this.field_33_fKinsoku = field_33_fKinsoku;
}
/**
@@ -575,15 +920,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFWordWrap()
{
- return field_29_fWordWrap;
+ return field_34_fWordWrap;
}
/**
* Set the fWordWrap field for the PAP record.
*/
- public void setFWordWrap(byte field_29_fWordWrap)
+ public void setFWordWrap(byte field_34_fWordWrap)
{
- this.field_29_fWordWrap = field_29_fWordWrap;
+ this.field_34_fWordWrap = field_34_fWordWrap;
}
/**
@@ -591,15 +936,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFOverflowPunct()
{
- return field_30_fOverflowPunct;
+ return field_35_fOverflowPunct;
}
/**
* Set the fOverflowPunct field for the PAP record.
*/
- public void setFOverflowPunct(byte field_30_fOverflowPunct)
+ public void setFOverflowPunct(byte field_35_fOverflowPunct)
{
- this.field_30_fOverflowPunct = field_30_fOverflowPunct;
+ this.field_35_fOverflowPunct = field_35_fOverflowPunct;
}
/**
@@ -607,15 +952,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFTopLinePunct()
{
- return field_31_fTopLinePunct;
+ return field_36_fTopLinePunct;
}
/**
* Set the fTopLinePunct field for the PAP record.
*/
- public void setFTopLinePunct(byte field_31_fTopLinePunct)
+ public void setFTopLinePunct(byte field_36_fTopLinePunct)
{
- this.field_31_fTopLinePunct = field_31_fTopLinePunct;
+ this.field_36_fTopLinePunct = field_36_fTopLinePunct;
}
/**
@@ -623,15 +968,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFAutoSpaceDE()
{
- return field_32_fAutoSpaceDE;
+ return field_37_fAutoSpaceDE;
}
/**
* Set the fAutoSpaceDE field for the PAP record.
*/
- public void setFAutoSpaceDE(byte field_32_fAutoSpaceDE)
+ public void setFAutoSpaceDE(byte field_37_fAutoSpaceDE)
{
- this.field_32_fAutoSpaceDE = field_32_fAutoSpaceDE;
+ this.field_37_fAutoSpaceDE = field_37_fAutoSpaceDE;
}
/**
@@ -639,15 +984,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFAutoSpaceDN()
{
- return field_33_fAutoSpaceDN;
+ return field_38_fAutoSpaceDN;
}
/**
* Set the fAutoSpaceDN field for the PAP record.
*/
- public void setFAutoSpaceDN(byte field_33_fAutoSpaceDN)
+ public void setFAutoSpaceDN(byte field_38_fAutoSpaceDN)
{
- this.field_33_fAutoSpaceDN = field_33_fAutoSpaceDN;
+ this.field_38_fAutoSpaceDN = field_38_fAutoSpaceDN;
}
/**
@@ -655,15 +1000,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public int getWAlignFont()
{
- return field_34_wAlignFont;
+ return field_39_wAlignFont;
}
/**
* Set the wAlignFont field for the PAP record.
*/
- public void setWAlignFont(int field_34_wAlignFont)
+ public void setWAlignFont(int field_39_wAlignFont)
{
- this.field_34_wAlignFont = field_34_wAlignFont;
+ this.field_39_wAlignFont = field_39_wAlignFont;
}
/**
@@ -671,15 +1016,31 @@ public abstract class PAPAbstractType implements HDFType {
*/
public short getFontAlign()
{
- return field_35_fontAlign;
+ return field_40_fontAlign;
}
/**
* Set the fontAlign field for the PAP record.
*/
- public void setFontAlign(short field_35_fontAlign)
+ public void setFontAlign(short field_40_fontAlign)
{
- this.field_35_fontAlign = field_35_fontAlign;
+ this.field_40_fontAlign = field_40_fontAlign;
+ }
+
+ /**
+ * Get the fVertical field for the PAP record.
+ */
+ public byte getFVertical()
+ {
+ return field_41_fVertical;
+ }
+
+ /**
+ * Set the fVertical field for the PAP record.
+ */
+ public void setFVertical(byte field_41_fVertical)
+ {
+ this.field_41_fVertical = field_41_fVertical;
}
/**
@@ -687,15 +1048,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFBackward()
{
- return field_36_fBackward;
+ return field_42_fBackward;
}
/**
* Set the fBackward field for the PAP record.
*/
- public void setFBackward(byte field_36_fBackward)
+ public void setFBackward(byte field_42_fBackward)
{
- this.field_36_fBackward = field_36_fBackward;
+ this.field_42_fBackward = field_42_fBackward;
}
/**
@@ -703,367 +1064,383 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFRotateFont()
{
- return field_37_fRotateFont;
+ return field_43_fRotateFont;
}
/**
* Set the fRotateFont field for the PAP record.
*/
- public void setFRotateFont(byte field_37_fRotateFont)
+ public void setFRotateFont(byte field_43_fRotateFont)
{
- this.field_37_fRotateFont = field_37_fRotateFont;
+ this.field_43_fRotateFont = field_43_fRotateFont;
}
/**
- * Get the fInTable field for the PAP record.
+ * Get the lvl field for the PAP record.
*/
- public byte getFInTable()
+ public byte getLvl()
{
- return field_38_fInTable;
+ return field_44_lvl;
}
/**
- * Set the fInTable field for the PAP record.
+ * Set the lvl field for the PAP record.
*/
- public void setFInTable(byte field_38_fInTable)
+ public void setLvl(byte field_44_lvl)
{
- this.field_38_fInTable = field_38_fInTable;
+ this.field_44_lvl = field_44_lvl;
}
/**
- * Get the fTtp field for the PAP record.
+ * Get the fBiDi field for the PAP record.
*/
- public byte getFTtp()
+ public byte getFBiDi()
{
- return field_39_fTtp;
+ return field_45_fBiDi;
}
/**
- * Set the fTtp field for the PAP record.
+ * Set the fBiDi field for the PAP record.
*/
- public void setFTtp(byte field_39_fTtp)
+ public void setFBiDi(byte field_45_fBiDi)
{
- this.field_39_fTtp = field_39_fTtp;
+ this.field_45_fBiDi = field_45_fBiDi;
}
/**
- * Get the wr field for the PAP record.
+ * Get the fNumRMIns field for the PAP record.
*/
- public byte getWr()
+ public byte getFNumRMIns()
{
- return field_40_wr;
+ return field_46_fNumRMIns;
}
/**
- * Set the wr field for the PAP record.
+ * Set the fNumRMIns field for the PAP record.
*/
- public void setWr(byte field_40_wr)
+ public void setFNumRMIns(byte field_46_fNumRMIns)
{
- this.field_40_wr = field_40_wr;
+ this.field_46_fNumRMIns = field_46_fNumRMIns;
}
/**
- * Get the fLocked field for the PAP record.
+ * Get the fCrLf field for the PAP record.
*/
- public byte getFLocked()
+ public byte getFCrLf()
{
- return field_41_fLocked;
+ return field_47_fCrLf;
}
/**
- * Set the fLocked field for the PAP record.
+ * Set the fCrLf field for the PAP record.
*/
- public void setFLocked(byte field_41_fLocked)
+ public void setFCrLf(byte field_47_fCrLf)
{
- this.field_41_fLocked = field_41_fLocked;
+ this.field_47_fCrLf = field_47_fCrLf;
}
/**
- * Get the ptap field for the PAP record.
+ * Get the fUsePgsuSettings field for the PAP record.
*/
- public byte[] getPtap()
+ public byte getFUsePgsuSettings()
{
- return field_42_ptap;
+ return field_48_fUsePgsuSettings;
}
/**
- * Set the ptap field for the PAP record.
+ * Set the fUsePgsuSettings field for the PAP record.
*/
- public void setPtap(byte[] field_42_ptap)
+ public void setFUsePgsuSettings(byte field_48_fUsePgsuSettings)
{
- this.field_42_ptap = field_42_ptap;
+ this.field_48_fUsePgsuSettings = field_48_fUsePgsuSettings;
}
/**
- * Get the dxaAbs field for the PAP record.
+ * Get the fAdjustRight field for the PAP record.
*/
- public int getDxaAbs()
+ public byte getFAdjustRight()
{
- return field_43_dxaAbs;
+ return field_49_fAdjustRight;
}
/**
- * Set the dxaAbs field for the PAP record.
+ * Set the fAdjustRight field for the PAP record.
*/
- public void setDxaAbs(int field_43_dxaAbs)
+ public void setFAdjustRight(byte field_49_fAdjustRight)
{
- this.field_43_dxaAbs = field_43_dxaAbs;
+ this.field_49_fAdjustRight = field_49_fAdjustRight;
}
/**
- * Get the dyaAbs field for the PAP record.
+ * Get the dxcRight field for the PAP record.
*/
- public int getDyaAbs()
+ public short getDxcRight()
{
- return field_44_dyaAbs;
+ return field_50_dxcRight;
}
/**
- * Set the dyaAbs field for the PAP record.
+ * Set the dxcRight field for the PAP record.
*/
- public void setDyaAbs(int field_44_dyaAbs)
+ public void setDxcRight(short field_50_dxcRight)
{
- this.field_44_dyaAbs = field_44_dyaAbs;
+ this.field_50_dxcRight = field_50_dxcRight;
}
/**
- * Get the dxaWidth field for the PAP record.
+ * Get the dxcLeft field for the PAP record.
*/
- public int getDxaWidth()
+ public short getDxcLeft()
{
- return field_45_dxaWidth;
+ return field_51_dxcLeft;
}
/**
- * Set the dxaWidth field for the PAP record.
+ * Set the dxcLeft field for the PAP record.
*/
- public void setDxaWidth(int field_45_dxaWidth)
+ public void setDxcLeft(short field_51_dxcLeft)
{
- this.field_45_dxaWidth = field_45_dxaWidth;
+ this.field_51_dxcLeft = field_51_dxcLeft;
}
/**
- * Get the brcTop field for the PAP record.
+ * Get the dxcLeft1 field for the PAP record.
*/
- public BorderCode getBrcTop()
+ public short getDxcLeft1()
{
- return field_46_brcTop;
+ return field_52_dxcLeft1;
}
/**
- * Set the brcTop field for the PAP record.
+ * Set the dxcLeft1 field for the PAP record.
*/
- public void setBrcTop(BorderCode field_46_brcTop)
+ public void setDxcLeft1(short field_52_dxcLeft1)
{
- this.field_46_brcTop = field_46_brcTop;
+ this.field_52_dxcLeft1 = field_52_dxcLeft1;
}
/**
- * Get the brcLeft field for the PAP record.
+ * Get the fDyaBeforeAuto field for the PAP record.
*/
- public BorderCode getBrcLeft()
+ public byte getFDyaBeforeAuto()
{
- return field_47_brcLeft;
+ return field_53_fDyaBeforeAuto;
}
/**
- * Set the brcLeft field for the PAP record.
+ * Set the fDyaBeforeAuto field for the PAP record.
*/
- public void setBrcLeft(BorderCode field_47_brcLeft)
+ public void setFDyaBeforeAuto(byte field_53_fDyaBeforeAuto)
{
- this.field_47_brcLeft = field_47_brcLeft;
+ this.field_53_fDyaBeforeAuto = field_53_fDyaBeforeAuto;
}
/**
- * Get the brcBottom field for the PAP record.
+ * Get the fDyaAfterAuto field for the PAP record.
*/
- public BorderCode getBrcBottom()
+ public byte getFDyaAfterAuto()
{
- return field_48_brcBottom;
+ return field_54_fDyaAfterAuto;
}
/**
- * Set the brcBottom field for the PAP record.
+ * Set the fDyaAfterAuto field for the PAP record.
*/
- public void setBrcBottom(BorderCode field_48_brcBottom)
+ public void setFDyaAfterAuto(byte field_54_fDyaAfterAuto)
{
- this.field_48_brcBottom = field_48_brcBottom;
+ this.field_54_fDyaAfterAuto = field_54_fDyaAfterAuto;
}
/**
- * Get the brcRight field for the PAP record.
+ * Get the dxaRight field for the PAP record.
*/
- public BorderCode getBrcRight()
+ public int getDxaRight()
{
- return field_49_brcRight;
+ return field_55_dxaRight;
}
/**
- * Set the brcRight field for the PAP record.
+ * Set the dxaRight field for the PAP record.
*/
- public void setBrcRight(BorderCode field_49_brcRight)
+ public void setDxaRight(int field_55_dxaRight)
{
- this.field_49_brcRight = field_49_brcRight;
+ this.field_55_dxaRight = field_55_dxaRight;
}
/**
- * Get the brcBetween field for the PAP record.
+ * Get the dxaLeft field for the PAP record.
*/
- public BorderCode getBrcBetween()
+ public int getDxaLeft()
{
- return field_50_brcBetween;
+ return field_56_dxaLeft;
}
/**
- * Set the brcBetween field for the PAP record.
+ * Set the dxaLeft field for the PAP record.
*/
- public void setBrcBetween(BorderCode field_50_brcBetween)
+ public void setDxaLeft(int field_56_dxaLeft)
{
- this.field_50_brcBetween = field_50_brcBetween;
+ this.field_56_dxaLeft = field_56_dxaLeft;
}
/**
- * Get the brcBar field for the PAP record.
+ * Get the dxaLeft1 field for the PAP record.
*/
- public BorderCode getBrcBar()
+ public int getDxaLeft1()
{
- return field_51_brcBar;
+ return field_57_dxaLeft1;
}
/**
- * Set the brcBar field for the PAP record.
+ * Set the dxaLeft1 field for the PAP record.
*/
- public void setBrcBar(BorderCode field_51_brcBar)
+ public void setDxaLeft1(int field_57_dxaLeft1)
{
- this.field_51_brcBar = field_51_brcBar;
+ this.field_57_dxaLeft1 = field_57_dxaLeft1;
}
/**
- * Get the dxaFromText field for the PAP record.
+ * Get the jc field for the PAP record.
*/
- public int getDxaFromText()
+ public byte getJc()
{
- return field_52_dxaFromText;
+ return field_58_jc;
}
/**
- * Set the dxaFromText field for the PAP record.
+ * Set the jc field for the PAP record.
*/
- public void setDxaFromText(int field_52_dxaFromText)
+ public void setJc(byte field_58_jc)
{
- this.field_52_dxaFromText = field_52_dxaFromText;
+ this.field_58_jc = field_58_jc;
}
/**
- * Get the dyaFromText field for the PAP record.
+ * Get the fNoAllowOverlap field for the PAP record.
*/
- public int getDyaFromText()
+ public byte getFNoAllowOverlap()
{
- return field_53_dyaFromText;
+ return field_59_fNoAllowOverlap;
}
/**
- * Set the dyaFromText field for the PAP record.
+ * Set the fNoAllowOverlap field for the PAP record.
*/
- public void setDyaFromText(int field_53_dyaFromText)
+ public void setFNoAllowOverlap(byte field_59_fNoAllowOverlap)
{
- this.field_53_dyaFromText = field_53_dyaFromText;
+ this.field_59_fNoAllowOverlap = field_59_fNoAllowOverlap;
}
/**
- * Get the dyaHeight field for the PAP record.
+ * Get the brcTop field for the PAP record.
*/
- public int getDyaHeight()
+ public BorderCode getBrcTop()
{
- return field_54_dyaHeight;
+ return field_60_brcTop;
}
/**
- * Set the dyaHeight field for the PAP record.
+ * Set the brcTop field for the PAP record.
*/
- public void setDyaHeight(int field_54_dyaHeight)
+ public void setBrcTop(BorderCode field_60_brcTop)
{
- this.field_54_dyaHeight = field_54_dyaHeight;
+ this.field_60_brcTop = field_60_brcTop;
}
/**
- * Get the fMinHeight field for the PAP record.
+ * Get the brcLeft field for the PAP record.
*/
- public byte getFMinHeight()
+ public BorderCode getBrcLeft()
{
- return field_55_fMinHeight;
+ return field_61_brcLeft;
}
/**
- * Set the fMinHeight field for the PAP record.
+ * Set the brcLeft field for the PAP record.
*/
- public void setFMinHeight(byte field_55_fMinHeight)
+ public void setBrcLeft(BorderCode field_61_brcLeft)
{
- this.field_55_fMinHeight = field_55_fMinHeight;
+ this.field_61_brcLeft = field_61_brcLeft;
}
/**
- * Get the shd field for the PAP record.
+ * Get the brcBottom field for the PAP record.
*/
- public ShadingDescriptor getShd()
+ public BorderCode getBrcBottom()
{
- return field_56_shd;
+ return field_62_brcBottom;
}
/**
- * Set the shd field for the PAP record.
+ * Set the brcBottom field for the PAP record.
*/
- public void setShd(ShadingDescriptor field_56_shd)
+ public void setBrcBottom(BorderCode field_62_brcBottom)
{
- this.field_56_shd = field_56_shd;
+ this.field_62_brcBottom = field_62_brcBottom;
}
/**
- * Get the dcs field for the PAP record.
+ * Get the brcRight field for the PAP record.
*/
- public DropCapSpecifier getDcs()
+ public BorderCode getBrcRight()
{
- return field_57_dcs;
+ return field_63_brcRight;
}
/**
- * Set the dcs field for the PAP record.
+ * Set the brcRight field for the PAP record.
*/
- public void setDcs(DropCapSpecifier field_57_dcs)
+ public void setBrcRight(BorderCode field_63_brcRight)
{
- this.field_57_dcs = field_57_dcs;
+ this.field_63_brcRight = field_63_brcRight;
}
/**
- * Get the lvl field for the PAP record.
+ * Get the brcBetween field for the PAP record.
*/
- public byte getLvl()
+ public BorderCode getBrcBetween()
{
- return field_58_lvl;
+ return field_64_brcBetween;
}
/**
- * Set the lvl field for the PAP record.
+ * Set the brcBetween field for the PAP record.
*/
- public void setLvl(byte field_58_lvl)
+ public void setBrcBetween(BorderCode field_64_brcBetween)
{
- this.field_58_lvl = field_58_lvl;
+ this.field_64_brcBetween = field_64_brcBetween;
}
/**
- * Get the fNumRMIns field for the PAP record.
+ * Get the brcBar field for the PAP record.
*/
- public byte getFNumRMIns()
+ public BorderCode getBrcBar()
{
- return field_59_fNumRMIns;
+ return field_65_brcBar;
}
/**
- * Set the fNumRMIns field for the PAP record.
+ * Set the brcBar field for the PAP record.
*/
- public void setFNumRMIns(byte field_59_fNumRMIns)
+ public void setBrcBar(BorderCode field_65_brcBar)
{
- this.field_59_fNumRMIns = field_59_fNumRMIns;
+ this.field_65_brcBar = field_65_brcBar;
+ }
+
+ /**
+ * Get the shd field for the PAP record.
+ */
+ public ShadingDescriptor getShd()
+ {
+ return field_66_shd;
+ }
+
+ /**
+ * Set the shd field for the PAP record.
+ */
+ public void setShd(ShadingDescriptor field_66_shd)
+ {
+ this.field_66_shd = field_66_shd;
}
/**
@@ -1071,79 +1448,79 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte[] getAnld()
{
- return field_60_anld;
+ return field_67_anld;
}
/**
* Set the anld field for the PAP record.
*/
- public void setAnld(byte[] field_60_anld)
+ public void setAnld(byte[] field_67_anld)
{
- this.field_60_anld = field_60_anld;
+ this.field_67_anld = field_67_anld;
}
/**
- * Get the fPropRMark field for the PAP record.
+ * Get the phe field for the PAP record.
*/
- public int getFPropRMark()
+ public byte[] getPhe()
{
- return field_61_fPropRMark;
+ return field_68_phe;
}
/**
- * Set the fPropRMark field for the PAP record.
+ * Set the phe field for the PAP record.
*/
- public void setFPropRMark(int field_61_fPropRMark)
+ public void setPhe(byte[] field_68_phe)
{
- this.field_61_fPropRMark = field_61_fPropRMark;
+ this.field_68_phe = field_68_phe;
}
/**
- * Get the ibstPropRMark field for the PAP record.
+ * Get the fPropRMark field for the PAP record.
*/
- public int getIbstPropRMark()
+ public int getFPropRMark()
{
- return field_62_ibstPropRMark;
+ return field_69_fPropRMark;
}
/**
- * Set the ibstPropRMark field for the PAP record.
+ * Set the fPropRMark field for the PAP record.
*/
- public void setIbstPropRMark(int field_62_ibstPropRMark)
+ public void setFPropRMark(int field_69_fPropRMark)
{
- this.field_62_ibstPropRMark = field_62_ibstPropRMark;
+ this.field_69_fPropRMark = field_69_fPropRMark;
}
/**
- * Get the dttmPropRMark field for the PAP record.
+ * Get the ibstPropRMark field for the PAP record.
*/
- public DateAndTime getDttmPropRMark()
+ public int getIbstPropRMark()
{
- return field_63_dttmPropRMark;
+ return field_70_ibstPropRMark;
}
/**
- * Set the dttmPropRMark field for the PAP record.
+ * Set the ibstPropRMark field for the PAP record.
*/
- public void setDttmPropRMark(DateAndTime field_63_dttmPropRMark)
+ public void setIbstPropRMark(int field_70_ibstPropRMark)
{
- this.field_63_dttmPropRMark = field_63_dttmPropRMark;
+ this.field_70_ibstPropRMark = field_70_ibstPropRMark;
}
/**
- * Get the numrm field for the PAP record.
+ * Get the dttmPropRMark field for the PAP record.
*/
- public byte[] getNumrm()
+ public DateAndTime getDttmPropRMark()
{
- return field_64_numrm;
+ return field_71_dttmPropRMark;
}
/**
- * Set the numrm field for the PAP record.
+ * Set the dttmPropRMark field for the PAP record.
*/
- public void setNumrm(byte[] field_64_numrm)
+ public void setDttmPropRMark(DateAndTime field_71_dttmPropRMark)
{
- this.field_64_numrm = field_64_numrm;
+ this.field_71_dttmPropRMark = field_71_dttmPropRMark;
}
/**
@@ -1151,15 +1528,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public int getItbdMac()
{
- return field_65_itbdMac;
+ return field_72_itbdMac;
}
/**
* Set the itbdMac field for the PAP record.
*/
- public void setItbdMac(int field_65_itbdMac)
+ public void setItbdMac(int field_72_itbdMac)
{
- this.field_65_itbdMac = field_65_itbdMac;
+ this.field_72_itbdMac = field_72_itbdMac;
}
/**
@@ -1167,15 +1544,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public int[] getRgdxaTab()
{
- return field_66_rgdxaTab;
+ return field_73_rgdxaTab;
}
/**
* Set the rgdxaTab field for the PAP record.
*/
- public void setRgdxaTab(int[] field_66_rgdxaTab)
+ public void setRgdxaTab(int[] field_73_rgdxaTab)
{
- this.field_66_rgdxaTab = field_66_rgdxaTab;
+ this.field_73_rgdxaTab = field_73_rgdxaTab;
}
/**
@@ -1183,15 +1560,47 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte[] getRgtbd()
{
- return field_67_rgtbd;
+ return field_74_rgtbd;
}
/**
* Set the rgtbd field for the PAP record.
*/
- public void setRgtbd(byte[] field_67_rgtbd)
+ public void setRgtbd(byte[] field_74_rgtbd)
{
- this.field_67_rgtbd = field_67_rgtbd;
+ this.field_74_rgtbd = field_74_rgtbd;
+ }
+
+ /**
+ * Get the numrm field for the PAP record.
+ */
+ public byte[] getNumrm()
+ {
+ return field_75_numrm;
+ }
+
+ /**
+ * Set the numrm field for the PAP record.
+ */
+ public void setNumrm(byte[] field_75_numrm)
+ {
+ this.field_75_numrm = field_75_numrm;
+ }
+
+ /**
+ * Get the ptap field for the PAP record.
+ */
+ public byte[] getPtap()
+ {
+ return field_76_ptap;
+ }
+
+ /**
+ * Set the ptap field for the PAP record.
+ */
+ public void setPtap(byte[] field_76_ptap)
+ {
+ this.field_76_ptap = field_76_ptap;
}
/**
@@ -1199,15 +1608,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getTableLevel()
{
- return field_68_tableLevel;
+ return field_77_tableLevel;
}
/**
* Set the tableLevel field for the PAP record.
*/
- public void setTableLevel(byte field_68_tableLevel)
+ public void setTableLevel(byte field_77_tableLevel)
{
- this.field_68_tableLevel = field_68_tableLevel;
+ this.field_77_tableLevel = field_77_tableLevel;
}
/**
@@ -1215,15 +1624,15 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getFTtpEmbedded()
{
- return field_69_fTtpEmbedded;
+ return field_78_fTtpEmbedded;
}
/**
* Set the fTtpEmbedded field for the PAP record.
*/
- public void setFTtpEmbedded(byte field_69_fTtpEmbedded)
+ public void setFTtpEmbedded(byte field_78_fTtpEmbedded)
{
- this.field_69_fTtpEmbedded = field_69_fTtpEmbedded;
+ this.field_78_fTtpEmbedded = field_78_fTtpEmbedded;
}
/**
@@ -1231,78 +1640,78 @@ public abstract class PAPAbstractType implements HDFType {
*/
public byte getEmbeddedCellMark()
{
- return field_70_embeddedCellMark;
+ return field_79_embeddedCellMark;
}
/**
* Set the embeddedCellMark field for the PAP record.
*/
- public void setEmbeddedCellMark(byte field_70_embeddedCellMark)
+ public void setEmbeddedCellMark(byte field_79_embeddedCellMark)
{
- this.field_70_embeddedCellMark = field_70_embeddedCellMark;
+ this.field_79_embeddedCellMark = field_79_embeddedCellMark;
}
/**
* Sets the fVertical field value.
- *
+ *
*/
public void setFVertical(boolean value)
{
- field_35_fontAlign = (short)fVertical.setBoolean(field_35_fontAlign, value);
-
+ field_40_fontAlign = (short)fVertical.setBoolean(field_40_fontAlign, value);
+
}
/**
- *
+ *
* @return the fVertical field value.
*/
public boolean isFVertical()
{
- return fVertical.isSet(field_35_fontAlign);
-
+ return fVertical.isSet(field_40_fontAlign);
+
}
/**
* Sets the fBackward field value.
- *
+ *
*/
public void setFBackward(boolean value)
{
- field_35_fontAlign = (short)fBackward.setBoolean(field_35_fontAlign, value);
-
+ field_40_fontAlign = (short)fBackward.setBoolean(field_40_fontAlign, value);
+
}
/**
- *
+ *
* @return the fBackward field value.
*/
public boolean isFBackward()
{
- return fBackward.isSet(field_35_fontAlign);
-
+ return fBackward.isSet(field_40_fontAlign);
+
}
/**
* Sets the fRotateFont field value.
- *
+ *
*/
public void setFRotateFont(boolean value)
{
- field_35_fontAlign = (short)fRotateFont.setBoolean(field_35_fontAlign, value);
-
+ field_40_fontAlign = (short)fRotateFont.setBoolean(field_40_fontAlign, value);
+
}
/**
- *
+ *
* @return the fRotateFont field value.
*/
public boolean isFRotateFont()
{
- return fRotateFont.isSet(field_35_fontAlign);
-
+ return fRotateFont.isSet(field_40_fontAlign);
+
}
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java b/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java
index 67af3ecca0..59fbff3927 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java
@@ -34,13 +34,27 @@ public final class ParagraphSprmCompressor
public static byte[] compressParagraphProperty(ParagraphProperties newPAP,
ParagraphProperties oldPAP)
{
+ // page numbers links to Word97-2007BinaryFileFormat(doc)Specification.pdf, accessible from microsoft.com
+
List sprmList = new ArrayList();
int size = 0;
+ // Page 50 of public specification begins
+ if (newPAP.getIstd() != oldPAP.getIstd())
+ {
+ // sprmPIstd
+ size += SprmUtils.addSprm((short)0x4600, newPAP.getIstd(), null, sprmList);
+ }
if (newPAP.getJc() != oldPAP.getJc())
{
+ // sprmPJc80
size += SprmUtils.addSprm((short)0x2403, newPAP.getJc(), null, sprmList);
}
+ if (newPAP.getFSideBySide() != oldPAP.getFSideBySide())
+ {
+ // sprmPFSideBySide
+ size += SprmUtils.addSprm((short)0x2404, newPAP.getFSideBySide(), null, sprmList);
+ }
if (newPAP.getFKeep() != oldPAP.getFKeep())
{
size += SprmUtils.addSprm((short)0x2405, newPAP.getFKeep(), null, sprmList);
@@ -73,54 +87,63 @@ public final class ParagraphSprmCompressor
{
size += SprmUtils.addSprm((short)0x240C, newPAP.getFNoLnn(), null, sprmList);
}
- if (newPAP.getFSideBySide() != oldPAP.getFSideBySide())
- {
- size += SprmUtils.addSprm((short)0x2404, newPAP.getFSideBySide(), null, sprmList);
+ if (newPAP.getItbdMac() != oldPAP.getItbdMac() ||
+ !Arrays.equals(newPAP.getRgdxaTab(), oldPAP.getRgdxaTab()) ||
+ !Arrays.equals(newPAP.getRgtbd(), oldPAP.getRgtbd()))
+ {
+ /** @todo revisit this */
+// byte[] oldTabArray = oldPAP.getRgdxaTab();
+// byte[] newTabArray = newPAP.getRgdxaTab();
+// byte[] newTabDescriptors = newPAP.getRgtbd();
+// byte[] varParam = new byte[2 + oldTabArray.length + newTabArray.length +
+// newTabDescriptors.length];
+// varParam[0] = (byte)(oldTabArray.length/2);
+// int offset = 1;
+// System.arraycopy(oldTabArray, 0, varParam, offset, oldTabArray.length);
+// offset += oldTabArray.length;
+// varParam[offset] = (byte)(newTabArray.length/2);
+// offset += 1;
+// System.arraycopy(newTabArray, 0, varParam, offset, newTabArray.length);
+// offset += newTabArray.length;
+// System.arraycopy(newTabDescriptors, 0, varParam, offset, newTabDescriptors.length);
+ //
+// size += SprmUtils.addSprm((short)0xC60D, 0, varParam, sprmList);
}
- if (newPAP.getFNoAutoHyph() != oldPAP.getFNoAutoHyph())
+ if (newPAP.getDxaLeft() != oldPAP.getDxaLeft())
{
- size += SprmUtils.addSprm((short)0x242A, newPAP.getFNoAutoHyph(), null, sprmList);
+ // sprmPDxaLeft80
+ size += SprmUtils.addSprm((short)0x840F, newPAP.getDxaLeft(), null, sprmList);
}
- if (newPAP.getFWidowControl() != oldPAP.getFWidowControl())
+
+ // Page 51 of public specification begins
+ if (newPAP.getDxaLeft1() != oldPAP.getDxaLeft1())
{
- size += SprmUtils.addSprm((short)0x2431, newPAP.getFWidowControl(), null, sprmList);
- }
- if (newPAP.getItbdMac() != oldPAP.getItbdMac() ||
- !Arrays.equals(newPAP.getRgdxaTab(), oldPAP.getRgdxaTab()) ||
- !Arrays.equals(newPAP.getRgtbd(), oldPAP.getRgtbd()))
- {
- /** @todo revisit this */
-// byte[] oldTabArray = oldPAP.getRgdxaTab();
-// byte[] newTabArray = newPAP.getRgdxaTab();
-// byte[] newTabDescriptors = newPAP.getRgtbd();
-// byte[] varParam = new byte[2 + oldTabArray.length + newTabArray.length +
-// newTabDescriptors.length];
-// varParam[0] = (byte)(oldTabArray.length/2);
-// int offset = 1;
-// System.arraycopy(oldTabArray, 0, varParam, offset, oldTabArray.length);
-// offset += oldTabArray.length;
-// varParam[offset] = (byte)(newTabArray.length/2);
-// offset += 1;
-// System.arraycopy(newTabArray, 0, varParam, offset, newTabArray.length);
-// offset += newTabArray.length;
-// System.arraycopy(newTabDescriptors, 0, varParam, offset, newTabDescriptors.length);
-//
-// size += SprmUtils.addSprm((short)0xC60D, 0, varParam, sprmList);
+ // sprmPDxaLeft180
+ size += SprmUtils.addSprm((short)0x8411, newPAP.getDxaLeft1(), null, sprmList);
}
if (newPAP.getDxaRight() != oldPAP.getDxaRight())
{
+ // sprmPDxaRight80
size += SprmUtils.addSprm((short)0x840E, newPAP.getDxaRight(), null, sprmList);
}
- if (newPAP.getDxaLeft() != oldPAP.getDxaLeft())
+ if (newPAP.getDxcLeft() != oldPAP.getDxcLeft())
{
- size += SprmUtils.addSprm((short)0x840F, newPAP.getDxaLeft(), null, sprmList);
+ // sprmPDxcLeft
+ size += SprmUtils.addSprm((short)0x4456, newPAP.getDxcLeft(), null, sprmList);
}
- if (newPAP.getDxaLeft1() != oldPAP.getDxaLeft1())
+ if (newPAP.getDxcLeft1() != oldPAP.getDxcLeft1())
{
- size += SprmUtils.addSprm((short)0x8411, newPAP.getDxaLeft1(), null, sprmList);
+ // sprmPDxcLeft1
+ size += SprmUtils.addSprm((short)0x4457, newPAP.getDxcLeft1(), null, sprmList);
+ }
+ if (newPAP.getDxcRight() != oldPAP.getDxcRight())
+ {
+ // sprmPDxcRight
+ size += SprmUtils.addSprm((short)0x4455, newPAP.getDxcRight(), null, sprmList);
}
if (!newPAP.getLspd().equals(oldPAP.getLspd()))
{
+ // sprmPDyaLine
byte[] buf = new byte[4];
newPAP.getLspd().serialize(buf, 0);
@@ -128,131 +151,96 @@ public final class ParagraphSprmCompressor
}
if (newPAP.getDyaBefore() != oldPAP.getDyaBefore())
{
+ // sprmPDyaBefore
size += SprmUtils.addSprm((short)0xA413, newPAP.getDyaBefore(), null, sprmList);
}
if (newPAP.getDyaAfter() != oldPAP.getDyaAfter())
{
+ // sprmPDyaAfter
size += SprmUtils.addSprm((short)0xA414, newPAP.getDyaAfter(), null, sprmList);
}
- if (newPAP.getDyaBefore() != oldPAP.getDyaBefore())
- {
- size += SprmUtils.addSprm((short)0x2404, newPAP.getDyaBefore(), null, sprmList);
- }
- if (newPAP.getFKinsoku() != oldPAP.getFKinsoku())
- {
- size += SprmUtils.addSprm((short)0x2433, newPAP.getDyaBefore(), null, sprmList);
- }
- if (newPAP.getFWordWrap() != oldPAP.getFWordWrap())
- {
- size += SprmUtils.addSprm((short)0x2434, newPAP.getFWordWrap(), null, sprmList);
- }
- if (newPAP.getFOverflowPunct() != oldPAP.getFOverflowPunct())
- {
- size += SprmUtils.addSprm((short)0x2435, newPAP.getFOverflowPunct(), null, sprmList);
- }
- if (newPAP.getFTopLinePunct() != oldPAP.getFTopLinePunct())
- {
- size += SprmUtils.addSprm((short)0x2436, newPAP.getFTopLinePunct(), null, sprmList);
- }
- if (newPAP.getFAutoSpaceDE() != oldPAP.getFAutoSpaceDE())
- {
- size += SprmUtils.addSprm((short)0x2437, newPAP.getFAutoSpaceDE(), null, sprmList);
- }
- if (newPAP.getFAutoSpaceDN() != oldPAP.getFAutoSpaceDN())
- {
- size += SprmUtils.addSprm((short)0x2438, newPAP.getFAutoSpaceDN(), null, sprmList);
- }
- if (newPAP.getWAlignFont() != oldPAP.getWAlignFont())
+ if (newPAP.getFDyaBeforeAuto() != oldPAP.getFDyaBeforeAuto())
{
- size += SprmUtils.addSprm((short)0x4439, newPAP.getWAlignFont(), null, sprmList);
+ // sprmPFDyaBeforeAuto
+ size += SprmUtils.addSprm((short)0x245B, newPAP.getFDyaBeforeAuto(), null, sprmList);
}
- if (newPAP.isFBackward() != oldPAP.isFBackward() ||
- newPAP.isFVertical() != oldPAP.isFVertical() ||
- newPAP.isFRotateFont() != oldPAP.isFRotateFont())
+ if (newPAP.getFDyaAfterAuto() != oldPAP.getFDyaAfterAuto())
{
- int val = 0;
- if (newPAP.isFBackward())
- {
- val |= 0x2;
- }
- if (newPAP.isFVertical())
- {
- val |= 0x1;
- }
- if (newPAP.isFRotateFont())
- {
- val |= 0x4;
- }
- size += SprmUtils.addSprm((short)0x443A, val, null, sprmList);
- }
- if (!Arrays.equals(newPAP.getAnld(), oldPAP.getAnld()))
- {
- size += SprmUtils.addSprm((short)0xC63E, 0, newPAP.getAnld(), sprmList);
+ // sprmPFDyaAfterAuto
+ size += SprmUtils.addSprm((short)0x245C, newPAP.getFDyaAfterAuto(), null, sprmList);
}
if (newPAP.getFInTable() != oldPAP.getFInTable())
{
+ // sprmPFInTable
size += SprmUtils.addSprm((short)0x2416, newPAP.getFInTable(), null, sprmList);
}
if (newPAP.getFTtp() != oldPAP.getFTtp())
{
+ // sprmPFTtp
size += SprmUtils.addSprm((short)0x2417, newPAP.getFTtp(), null, sprmList);
}
- if (newPAP.getWr() != oldPAP.getWr())
- {
- size += SprmUtils.addSprm((short)0x2423, newPAP.getWr(), null, sprmList);
- }
- if (newPAP.getFLocked() != oldPAP.getFLocked())
- {
- size += SprmUtils.addSprm((short)0x2430, newPAP.getFLocked(), null, sprmList);
- }
if (newPAP.getDxaAbs() != oldPAP.getDxaAbs())
{
+ // sprmPDxaAbs
size += SprmUtils.addSprm((short)0x8418, newPAP.getDxaAbs(), null, sprmList);
}
if (newPAP.getDyaAbs() != oldPAP.getDyaAbs())
{
+ // sprmPDyaAbs
size += SprmUtils.addSprm((short)0x8419, newPAP.getDyaAbs(), null, sprmList);
}
if (newPAP.getDxaWidth() != oldPAP.getDxaWidth())
{
+ // sprmPDxaWidth
size += SprmUtils.addSprm((short)0x841A, newPAP.getDxaWidth(), null, sprmList);
}
- if (!newPAP.getBrcTop().equals(oldPAP.getBrcTop()))
+
+ // Page 52 of public specification begins
+ if (newPAP.getWr() != oldPAP.getWr())
{
- int brc = newPAP.getBrcTop().toInt();
- size += SprmUtils.addSprm((short)0x6424, brc, null, sprmList);
+ size += SprmUtils.addSprm((short)0x2423, newPAP.getWr(), null, sprmList);
}
- if (!newPAP.getBrcLeft().equals(oldPAP.getBrcLeft()))
+
+ if (newPAP.getBrcBar().equals(oldPAP.getBrcBar()))
{
- int brc = newPAP.getBrcLeft().toInt();
- size += SprmUtils.addSprm((short)0x6425, brc, null, sprmList);
+ // XXX: sprm code 0x6428 is sprmPBrcBetween80, but accessed property linked to sprmPBrcBar80 (0x6629)
+ int brc = newPAP.getBrcBar().toInt();
+ size += SprmUtils.addSprm((short)0x6428, brc, null, sprmList);
}
if (!newPAP.getBrcBottom().equals(oldPAP.getBrcBottom()))
{
+ // sprmPBrcBottom80
int brc = newPAP.getBrcBottom().toInt();
size += SprmUtils.addSprm((short)0x6426, brc, null, sprmList);
}
+ if (!newPAP.getBrcLeft().equals(oldPAP.getBrcLeft()))
+ {
+ // sprmPBrcLeft80
+ int brc = newPAP.getBrcLeft().toInt();
+ size += SprmUtils.addSprm((short)0x6425, brc, null, sprmList);
+ }
+
+ // Page 53 of public specification begins
if (!newPAP.getBrcRight().equals(oldPAP.getBrcRight()))
{
+ // sprmPBrcRight80
int brc = newPAP.getBrcRight().toInt();
size += SprmUtils.addSprm((short)0x6427, brc, null, sprmList);
}
- if (newPAP.getBrcBar().equals(oldPAP.getBrcBar()))
- {
- int brc = newPAP.getBrcBar().toInt();
- size += SprmUtils.addSprm((short)0x6428, brc, null, sprmList);
- }
- if (newPAP.getDxaFromText() != oldPAP.getDxaFromText())
+ if (!newPAP.getBrcTop().equals(oldPAP.getBrcTop()))
{
- size += SprmUtils.addSprm((short)0x842F, newPAP.getDxaFromText(), null, sprmList);
+ // sprmPBrcTop80
+ int brc = newPAP.getBrcTop().toInt();
+ size += SprmUtils.addSprm((short)0x6424, brc, null, sprmList);
}
- if (newPAP.getDyaFromText() != oldPAP.getDyaFromText())
+ if (newPAP.getFNoAutoHyph() != oldPAP.getFNoAutoHyph())
{
- size += SprmUtils.addSprm((short)0x842E, newPAP.getDyaFromText(), null, sprmList);
+ size += SprmUtils.addSprm((short)0x242A, newPAP.getFNoAutoHyph(), null, sprmList);
}
if (newPAP.getDyaHeight() != oldPAP.getDyaHeight() ||
- newPAP.getFMinHeight() != oldPAP.getFMinHeight())
+ newPAP.getFMinHeight() != oldPAP.getFMinHeight())
{
+ // sprmPWHeightAbs
short val = (short)newPAP.getDyaHeight();
if (newPAP.getFMinHeight() > 0)
{
@@ -260,52 +248,139 @@ public final class ParagraphSprmCompressor
}
size += SprmUtils.addSprm((short)0x442B, val, null, sprmList);
}
+ if (newPAP.getDcs() != null && !newPAP.getDcs().equals(oldPAP.getDcs()))
+ {
+ // sprmPDcs
+ size += SprmUtils.addSprm((short)0x442C, newPAP.getDcs().toShort(), null, sprmList);
+ }
if (newPAP.getShd() != null && !newPAP.getShd().equals(oldPAP.getShd()))
{
+ // sprmPShd80
size += SprmUtils.addSprm((short)0x442D, newPAP.getShd().toShort(), null, sprmList);
}
- if (newPAP.getDcs() != null && !newPAP.getDcs().equals(oldPAP.getDcs()))
+ if (newPAP.getDyaFromText() != oldPAP.getDyaFromText())
{
- size += SprmUtils.addSprm((short)0x442C, newPAP.getDcs().toShort(), null, sprmList);
+ // sprmPDyaFromText
+ size += SprmUtils.addSprm((short)0x842E, newPAP.getDyaFromText(), null, sprmList);
}
- if (newPAP.getLvl() != oldPAP.getLvl())
+ if (newPAP.getDxaFromText() != oldPAP.getDxaFromText())
{
- size += SprmUtils.addSprm((short)0x2640, newPAP.getLvl(), null, sprmList);
+ // sprmPDxaFromText
+ size += SprmUtils.addSprm((short)0x842F, newPAP.getDxaFromText(), null, sprmList);
}
- if (newPAP.getFNumRMIns() != oldPAP.getFNumRMIns())
+ if (newPAP.getFLocked() != oldPAP.getFLocked())
{
- size += SprmUtils.addSprm((short)0x2443, newPAP.getFNumRMIns(), null, sprmList);
+ // sprmPFLocked
+ size += SprmUtils.addSprm((short)0x2430, newPAP.getFLocked(), null, sprmList);
+ }
+ if (newPAP.getFWidowControl() != oldPAP.getFWidowControl())
+ {
+ // sprmPFWidowControl
+ size += SprmUtils.addSprm((short)0x2431, newPAP.getFWidowControl(), null, sprmList);
+ }
+ if (newPAP.getFKinsoku() != oldPAP.getFKinsoku())
+ {
+ size += SprmUtils.addSprm((short)0x2433, newPAP.getDyaBefore(), null, sprmList);
+ }
+ if (newPAP.getFWordWrap() != oldPAP.getFWordWrap())
+ {
+ size += SprmUtils.addSprm((short)0x2434, newPAP.getFWordWrap(), null, sprmList);
+ }
+ if (newPAP.getFOverflowPunct() != oldPAP.getFOverflowPunct())
+ {
+ size += SprmUtils.addSprm((short)0x2435, newPAP.getFOverflowPunct(), null, sprmList);
+ }
+ if (newPAP.getFTopLinePunct() != oldPAP.getFTopLinePunct())
+ {
+ size += SprmUtils.addSprm((short)0x2436, newPAP.getFTopLinePunct(), null, sprmList);
+ }
+ if (newPAP.getFAutoSpaceDE() != oldPAP.getFAutoSpaceDE())
+ {
+ size += SprmUtils.addSprm((short)0x2437, newPAP.getFAutoSpaceDE(), null, sprmList);
+ }
+ if (newPAP.getFAutoSpaceDN() != oldPAP.getFAutoSpaceDN())
+ {
+ size += SprmUtils.addSprm((short)0x2438, newPAP.getFAutoSpaceDN(), null, sprmList);
+ }
+ if (newPAP.getWAlignFont() != oldPAP.getWAlignFont())
+ {
+ size += SprmUtils.addSprm((short)0x4439, newPAP.getWAlignFont(), null, sprmList);
+ }
+
+ // Page 54 of public specification begins
+ if (newPAP.isFBackward() != oldPAP.isFBackward() ||
+ newPAP.isFVertical() != oldPAP.isFVertical() ||
+ newPAP.isFRotateFont() != oldPAP.isFRotateFont())
+ {
+ int val = 0;
+ if (newPAP.isFBackward())
+ {
+ val |= 0x2;
+ }
+ if (newPAP.isFVertical())
+ {
+ val |= 0x1;
+ }
+ if (newPAP.isFRotateFont())
+ {
+ val |= 0x4;
+ }
+ size += SprmUtils.addSprm((short)0x443A, val, null, sprmList);
+ }
+ if (!Arrays.equals(newPAP.getAnld(), oldPAP.getAnld()))
+ {
+ // sprmPAnld80
+ size += SprmUtils.addSprm((short)0xC63E, 0, newPAP.getAnld(), sprmList);
}
if (newPAP.getFPropRMark() != oldPAP.getFPropRMark() ||
- newPAP.getIbstPropRMark() != oldPAP.getIbstPropRMark() ||
- !newPAP.getDttmPropRMark().equals(oldPAP.getDttmPropRMark()))
+ newPAP.getIbstPropRMark() != oldPAP.getIbstPropRMark() ||
+ !newPAP.getDttmPropRMark().equals(oldPAP.getDttmPropRMark()))
{
+ // sprmPPropRMark
byte[] buf = new byte[7];
buf[0] = (byte)newPAP.getFPropRMark();
LittleEndian.putShort(buf, 1, (short)newPAP.getIbstPropRMark());
newPAP.getDttmPropRMark().serialize(buf, 3);
size += SprmUtils.addSprm((short)0xC63F, 0, buf, sprmList);
}
- if (!Arrays.equals(newPAP.getNumrm(), oldPAP.getNumrm()))
+ if (newPAP.getLvl() != oldPAP.getLvl())
{
- size += SprmUtils.addSprm((short)0xC645, 0, newPAP.getNumrm(), sprmList);
+ // sprmPOutLvl
+ size += SprmUtils.addSprm((short)0x2640, newPAP.getLvl(), null, sprmList);
}
-
- if (newPAP.getTableLevel() != oldPAP.getTableLevel())
+ if (newPAP.getFBiDi() != oldPAP.getFBiDi())
{
- size += SprmUtils.addSprm((short)0x6649, newPAP.getTableLevel(), null, sprmList);
+ // sprmPFBiDi
+ size += SprmUtils.addSprm((short)0x2441, newPAP.getFBiDi(), null, sprmList);
+ }
+ if (newPAP.getFNumRMIns() != oldPAP.getFNumRMIns())
+ {
+ // sprmPFNumRMIns
+ size += SprmUtils.addSprm((short)0x2443, newPAP.getFNumRMIns(), null, sprmList);
+ }
+ if (!Arrays.equals(newPAP.getNumrm(), oldPAP.getNumrm()))
+ {
+ // sprmPNumRM
+ size += SprmUtils.addSprm((short)0xC645, 0, newPAP.getNumrm(), sprmList);
}
-
if (newPAP.getEmbeddedCellMark() != oldPAP.getEmbeddedCellMark())
{
+ // sprmPFInnerTableCell
size += SprmUtils.addSprm((short)0x244b, newPAP.getEmbeddedCellMark(), null, sprmList);
}
-
if (newPAP.getFTtpEmbedded() != oldPAP.getFTtpEmbedded())
{
+ // sprmPFInnerTtp
size += SprmUtils.addSprm((short)0x244c, newPAP.getFTtpEmbedded(), null, sprmList);
}
+ // Page 55 of public specification begins
+ if (newPAP.getTableLevel() != oldPAP.getTableLevel())
+ {
+ // sprmPItap
+ size += SprmUtils.addSprm((short)0x6649, newPAP.getTableLevel(), null, sprmList);
+ }
+
return SprmUtils.getGrpprl(sprmList, size);
}
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java b/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java
index 695de59646..b4b322d4ff 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java
@@ -346,8 +346,7 @@ public final class ParagraphSprmUncompressor
}
break;
case 0x41:
-
- // undocumented
+ // sprmPFBiDi
break;
case 0x43:
@@ -387,7 +386,8 @@ public final class ParagraphSprmUncompressor
newPAP.setFTtpEmbedded((byte)sprm.getOperand());
break;
case 0x61:
- // Logicial justification of the paragraph, eg left, centre, right
+ // sprmPJc
+ newPAP.setJustificationLogical((byte) sprm.getOperand());
break;
default:
break;
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java
index 8ab3d904a1..107ca463fc 100644
--- a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java
+++ b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/ParagraphProperties.java
@@ -19,303 +19,272 @@ package org.apache.poi.hwpf.usermodel;
import org.apache.poi.hwpf.model.types.PAPAbstractType;
-public final class ParagraphProperties extends PAPAbstractType implements Cloneable {
-
- public ParagraphProperties()
- {
- field_21_lspd = new LineSpacingDescriptor();
- field_24_phe = new byte[12];
- field_46_brcTop = new BorderCode();
- field_47_brcLeft = new BorderCode();
- field_48_brcBottom = new BorderCode();
- field_49_brcRight = new BorderCode();
- field_50_brcBetween = new BorderCode();
- field_51_brcBar = new BorderCode();
- field_60_anld = new byte[84];
- this.field_17_fWidowControl = 1;
- this.field_21_lspd.setMultiLinespace((short)1);
- this.field_21_lspd.setDyaLine((short)240);
- this.field_58_lvl = (byte)9;
- this.field_66_rgdxaTab = new int[0];
- this.field_67_rgtbd = new byte[0];
- this.field_63_dttmPropRMark = new DateAndTime();
-
- }
-
- public int getJustification()
- {
- return super.getJc();
- }
-
- public void setJustification(byte jc)
- {
- super.setJc(jc);
- }
-
- public boolean keepOnPage()
- {
- return super.getFKeep() != 0;
- }
-
- public void setKeepOnPage(boolean fKeep)
- {
- super.setFKeep((byte)(fKeep ? 1 : 0));
- }
-
- public boolean keepWithNext()
- {
- return super.getFKeepFollow() != 0;
- }
-
- public void setKeepWithNext(boolean fKeepFollow)
- {
- super.setFKeepFollow((byte)(fKeepFollow ? 1 : 0));
- }
-
- public boolean pageBreakBefore()
- {
- return super.getFPageBreakBefore() != 0;
- }
-
- public void setPageBreakBefore(boolean fPageBreak)
- {
- super.setFPageBreakBefore((byte)(fPageBreak ? 1 : 0));
- }
-
- public boolean isLineNotNumbered()
- {
- return super.getFNoLnn() != 0;
- }
-
- public void setLineNotNumbered(boolean fNoLnn)
- {
- super.setFNoLnn((byte)(fNoLnn ? 1 : 0));
- }
-
- public boolean isSideBySide()
- {
- return super.getFSideBySide() != 0;
- }
-
- public void setSideBySide(boolean fSideBySide)
- {
- super.setFSideBySide((byte)(fSideBySide ? 1 : 0));
- }
-
- public boolean isAutoHyphenated()
- {
- return super.getFNoAutoHyph() == 0;
- }
-
- public void setAutoHyphenated(boolean auto)
- {
- super.setFNoAutoHyph((byte)(!auto ? 1 : 0));
- }
-
- public boolean isWidowControlled()
- {
- return super.getFWidowControl() != 0;
- }
-
- public void setWidowControl(boolean widowControl)
- {
- super.setFWidowControl((byte)(widowControl ? 1 : 0));
- }
-
- public int getIndentFromRight()
- {
- return super.getDxaRight();
- }
-
- public void setIndentFromRight(int dxaRight)
- {
- super.setDxaRight(dxaRight);
- }
-
- public int getIndentFromLeft()
- {
- return super.getDxaLeft();
- }
-
- public void setIndentFromLeft(int dxaLeft)
- {
- super.setDxaLeft(dxaLeft);
- }
-
- public int getFirstLineIndent()
- {
- return super.getDxaLeft1();
- }
-
- public void setFirstLineIndent(int first)
- {
- super.setDxaLeft1(first);
- }
-
- public LineSpacingDescriptor getLineSpacing()
- {
- return super.getLspd();
- }
-
- public void setLineSpacing(LineSpacingDescriptor lspd)
- {
- super.setLspd(lspd);
- }
-
- public int getSpacingBefore()
- {
- return super.getDyaBefore();
- }
-
- public void setSpacingBefore(int before)
- {
- super.setDyaBefore(before);
- }
-
- public int getSpacingAfter()
- {
- return super.getDyaAfter();
- }
-
- public void setSpacingAfter(int after)
- {
- super.setDyaAfter(after);
- }
-
- public boolean isKinsoku()
- {
- return super.getFKinsoku() != 0;
- }
-
- public void setKinsoku(boolean kinsoku)
- {
- super.setFKinsoku((byte)(kinsoku ? 1 : 0));
- }
-
- public boolean isWordWrapped()
- {
- return super.getFWordWrap() != 0;
- }
-
- public void setWordWrapped(boolean wrap)
- {
- super.setFWordWrap((byte)(wrap ? 1 : 0));
- }
-
- public int getFontAlignment()
- {
- return super.getWAlignFont();
- }
-
- public void setFontAlignment(int align)
- {
- super.setWAlignFont(align);
- }
-
- public boolean isVertical()
- {
- return super.isFVertical();
- }
-
- public void setVertical(boolean vertical)
- {
- super.setFVertical(vertical);
- }
-
- public boolean isBackward()
- {
- return super.isFBackward();
- }
-
- public void setBackward(boolean bward)
- {
- super.setFBackward(bward);
- }
-
- public BorderCode getTopBorder()
- {
- return super.getBrcTop();
- }
-
- public void setTopBorder(BorderCode top)
- {
- super.setBrcTop(top);
- }
-
- public BorderCode getLeftBorder()
- {
- return super.getBrcLeft();
- }
-
- public void setLeftBorder(BorderCode left)
- {
- super.setBrcLeft(left);
- }
-
- public BorderCode getBottomBorder()
- {
- return super.getBrcBottom();
- }
-
- public void setBottomBorder(BorderCode bottom)
- {
- super.setBrcBottom(bottom);
- }
-
- public BorderCode getRightBorder()
- {
- return super.getBrcRight();
- }
-
- public void setRightBorder(BorderCode right)
- {
- super.setBrcRight(right);
- }
-
- public BorderCode getBarBorder()
- {
- return super.getBrcBar();
- }
-
- public void setBarBorder(BorderCode bar)
- {
- super.setBrcBar(bar);
- }
-
- public ShadingDescriptor getShading()
- {
- return super.getShd();
- }
-
- public void setShading(ShadingDescriptor shd)
- {
- super.setShd(shd);
- }
-
- public DropCapSpecifier getDropCap()
- {
- return super.getDcs();
- }
-
- public void setDropCap(DropCapSpecifier dcs)
- {
- super.setDcs(dcs);
- }
-
- public Object clone()
- throws CloneNotSupportedException
- {
- ParagraphProperties pp = (ParagraphProperties)super.clone();
- pp.field_21_lspd = (LineSpacingDescriptor)field_21_lspd.clone();
- pp.field_24_phe = field_24_phe.clone();
- pp.field_46_brcTop = (BorderCode)field_46_brcTop.clone();
- pp.field_47_brcLeft = (BorderCode)field_47_brcLeft.clone();
- pp.field_48_brcBottom = (BorderCode)field_48_brcBottom.clone();
- pp.field_49_brcRight = (BorderCode)field_49_brcRight.clone();
- pp.field_50_brcBetween = (BorderCode)field_50_brcBetween.clone();
- pp.field_51_brcBar = (BorderCode)field_51_brcBar.clone();
- pp.field_60_anld = field_60_anld.clone();
- return pp;
- }
+public final class ParagraphProperties extends PAPAbstractType implements
+ Cloneable {
+
+ private boolean jcLogical = false;
+
+ public ParagraphProperties() {
+ setLspd(new LineSpacingDescriptor());
+ setPhe(new byte[12]);
+ setBrcTop(new BorderCode());
+ setBrcLeft(new BorderCode());
+ setBrcBottom(new BorderCode());
+ setBrcRight(new BorderCode());
+ setBrcBetween(new BorderCode());
+ setBrcBar(new BorderCode());
+ setAnld(new byte[84]);
+
+ setWidowControl(true);
+ getLspd().setMultiLinespace((short) 1);
+ getLspd().setDyaLine((short) 240);
+ setLvl((byte) 9);
+ setRgdxaTab(new int[0]);
+ setRgtbd(new byte[0]);
+ setDttmPropRMark(new DateAndTime());
+ }
+
+ public int getJustification() {
+ if (jcLogical) {
+ if (getFBiDi() == 0) {
+ return getJc();
+ }
+
+ switch (getJc()) {
+ case 0:
+ return 2;
+ case 2:
+ return 0;
+ default:
+ return getJc();
+ }
+ }
+
+ return getJc();
+ }
+
+ public void setJustification(byte jc) {
+ super.setJc(jc);
+ this.jcLogical = false;
+ }
+
+ public void setJustificationLogical(byte jc) {
+ super.setJc(jc);
+ this.jcLogical = true;
+ }
+
+ public boolean keepOnPage() {
+ return super.getFKeep() != 0;
+ }
+
+ public void setKeepOnPage(boolean fKeep) {
+ super.setFKeep((byte) (fKeep ? 1 : 0));
+ }
+
+ public boolean keepWithNext() {
+ return super.getFKeepFollow() != 0;
+ }
+
+ public void setKeepWithNext(boolean fKeepFollow) {
+ super.setFKeepFollow((byte) (fKeepFollow ? 1 : 0));
+ }
+
+ public boolean pageBreakBefore() {
+ return super.getFPageBreakBefore() != 0;
+ }
+
+ public void setPageBreakBefore(boolean fPageBreak) {
+ super.setFPageBreakBefore((byte) (fPageBreak ? 1 : 0));
+ }
+
+ public boolean isLineNotNumbered() {
+ return super.getFNoLnn() != 0;
+ }
+
+ public void setLineNotNumbered(boolean fNoLnn) {
+ super.setFNoLnn((byte) (fNoLnn ? 1 : 0));
+ }
+
+ public boolean isSideBySide() {
+ return super.getFSideBySide() != 0;
+ }
+
+ public void setSideBySide(boolean fSideBySide) {
+ super.setFSideBySide((byte) (fSideBySide ? 1 : 0));
+ }
+
+ public boolean isAutoHyphenated() {
+ return super.getFNoAutoHyph() == 0;
+ }
+
+ public void setAutoHyphenated(boolean auto) {
+ super.setFNoAutoHyph((byte) (!auto ? 1 : 0));
+ }
+
+ public boolean isWidowControlled() {
+ return super.getFWidowControl() != 0;
+ }
+
+ public void setWidowControl(boolean widowControl) {
+ super.setFWidowControl((byte) (widowControl ? 1 : 0));
+ }
+
+ public int getIndentFromRight() {
+ return super.getDxaRight();
+ }
+
+ public void setIndentFromRight(int dxaRight) {
+ super.setDxaRight(dxaRight);
+ }
+
+ public int getIndentFromLeft() {
+ return super.getDxaLeft();
+ }
+
+ public void setIndentFromLeft(int dxaLeft) {
+ super.setDxaLeft(dxaLeft);
+ }
+
+ public int getFirstLineIndent() {
+ return super.getDxaLeft1();
+ }
+
+ public void setFirstLineIndent(int first) {
+ super.setDxaLeft1(first);
+ }
+
+ public LineSpacingDescriptor getLineSpacing() {
+ return super.getLspd();
+ }
+
+ public void setLineSpacing(LineSpacingDescriptor lspd) {
+ super.setLspd(lspd);
+ }
+
+ public int getSpacingBefore() {
+ return super.getDyaBefore();
+ }
+
+ public void setSpacingBefore(int before) {
+ super.setDyaBefore(before);
+ }
+
+ public int getSpacingAfter() {
+ return super.getDyaAfter();
+ }
+
+ public void setSpacingAfter(int after) {
+ super.setDyaAfter(after);
+ }
+
+ public boolean isKinsoku() {
+ return super.getFKinsoku() != 0;
+ }
+
+ public void setKinsoku(boolean kinsoku) {
+ super.setFKinsoku((byte) (kinsoku ? 1 : 0));
+ }
+
+ public boolean isWordWrapped() {
+ return super.getFWordWrap() != 0;
+ }
+
+ public void setWordWrapped(boolean wrap) {
+ super.setFWordWrap((byte) (wrap ? 1 : 0));
+ }
+
+ public int getFontAlignment() {
+ return super.getWAlignFont();
+ }
+
+ public void setFontAlignment(int align) {
+ super.setWAlignFont(align);
+ }
+
+ public boolean isVertical() {
+ return super.isFVertical();
+ }
+
+ public void setVertical(boolean vertical) {
+ super.setFVertical(vertical);
+ }
+
+ public boolean isBackward() {
+ return super.isFBackward();
+ }
+
+ public void setBackward(boolean bward) {
+ super.setFBackward(bward);
+ }
+
+ public BorderCode getTopBorder() {
+ return super.getBrcTop();
+ }
+
+ public void setTopBorder(BorderCode top) {
+ super.setBrcTop(top);
+ }
+
+ public BorderCode getLeftBorder() {
+ return super.getBrcLeft();
+ }
+
+ public void setLeftBorder(BorderCode left) {
+ super.setBrcLeft(left);
+ }
+
+ public BorderCode getBottomBorder() {
+ return super.getBrcBottom();
+ }
+
+ public void setBottomBorder(BorderCode bottom) {
+ super.setBrcBottom(bottom);
+ }
+
+ public BorderCode getRightBorder() {
+ return super.getBrcRight();
+ }
+
+ public void setRightBorder(BorderCode right) {
+ super.setBrcRight(right);
+ }
+
+ public BorderCode getBarBorder() {
+ return super.getBrcBar();
+ }
+
+ public void setBarBorder(BorderCode bar) {
+ super.setBrcBar(bar);
+ }
+
+ public ShadingDescriptor getShading() {
+ return super.getShd();
+ }
+
+ public void setShading(ShadingDescriptor shd) {
+ super.setShd(shd);
+ }
+
+ public DropCapSpecifier getDropCap() {
+ return super.getDcs();
+ }
+
+ public void setDropCap(DropCapSpecifier dcs) {
+ super.setDcs(dcs);
+ }
+
+ public Object clone() throws CloneNotSupportedException {
+ ParagraphProperties pp = (ParagraphProperties) super.clone();
+ pp.setLspd((LineSpacingDescriptor) this.getLspd().clone());
+ pp.setPhe(getPhe().clone());
+ pp.setBrcTop((BorderCode) getBrcTop().clone());
+ pp.setBrcLeft((BorderCode) getBrcLeft().clone());
+ pp.setBrcBottom((BorderCode) getBrcBottom().clone());
+ pp.setBrcRight((BorderCode) getBrcRight().clone());
+ pp.setBrcBetween((BorderCode) getBrcBetween().clone());
+ pp.setBrcBar((BorderCode) getBrcBar().clone());
+ pp.setAnld(getAnld().clone());
+ return pp;
+ }
}
diff --git a/src/types/definitions/pap_type.xml b/src/types/definitions/pap_type.xml
index 0f26352f94..e83ccf6706 100644
--- a/src/types/definitions/pap_type.xml
+++ b/src/types/definitions/pap_type.xml
@@ -23,33 +23,56 @@
<description>Paragraph Properties.</description>
<author>S. Ryan Ackley</author>
<fields>
- <field type="int" size="2" name="istd"/>
- <field type="byte" size="1" name="jc"/>
+ <field type="int" size="2" name="istd" description="Index to style descriptor"/>
+ <field type="byte" size="1" name="fSideBySide"/>
<field type="byte" size="1" name="fKeep"/>
<field type="byte" size="1" name="fKeepFollow"/>
<field type="byte" size="1" name="fPageBreakBefore"/>
+
+ <field type="byte" size="1" name="brcl" description="Border line style"/>
+ <field type="byte" size="1" name="brcp" description="Rectangle border codes"/>
+
+ <field type="byte" size="1" name="ilvl" description="List level if non-zero"/>
+ <!-- According to PAPX doc pointer is byte, but according to sprmPIlfo documentation pointer is short,
+ we will use int -->
+ <field type="int" size="2" name="ilfo" description="1-based index into the pllfo (lists structure), if non-zero"/>
+ <field type="byte" size="1" name="fNoLnn" description="No line numbering"/>
+
+ <field type="LineSpacingDescriptor" size="4" name="lspd" description="Line spacing descriptor"/>
+
+ <field type="int" size="4" name="dyaBefore" description="Space before paragraph"/>
+ <field type="int" size="4" name="dyaAfter" description="Space after paragraph"/>
+
+ <!-- Not documented in PAP, but referenced by SPRM doc -->
+ <field type="byte" size="1" name="fInTable" description="Paragraph is in table flag"/>
+ <field type="byte" size="1" name="finTableW97" description="Archaic paragraph is in table flag"/>
+ <field type="byte" size="1" name="fTtp" description="Table trailer paragraph (last in table row)"/>
+
+ <field type="int" size="4" name="dxaAbs"/>
+ <field type="int" size="4" name="dyaAbs"/>
+ <field type="int" size="4" name="dxaWidth"/>
+
<field type="byte" size="1" name="fBrLnAbove"/>
<field type="byte" size="1" name="fBrLnBelow"/>
+
<field type="byte" size="1" name="pcVert"/>
<field type="byte" size="1" name="pcHorz"/>
- <field type="byte" size="1" name="brcp"/>
- <field type="byte" size="1" name="brcl"/>
- <field type="byte" size="1" name="ilvl"/>
- <field type="byte" size="1" name="fNoLnn"/>
- <field type="int" size="2" name="ilfo"/>
- <field type="byte" size="1" name="fSideBySide"/>
+
+ <field type="byte" size="1" name="wr"/>
+
<field type="byte" size="1" name="fNoAutoHyph"/>
+
+ <!-- wHeightAbs? -->
+ <field type="int" size="2" name="dyaHeight"/>
+ <field type="byte" size="1" name="fMinHeight"/>
+
+ <field type="DropCapSpecifier" size="2" name="dcs"/>
+
+ <field type="int" size="4" name="dyaFromText" description="Vertical distance between text and absolutely positioned object"/>
+ <field type="int" size="4" name="dxaFromText" description="Horizontal distance between text and absolutely positioned object"/>
+
+ <field type="byte" size="1" name="fLocked"/>
<field type="byte" size="1" name="fWidowControl"/>
- <field type="int" size="4" name="dxaRight"/>
- <field type="int" size="4" name="dxaLeft"/>
- <field type="int" size="4" name="dxaLeft1"/>
- <field type="LineSpacingDescriptor" size="4" name="lspd"/>
- <field type="int" size="4" name="dyaBefore"/>
- <field type="int" size="4" name="dyaAfter"/>
- <field type="byte[]" size="12" name="phe"/>
- <field type="byte" size="1" name="fCrLf"/>
- <field type="byte" size="1" name="fUsePgsuSettings"/>
- <field type="byte" size="1" name="fAdjustRight"/>
<field type="byte" size="1" name="fKinsoku"/>
<field type="byte" size="1" name="fWordWrap"/>
<field type="byte" size="1" name="fOverflowPunct"/>
@@ -62,38 +85,57 @@
<bit number="1" mask="0x0002" name="fBackward"/>
<bit number="2" mask="0x0004" name="fRotateFont"/>
</field>
+ <field type="byte" size="1" name="fVertical"/>
<field type="byte" size="1" name="fBackward"/>
<field type="byte" size="1" name="fRotateFont"/>
- <field type="byte" size="1" name="fInTable"/>
- <field type="byte" size="1" name="fTtp"/>
- <field type="byte" size="1" name="wr"/>
- <field type="byte" size="1" name="fLocked"/>
- <field type="byte[]" size="4" name="ptap"/>
- <field type="int" size="4" name="dxaAbs"/>
- <field type="int" size="4" name="dyaAbs"/>
- <field type="int" size="4" name="dxaWidth"/>
+
+ <field type="byte" size="1" name="lvl"/>
+ <field type="byte" size="1" name="fBiDi"/>
+ <field type="byte" size="1" name="fNumRMIns"/>
+ <field type="byte" size="1" name="fCrLf"/>
+ <field type="byte" size="1" name="fUsePgsuSettings"/>
+ <field type="byte" size="1" name="fAdjustRight"/>
+
+ <!-- itap? -->
+ <!-- fInnerTableCell? -->
+ <!-- fOpenTch? -->
+
+ <field type="short" size="2" name="dxcRight" description="Right indent in character units"/>
+ <field type="short" size="2" name="dxcLeft" description="Left indent in character units"/>
+ <field type="short" size="2" name="dxcLeft1" description="First line indent in character units"/>
+
+ <field type="byte" size="1" name="fDyaBeforeAuto" description="Vertical spacing before is automatic"/>
+ <field type="byte" size="1" name="fDyaAfterAuto" description="Vertical spacing after is automatic"/>
+
+ <field type="int" size="4" name="dxaRight"/>
+ <field type="int" size="4" name="dxaLeft"/>
+ <field type="int" size="4" name="dxaLeft1"/>
+
+ <field type="byte" size="1" name="jc"/>
+
+ <field type="byte" size="1" name="fNoAllowOverlap"/>
+
<field type="BorderCode" size="4" name="brcTop"/>
<field type="BorderCode" size="4" name="brcLeft"/>
<field type="BorderCode" size="4" name="brcBottom"/>
<field type="BorderCode" size="4" name="brcRight"/>
<field type="BorderCode" size="4" name="brcBetween"/>
<field type="BorderCode" size="4" name="brcBar"/>
- <field type="int" size="4" name="dxaFromText"/>
- <field type="int" size="4" name="dyaFromText"/>
- <field type="int" size="2" name="dyaHeight"/>
- <field type="byte" size="1" name="fMinHeight"/>
+
<field type="ShadingDescriptor" size="2" name="shd"/>
- <field type="DropCapSpecifier" size="2" name="dcs"/>
- <field type="byte" size="1" name="lvl"/>
- <field type="byte" size="1" name="fNumRMIns"/>
<field type="byte[]" size="84" name="anld"/>
+ <field type="byte[]" size="12" name="phe"/>
<field type="int" size="1" name="fPropRMark"/>
<field type="int" size="2" name="ibstPropRMark"/>
<field type="DateAndTime" size="4" name="dttmPropRMark"/>
- <field type="byte[]" size="128" name="numrm"/>
+
<field type="int" size="2" name="itbdMac"/>
<field type="int[]" size="128" name="rgdxaTab"/>
<field type="byte[]" size="128" name="rgtbd"/>
+ <field type="byte[]" size="128" name="numrm"/>
+ <field type="byte[]" size="4" name="ptap"/>
+
+ <!-- Unknown old fields -->
<field type="byte" size="1" name="tableLevel"/>
<field type="byte" size="1" name="fTtpEmbedded"/>
<field type="byte" size="1" name="embeddedCellMark"/>