View | Details | Raw Unified | Return to bug 51390
Collapse All | Expand All

(-)src/org/apache/poi/hwpf/sprm/ParagraphSprmCompressor.java (-123 / +198 lines)
Lines 34-46 Link Here
34
  public static byte[] compressParagraphProperty(ParagraphProperties newPAP,
34
  public static byte[] compressParagraphProperty(ParagraphProperties newPAP,
35
                                                 ParagraphProperties oldPAP)
35
                                                 ParagraphProperties oldPAP)
36
  {
36
  {
37
    // page numbers links to Word97-2007BinaryFileFormat(doc)Specification.pdf, accessible from microsoft.com 
38
37
    List sprmList = new ArrayList();
39
    List sprmList = new ArrayList();
38
    int size = 0;
40
    int size = 0;
39
41
42
    // Page 50 of public specification begins
43
    if (newPAP.getIstd() != oldPAP.getIstd())
44
    {
45
      // sprmPIstd 
46
      size += SprmUtils.addSprm((short)0x4600, newPAP.getIstd(), null, sprmList);
47
    }
40
    if (newPAP.getJc() != oldPAP.getJc())
48
    if (newPAP.getJc() != oldPAP.getJc())
41
    {
49
    {
50
      // sprmPJc80 
42
      size += SprmUtils.addSprm((short)0x2403, newPAP.getJc(), null, sprmList);
51
      size += SprmUtils.addSprm((short)0x2403, newPAP.getJc(), null, sprmList);
43
    }
52
    }
53
    if (newPAP.getFSideBySide() != oldPAP.getFSideBySide())
54
    {
55
      // sprmPFSideBySide 
56
      size += SprmUtils.addSprm((short)0x2404, newPAP.getFSideBySide(), null, sprmList);
57
    }
44
    if (newPAP.getFKeep() != oldPAP.getFKeep())
58
    if (newPAP.getFKeep() != oldPAP.getFKeep())
45
    {
59
    {
46
      size += SprmUtils.addSprm((short)0x2405, newPAP.getFKeep(), null, sprmList);
60
      size += SprmUtils.addSprm((short)0x2405, newPAP.getFKeep(), null, sprmList);
Lines 73-126 Link Here
73
    {
87
    {
74
      size += SprmUtils.addSprm((short)0x240C, newPAP.getFNoLnn(), null, sprmList);
88
      size += SprmUtils.addSprm((short)0x240C, newPAP.getFNoLnn(), null, sprmList);
75
    }
89
    }
76
    if (newPAP.getFSideBySide() != oldPAP.getFSideBySide())
90
    if (newPAP.getItbdMac() != oldPAP.getItbdMac() ||
77
    {
91
            !Arrays.equals(newPAP.getRgdxaTab(), oldPAP.getRgdxaTab()) ||
78
      size += SprmUtils.addSprm((short)0x2404, newPAP.getFSideBySide(), null, sprmList);
92
            !Arrays.equals(newPAP.getRgtbd(), oldPAP.getRgtbd()))
79
    }
93
        {
80
    if (newPAP.getFNoAutoHyph() != oldPAP.getFNoAutoHyph())
94
          /** @todo revisit this */
81
    {
95
//          byte[] oldTabArray = oldPAP.getRgdxaTab();
82
      size += SprmUtils.addSprm((short)0x242A, newPAP.getFNoAutoHyph(), null, sprmList);
96
//          byte[] newTabArray = newPAP.getRgdxaTab();
97
//          byte[] newTabDescriptors = newPAP.getRgtbd();
98
//          byte[] varParam = new byte[2 + oldTabArray.length + newTabArray.length +
99
//                                     newTabDescriptors.length];
100
//          varParam[0] = (byte)(oldTabArray.length/2);
101
//          int offset = 1;
102
//          System.arraycopy(oldTabArray, 0, varParam, offset, oldTabArray.length);
103
//          offset += oldTabArray.length;
104
//          varParam[offset] = (byte)(newTabArray.length/2);
105
//          offset += 1;
106
//          System.arraycopy(newTabArray, 0, varParam, offset, newTabArray.length);
107
//          offset += newTabArray.length;
108
//          System.arraycopy(newTabDescriptors, 0, varParam, offset, newTabDescriptors.length);
109
    //
110
//          size += SprmUtils.addSprm((short)0xC60D, 0, varParam, sprmList);
83
    }
111
    }
84
    if (newPAP.getFWidowControl() != oldPAP.getFWidowControl())
112
    if (newPAP.getDxaLeft() != oldPAP.getDxaLeft())
85
    {
113
    {
86
      size += SprmUtils.addSprm((short)0x2431, newPAP.getFWidowControl(), null, sprmList);
114
      // sprmPDxaLeft80 
115
      size += SprmUtils.addSprm((short)0x840F, newPAP.getDxaLeft(), null, sprmList);
87
    }
116
    }
88
    if (newPAP.getItbdMac() != oldPAP.getItbdMac() ||
117
89
        !Arrays.equals(newPAP.getRgdxaTab(), oldPAP.getRgdxaTab()) ||
118
    // Page 51 of public specification begins
90
        !Arrays.equals(newPAP.getRgtbd(), oldPAP.getRgtbd()))
119
    if (newPAP.getDxaLeft1() != oldPAP.getDxaLeft1())
91
    {
120
    {
92
      /** @todo revisit this */
121
      // sprmPDxaLeft180 
93
//      byte[] oldTabArray = oldPAP.getRgdxaTab();
122
      size += SprmUtils.addSprm((short)0x8411, newPAP.getDxaLeft1(), null, sprmList);
94
//      byte[] newTabArray = newPAP.getRgdxaTab();
95
//      byte[] newTabDescriptors = newPAP.getRgtbd();
96
//      byte[] varParam = new byte[2 + oldTabArray.length + newTabArray.length +
97
//                                 newTabDescriptors.length];
98
//      varParam[0] = (byte)(oldTabArray.length/2);
99
//      int offset = 1;
100
//      System.arraycopy(oldTabArray, 0, varParam, offset, oldTabArray.length);
101
//      offset += oldTabArray.length;
102
//      varParam[offset] = (byte)(newTabArray.length/2);
103
//      offset += 1;
104
//      System.arraycopy(newTabArray, 0, varParam, offset, newTabArray.length);
105
//      offset += newTabArray.length;
106
//      System.arraycopy(newTabDescriptors, 0, varParam, offset, newTabDescriptors.length);
107
//
108
//      size += SprmUtils.addSprm((short)0xC60D, 0, varParam, sprmList);
109
    }
123
    }
110
    if (newPAP.getDxaRight() != oldPAP.getDxaRight())
124
    if (newPAP.getDxaRight() != oldPAP.getDxaRight())
111
    {
125
    {
126
      // sprmPDxaRight80  
112
      size += SprmUtils.addSprm((short)0x840E, newPAP.getDxaRight(), null, sprmList);
127
      size += SprmUtils.addSprm((short)0x840E, newPAP.getDxaRight(), null, sprmList);
113
    }
128
    }
114
    if (newPAP.getDxaLeft() != oldPAP.getDxaLeft())
129
    if (newPAP.getDxcLeft() != oldPAP.getDxcLeft())
115
    {
130
    {
116
      size += SprmUtils.addSprm((short)0x840F, newPAP.getDxaLeft(), null, sprmList);
131
      // sprmPDxcLeft
132
      size += SprmUtils.addSprm((short)0x4456, newPAP.getDxcLeft(), null, sprmList);
117
    }
133
    }
118
    if (newPAP.getDxaLeft1() != oldPAP.getDxaLeft1())
134
    if (newPAP.getDxcLeft1() != oldPAP.getDxcLeft1())
119
    {
135
    {
120
      size += SprmUtils.addSprm((short)0x8411, newPAP.getDxaLeft1(), null, sprmList);
136
      // sprmPDxcLeft1
137
      size += SprmUtils.addSprm((short)0x4457, newPAP.getDxcLeft1(), null, sprmList);
138
    }
139
    if (newPAP.getDxcRight() != oldPAP.getDxcRight())
140
    {
141
      // sprmPDxcRight
142
      size += SprmUtils.addSprm((short)0x4455, newPAP.getDxcRight(), null, sprmList);
121
    }
143
    }
122
    if (!newPAP.getLspd().equals(oldPAP.getLspd()))
144
    if (!newPAP.getLspd().equals(oldPAP.getLspd()))
123
    {
145
    {
146
      // sprmPDyaLine
124
      byte[] buf = new byte[4];
147
      byte[] buf = new byte[4];
125
      newPAP.getLspd().serialize(buf, 0);
148
      newPAP.getLspd().serialize(buf, 0);
126
149
Lines 128-258 Link Here
128
    }
151
    }
129
    if (newPAP.getDyaBefore() != oldPAP.getDyaBefore())
152
    if (newPAP.getDyaBefore() != oldPAP.getDyaBefore())
130
    {
153
    {
154
      // sprmPDyaBefore
131
      size += SprmUtils.addSprm((short)0xA413, newPAP.getDyaBefore(), null, sprmList);
155
      size += SprmUtils.addSprm((short)0xA413, newPAP.getDyaBefore(), null, sprmList);
132
    }
156
    }
133
    if (newPAP.getDyaAfter() != oldPAP.getDyaAfter())
157
    if (newPAP.getDyaAfter() != oldPAP.getDyaAfter())
134
    {
158
    {
159
      // sprmPDyaAfter
135
      size += SprmUtils.addSprm((short)0xA414, newPAP.getDyaAfter(), null, sprmList);
160
      size += SprmUtils.addSprm((short)0xA414, newPAP.getDyaAfter(), null, sprmList);
136
    }
161
    }
137
    if (newPAP.getDyaBefore() != oldPAP.getDyaBefore())
162
    if (newPAP.getFDyaBeforeAuto() != oldPAP.getFDyaBeforeAuto())
138
    {
139
      size += SprmUtils.addSprm((short)0x2404, newPAP.getDyaBefore(), null, sprmList);
140
    }
141
    if (newPAP.getFKinsoku() != oldPAP.getFKinsoku())
142
    {
143
      size += SprmUtils.addSprm((short)0x2433, newPAP.getDyaBefore(), null, sprmList);
144
    }
145
    if (newPAP.getFWordWrap() != oldPAP.getFWordWrap())
146
    {
163
    {
147
      size += SprmUtils.addSprm((short)0x2434, newPAP.getFWordWrap(), null, sprmList);
164
      // sprmPFDyaBeforeAuto
165
      size += SprmUtils.addSprm((short)0x245B, newPAP.getFDyaBeforeAuto(), null, sprmList);
148
    }
166
    }
149
    if (newPAP.getFOverflowPunct() != oldPAP.getFOverflowPunct())
167
    if (newPAP.getFDyaAfterAuto() != oldPAP.getFDyaAfterAuto())
150
    {
168
    {
151
      size += SprmUtils.addSprm((short)0x2435, newPAP.getFOverflowPunct(), null, sprmList);
169
      // sprmPFDyaAfterAuto
152
    }
170
      size += SprmUtils.addSprm((short)0x245C, newPAP.getFDyaAfterAuto(), null, sprmList);
153
    if (newPAP.getFTopLinePunct() != oldPAP.getFTopLinePunct())
154
    {
155
      size += SprmUtils.addSprm((short)0x2436, newPAP.getFTopLinePunct(), null, sprmList);
156
    }
157
    if (newPAP.getFAutoSpaceDE() != oldPAP.getFAutoSpaceDE())
158
    {
159
      size += SprmUtils.addSprm((short)0x2437, newPAP.getFAutoSpaceDE(), null, sprmList);
160
    }
161
    if (newPAP.getFAutoSpaceDN() != oldPAP.getFAutoSpaceDN())
162
    {
163
      size += SprmUtils.addSprm((short)0x2438, newPAP.getFAutoSpaceDN(), null, sprmList);
164
    }
165
    if (newPAP.getWAlignFont() != oldPAP.getWAlignFont())
166
    {
167
      size += SprmUtils.addSprm((short)0x4439, newPAP.getWAlignFont(), null, sprmList);
168
    }
169
    if (newPAP.isFBackward() != oldPAP.isFBackward() ||
170
        newPAP.isFVertical() != oldPAP.isFVertical() ||
171
        newPAP.isFRotateFont() != oldPAP.isFRotateFont())
172
    {
173
      int val = 0;
174
      if (newPAP.isFBackward())
175
      {
176
        val |= 0x2;
177
      }
178
      if (newPAP.isFVertical())
179
      {
180
        val |= 0x1;
181
      }
182
      if (newPAP.isFRotateFont())
183
      {
184
        val |= 0x4;
185
      }
186
      size += SprmUtils.addSprm((short)0x443A, val, null, sprmList);
187
    }
188
    if (!Arrays.equals(newPAP.getAnld(), oldPAP.getAnld()))
189
    {
190
      size += SprmUtils.addSprm((short)0xC63E, 0, newPAP.getAnld(), sprmList);
191
    }
171
    }
192
    if (newPAP.getFInTable() != oldPAP.getFInTable())
172
    if (newPAP.getFInTable() != oldPAP.getFInTable())
193
    {
173
    {
174
      // sprmPFInTable
194
      size += SprmUtils.addSprm((short)0x2416, newPAP.getFInTable(), null, sprmList);
175
      size += SprmUtils.addSprm((short)0x2416, newPAP.getFInTable(), null, sprmList);
195
    }
176
    }
196
    if (newPAP.getFTtp() != oldPAP.getFTtp())
177
    if (newPAP.getFTtp() != oldPAP.getFTtp())
197
    {
178
    {
179
      // sprmPFTtp
198
      size += SprmUtils.addSprm((short)0x2417, newPAP.getFTtp(), null, sprmList);
180
      size += SprmUtils.addSprm((short)0x2417, newPAP.getFTtp(), null, sprmList);
199
    }
181
    }
200
    if (newPAP.getWr() != oldPAP.getWr())
201
    {
202
      size += SprmUtils.addSprm((short)0x2423, newPAP.getWr(), null, sprmList);
203
    }
204
    if (newPAP.getFLocked() != oldPAP.getFLocked())
205
    {
206
      size += SprmUtils.addSprm((short)0x2430, newPAP.getFLocked(), null, sprmList);
207
    }
208
    if (newPAP.getDxaAbs() != oldPAP.getDxaAbs())
182
    if (newPAP.getDxaAbs() != oldPAP.getDxaAbs())
209
    {
183
    {
184
      // sprmPDxaAbs
210
      size += SprmUtils.addSprm((short)0x8418, newPAP.getDxaAbs(), null, sprmList);
185
      size += SprmUtils.addSprm((short)0x8418, newPAP.getDxaAbs(), null, sprmList);
211
    }
186
    }
212
    if (newPAP.getDyaAbs() != oldPAP.getDyaAbs())
187
    if (newPAP.getDyaAbs() != oldPAP.getDyaAbs())
213
    {
188
    {
189
      // sprmPDyaAbs
214
      size += SprmUtils.addSprm((short)0x8419, newPAP.getDyaAbs(), null, sprmList);
190
      size += SprmUtils.addSprm((short)0x8419, newPAP.getDyaAbs(), null, sprmList);
215
    }
191
    }
216
    if (newPAP.getDxaWidth() != oldPAP.getDxaWidth())
192
    if (newPAP.getDxaWidth() != oldPAP.getDxaWidth())
217
    {
193
    {
194
      // sprmPDxaWidth
218
      size += SprmUtils.addSprm((short)0x841A, newPAP.getDxaWidth(), null, sprmList);
195
      size += SprmUtils.addSprm((short)0x841A, newPAP.getDxaWidth(), null, sprmList);
219
    }
196
    }
220
    if (!newPAP.getBrcTop().equals(oldPAP.getBrcTop()))
197
    
198
    // Page 52 of public specification begins
199
    if (newPAP.getWr() != oldPAP.getWr())
221
    {
200
    {
222
      int brc = newPAP.getBrcTop().toInt();
201
      size += SprmUtils.addSprm((short)0x2423, newPAP.getWr(), null, sprmList);
223
      size += SprmUtils.addSprm((short)0x6424, brc, null, sprmList);
224
    }
202
    }
225
    if (!newPAP.getBrcLeft().equals(oldPAP.getBrcLeft()))
203
204
    if (newPAP.getBrcBar().equals(oldPAP.getBrcBar()))
226
    {
205
    {
227
      int brc = newPAP.getBrcLeft().toInt();
206
      // XXX: sprm code 0x6428 is sprmPBrcBetween80, but accessed property linked to sprmPBrcBar80 (0x6629)
228
      size += SprmUtils.addSprm((short)0x6425, brc, null, sprmList);
207
      int brc = newPAP.getBrcBar().toInt();
208
      size += SprmUtils.addSprm((short)0x6428, brc, null, sprmList);
229
    }
209
    }
230
    if (!newPAP.getBrcBottom().equals(oldPAP.getBrcBottom()))
210
    if (!newPAP.getBrcBottom().equals(oldPAP.getBrcBottom()))
231
    {
211
    {
212
      // sprmPBrcBottom80  
232
      int brc = newPAP.getBrcBottom().toInt();
213
      int brc = newPAP.getBrcBottom().toInt();
233
      size += SprmUtils.addSprm((short)0x6426, brc, null, sprmList);
214
      size += SprmUtils.addSprm((short)0x6426, brc, null, sprmList);
234
    }
215
    }
216
    if (!newPAP.getBrcLeft().equals(oldPAP.getBrcLeft()))
217
    {
218
      // sprmPBrcLeft80  
219
      int brc = newPAP.getBrcLeft().toInt();
220
      size += SprmUtils.addSprm((short)0x6425, brc, null, sprmList);
221
    }
222
223
    // Page 53 of public specification begins
235
    if (!newPAP.getBrcRight().equals(oldPAP.getBrcRight()))
224
    if (!newPAP.getBrcRight().equals(oldPAP.getBrcRight()))
236
    {
225
    {
226
      // sprmPBrcRight80
237
      int brc = newPAP.getBrcRight().toInt();
227
      int brc = newPAP.getBrcRight().toInt();
238
      size += SprmUtils.addSprm((short)0x6427, brc, null, sprmList);
228
      size += SprmUtils.addSprm((short)0x6427, brc, null, sprmList);
239
    }
229
    }
240
    if (newPAP.getBrcBar().equals(oldPAP.getBrcBar()))
230
    if (!newPAP.getBrcTop().equals(oldPAP.getBrcTop()))
241
    {
242
      int brc = newPAP.getBrcBar().toInt();
243
      size += SprmUtils.addSprm((short)0x6428, brc, null, sprmList);
244
    }
245
    if (newPAP.getDxaFromText() != oldPAP.getDxaFromText())
246
    {
231
    {
247
      size += SprmUtils.addSprm((short)0x842F, newPAP.getDxaFromText(), null, sprmList);
232
      // sprmPBrcTop80 
233
      int brc = newPAP.getBrcTop().toInt();
234
      size += SprmUtils.addSprm((short)0x6424, brc, null, sprmList);
248
    }
235
    }
249
    if (newPAP.getDyaFromText() != oldPAP.getDyaFromText())
236
    if (newPAP.getFNoAutoHyph() != oldPAP.getFNoAutoHyph())
250
    {
237
    {
251
      size += SprmUtils.addSprm((short)0x842E, newPAP.getDyaFromText(), null, sprmList);
238
      size += SprmUtils.addSprm((short)0x242A, newPAP.getFNoAutoHyph(), null, sprmList);
252
    }
239
    }
253
    if (newPAP.getDyaHeight() != oldPAP.getDyaHeight() ||
240
    if (newPAP.getDyaHeight() != oldPAP.getDyaHeight() ||
254
        newPAP.getFMinHeight() != oldPAP.getFMinHeight())
241
            newPAP.getFMinHeight() != oldPAP.getFMinHeight())
255
    {
242
    {
243
      // sprmPWHeightAbs
256
      short val = (short)newPAP.getDyaHeight();
244
      short val = (short)newPAP.getDyaHeight();
257
      if (newPAP.getFMinHeight() > 0)
245
      if (newPAP.getFMinHeight() > 0)
258
      {
246
      {
Lines 260-311 Link Here
260
      }
248
      }
261
      size += SprmUtils.addSprm((short)0x442B, val, null, sprmList);
249
      size += SprmUtils.addSprm((short)0x442B, val, null, sprmList);
262
    }
250
    }
251
    if (newPAP.getDcs() != null && !newPAP.getDcs().equals(oldPAP.getDcs()))
252
    {
253
      // sprmPDcs 
254
      size += SprmUtils.addSprm((short)0x442C, newPAP.getDcs().toShort(), null, sprmList);
255
    }
263
    if (newPAP.getShd() != null && !newPAP.getShd().equals(oldPAP.getShd()))
256
    if (newPAP.getShd() != null && !newPAP.getShd().equals(oldPAP.getShd()))
264
    {
257
    {
258
      // sprmPShd80 
265
      size += SprmUtils.addSprm((short)0x442D, newPAP.getShd().toShort(), null, sprmList);
259
      size += SprmUtils.addSprm((short)0x442D, newPAP.getShd().toShort(), null, sprmList);
266
    }
260
    }
267
    if (newPAP.getDcs() != null && !newPAP.getDcs().equals(oldPAP.getDcs()))
261
    if (newPAP.getDyaFromText() != oldPAP.getDyaFromText())
268
    {
262
    {
269
      size += SprmUtils.addSprm((short)0x442C, newPAP.getDcs().toShort(), null, sprmList);
263
      // sprmPDyaFromText
264
      size += SprmUtils.addSprm((short)0x842E, newPAP.getDyaFromText(), null, sprmList);
270
    }
265
    }
271
    if (newPAP.getLvl() != oldPAP.getLvl())
266
    if (newPAP.getDxaFromText() != oldPAP.getDxaFromText())
272
    {
267
    {
273
      size += SprmUtils.addSprm((short)0x2640, newPAP.getLvl(), null, sprmList);
268
      // sprmPDxaFromText
269
      size += SprmUtils.addSprm((short)0x842F, newPAP.getDxaFromText(), null, sprmList);
274
    }
270
    }
275
    if (newPAP.getFNumRMIns() != oldPAP.getFNumRMIns())
271
    if (newPAP.getFLocked() != oldPAP.getFLocked())
276
    {
272
    {
277
      size += SprmUtils.addSprm((short)0x2443, newPAP.getFNumRMIns(), null, sprmList);
273
      // sprmPFLocked
274
      size += SprmUtils.addSprm((short)0x2430, newPAP.getFLocked(), null, sprmList);
275
    }
276
    if (newPAP.getFWidowControl() != oldPAP.getFWidowControl())
277
    {
278
      // sprmPFWidowControl
279
      size += SprmUtils.addSprm((short)0x2431, newPAP.getFWidowControl(), null, sprmList);
280
    }
281
    if (newPAP.getFKinsoku() != oldPAP.getFKinsoku())
282
    {
283
      size += SprmUtils.addSprm((short)0x2433, newPAP.getDyaBefore(), null, sprmList);
284
    }
285
    if (newPAP.getFWordWrap() != oldPAP.getFWordWrap())
286
    {
287
      size += SprmUtils.addSprm((short)0x2434, newPAP.getFWordWrap(), null, sprmList);
288
    }
289
    if (newPAP.getFOverflowPunct() != oldPAP.getFOverflowPunct())
290
    {
291
      size += SprmUtils.addSprm((short)0x2435, newPAP.getFOverflowPunct(), null, sprmList);
292
    }
293
    if (newPAP.getFTopLinePunct() != oldPAP.getFTopLinePunct())
294
    {
295
      size += SprmUtils.addSprm((short)0x2436, newPAP.getFTopLinePunct(), null, sprmList);
296
    }
297
    if (newPAP.getFAutoSpaceDE() != oldPAP.getFAutoSpaceDE())
298
    {
299
      size += SprmUtils.addSprm((short)0x2437, newPAP.getFAutoSpaceDE(), null, sprmList);
300
    }
301
    if (newPAP.getFAutoSpaceDN() != oldPAP.getFAutoSpaceDN())
302
    {
303
      size += SprmUtils.addSprm((short)0x2438, newPAP.getFAutoSpaceDN(), null, sprmList);
304
    }
305
    if (newPAP.getWAlignFont() != oldPAP.getWAlignFont())
306
    {
307
      size += SprmUtils.addSprm((short)0x4439, newPAP.getWAlignFont(), null, sprmList);
308
    }
309
310
    // Page 54 of public specification begins
311
    if (newPAP.isFBackward() != oldPAP.isFBackward() ||
312
        newPAP.isFVertical() != oldPAP.isFVertical() ||
313
        newPAP.isFRotateFont() != oldPAP.isFRotateFont())
314
    {
315
      int val = 0;
316
      if (newPAP.isFBackward())
317
      {
318
        val |= 0x2;
319
      }
320
      if (newPAP.isFVertical())
321
      {
322
        val |= 0x1;
323
      }
324
      if (newPAP.isFRotateFont())
325
      {
326
        val |= 0x4;
327
      }
328
      size += SprmUtils.addSprm((short)0x443A, val, null, sprmList);
329
    }
330
    if (!Arrays.equals(newPAP.getAnld(), oldPAP.getAnld()))
331
    {
332
      // sprmPAnld80 
333
      size += SprmUtils.addSprm((short)0xC63E, 0, newPAP.getAnld(), sprmList);
278
    }
334
    }
279
    if (newPAP.getFPropRMark() != oldPAP.getFPropRMark() ||
335
    if (newPAP.getFPropRMark() != oldPAP.getFPropRMark() ||
280
        newPAP.getIbstPropRMark() != oldPAP.getIbstPropRMark() ||
336
            newPAP.getIbstPropRMark() != oldPAP.getIbstPropRMark() ||
281
        !newPAP.getDttmPropRMark().equals(oldPAP.getDttmPropRMark()))
337
            !newPAP.getDttmPropRMark().equals(oldPAP.getDttmPropRMark()))
282
    {
338
    {
339
      // sprmPPropRMark
283
      byte[] buf = new byte[7];
340
      byte[] buf = new byte[7];
284
      buf[0] = (byte)newPAP.getFPropRMark();
341
      buf[0] = (byte)newPAP.getFPropRMark();
285
      LittleEndian.putShort(buf, 1, (short)newPAP.getIbstPropRMark());
342
      LittleEndian.putShort(buf, 1, (short)newPAP.getIbstPropRMark());
286
      newPAP.getDttmPropRMark().serialize(buf, 3);
343
      newPAP.getDttmPropRMark().serialize(buf, 3);
287
      size += SprmUtils.addSprm((short)0xC63F, 0, buf, sprmList);
344
      size += SprmUtils.addSprm((short)0xC63F, 0, buf, sprmList);
288
    }
345
    }
289
    if (!Arrays.equals(newPAP.getNumrm(), oldPAP.getNumrm()))
346
    if (newPAP.getLvl() != oldPAP.getLvl())
290
    {
347
    {
291
      size += SprmUtils.addSprm((short)0xC645, 0, newPAP.getNumrm(), sprmList);
348
      // sprmPOutLvl 
349
      size += SprmUtils.addSprm((short)0x2640, newPAP.getLvl(), null, sprmList);
292
    }
350
    }
293
351
    if (newPAP.getFBiDi() != oldPAP.getFBiDi())
294
    if (newPAP.getTableLevel() != oldPAP.getTableLevel())
295
    {
352
    {
296
      size += SprmUtils.addSprm((short)0x6649, newPAP.getTableLevel(), null, sprmList);
353
      // sprmPFBiDi 
354
      size += SprmUtils.addSprm((short)0x2441, newPAP.getFBiDi(), null, sprmList);
297
    }
355
    }
298
356
    if (newPAP.getFNumRMIns() != oldPAP.getFNumRMIns())
357
    {
358
      // sprmPFNumRMIns 
359
      size += SprmUtils.addSprm((short)0x2443, newPAP.getFNumRMIns(), null, sprmList);
360
    }
361
    if (!Arrays.equals(newPAP.getNumrm(), oldPAP.getNumrm()))
362
    {
363
      // sprmPNumRM
364
      size += SprmUtils.addSprm((short)0xC645, 0, newPAP.getNumrm(), sprmList);
365
    }
299
    if (newPAP.getEmbeddedCellMark() != oldPAP.getEmbeddedCellMark())
366
    if (newPAP.getEmbeddedCellMark() != oldPAP.getEmbeddedCellMark())
300
    {
367
    {
368
      // sprmPFInnerTableCell
301
      size += SprmUtils.addSprm((short)0x244b, newPAP.getEmbeddedCellMark(), null, sprmList);
369
      size += SprmUtils.addSprm((short)0x244b, newPAP.getEmbeddedCellMark(), null, sprmList);
302
    }
370
    }
303
304
    if (newPAP.getFTtpEmbedded() != oldPAP.getFTtpEmbedded())
371
    if (newPAP.getFTtpEmbedded() != oldPAP.getFTtpEmbedded())
305
    {
372
    {
373
      // sprmPFInnerTtp 
306
      size += SprmUtils.addSprm((short)0x244c, newPAP.getFTtpEmbedded(), null, sprmList);
374
      size += SprmUtils.addSprm((short)0x244c, newPAP.getFTtpEmbedded(), null, sprmList);
307
    }
375
    }
308
376
377
    // Page 55 of public specification begins
378
    if (newPAP.getTableLevel() != oldPAP.getTableLevel())
379
    {
380
      // sprmPItap
381
      size += SprmUtils.addSprm((short)0x6649, newPAP.getTableLevel(), null, sprmList);
382
    }
383
309
    return SprmUtils.getGrpprl(sprmList, size);
384
    return SprmUtils.getGrpprl(sprmList, size);
310
385
311
  }
386
  }

Return to bug 51390