FileDocCategorySizeDatePackage
FormattedDiskPage.javaAPI DocApache Poi 3.0.13445Mon Jan 01 18:55:32 GMT 2007org.apache.poi.hwpf.model

FormattedDiskPage

public abstract class FormattedDiskPage extends Object
Represents an FKP data structure. This data structure is used to store the grpprls of the paragraph and character properties of the document. A grpprl is a list of sprms(decompression operations) to perform on a parent style. The style properties for paragraph and character runs are stored in fkps. There are PAP fkps for paragraph properties and CHP fkps for character run properties. The first part of the fkp for both CHP and PAP fkps consists of an array of 4 byte int offsets in the main stream for that Paragraph's or Character run's text. The ending offset is the next value in the array. For example, if an fkp has X number of Paragraph's stored in it then there are (x + 1) 4 byte ints in the beginning array. The number X is determined by the last byte in a 512 byte fkp. CHP and PAP fkps also store the compressed styles(grpprl) that correspond to the offsets on the front of the fkp. The offset of the grpprls is determined differently for CHP fkps and PAP fkps.
author
Ryan Ackley

Fields Summary
protected byte[]
_fkp
protected int
_crun
protected int
_offset
Constructors Summary
public FormattedDiskPage()


    
public FormattedDiskPage(byte[] documentStream, int offset)
Uses a 512-byte array to create a FKP

        _crun = LittleEndian.getUnsignedByte(documentStream, offset + 511);
        _fkp = documentStream;
        _offset = offset;
    
Methods Summary
protected intgetEnd(int index)
Used to get the end of the text corresponding to a grpprl in this fkp.

param
index The index of the property in this fkp.
return
an int representing an offset in the "WordDocument" stream

        return LittleEndian.getInt(_fkp, _offset + ((index + 1) * 4));
    
protected abstract byte[]getGrpprl(int index)

protected intgetStart(int index)
Used to get a text offset corresponding to a grpprl in this fkp.

param
index The index of the property in this FKP
return
an int representing an offset in the "WordDocument" stream

        return LittleEndian.getInt(_fkp, _offset + (index * 4));
    
public intsize()
Used to get the total number of grrprl's stored int this FKP

return
The number of grpprls in this FKP

        return _crun;