diff options
author | Yegor Kozlov <yegor@apache.org> | 2011-06-18 08:57:10 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2011-06-18 08:57:10 +0000 |
commit | bc8498d5964dbc6d56eb11d41dec8481cd5d0587 (patch) | |
tree | 48057d6da700af798eab9ab3bfa508ff8de0c9a1 | |
parent | f1ec56abe207b72ea7109fe4382062c1e83f1450 (diff) | |
download | poi-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
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"/> |