summaryrefslogtreecommitdiffstats
path: root/src/scratchpad
diff options
context:
space:
mode:
Diffstat (limited to 'src/scratchpad')
-rw-r--r--src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java725
1 files changed, 362 insertions, 363 deletions
diff --git a/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java b/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java
index bbbd72fbf6..a877da1f24 100644
--- a/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java
+++ b/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java
@@ -50,330 +50,329 @@ import org.apache.poi.util.POILogger;
public final class StyleTextPropAtom extends RecordAtom
{
- private byte[] _header;
- private static long _type = 4001l;
- private byte[] reserved;
-
- private byte[] rawContents; // Holds the contents between write-outs
-
- /**
- * Only set to true once setParentTextSize(int) is called.
- * Until then, no stylings will have been decoded
- */
- private boolean initialised = false;
-
- /**
- * The list of all the different paragraph stylings we code for.
- * Each entry is a TextPropCollection, which tells you how many
- * Characters the paragraph covers, and also contains the TextProps
- * that actually define the styling of the paragraph.
- */
- private LinkedList<TextPropCollection> paragraphStyles;
- public LinkedList<TextPropCollection> getParagraphStyles() { return paragraphStyles; }
- /**
- * Updates the link list of TextPropCollections which make up the
- * paragraph stylings
- */
- public void setParagraphStyles(LinkedList<TextPropCollection> ps) { paragraphStyles = ps; }
- /**
- * The list of all the different character stylings we code for.
- * Each entry is a TextPropCollection, which tells you how many
- * Characters the character styling covers, and also contains the
- * TextProps that actually define the styling of the characters.
- */
- private LinkedList<TextPropCollection> charStyles;
- public LinkedList<TextPropCollection> getCharacterStyles() { return charStyles; }
- /**
- * Updates the link list of TextPropCollections which make up the
- * character stylings
- */
- public void setCharacterStyles(LinkedList<TextPropCollection> cs) { charStyles = cs; }
-
- /**
- * Returns how many characters the paragraph's
- * TextPropCollections cover.
- * (May be one or two more than the underlying text does,
- * due to having extra characters meaning something
- * special to powerpoint)
- */
- public int getParagraphTextLengthCovered() {
- return getCharactersCovered(paragraphStyles);
- }
- /**
- * Returns how many characters the character's
- * TextPropCollections cover.
- * (May be one or two more than the underlying text does,
- * due to having extra characters meaning something
- * special to powerpoint)
- */
- public int getCharacterTextLengthCovered() {
- return getCharactersCovered(charStyles);
- }
- private int getCharactersCovered(LinkedList<TextPropCollection> styles) {
- int length = 0;
- for(TextPropCollection tpc : styles) {
- length += tpc.getCharactersCovered();
- }
- return length;
- }
-
- /** All the different kinds of paragraph properties we might handle */
- public static TextProp[] paragraphTextPropTypes = new TextProp[] {
- new TextProp(0, 0x1, "hasBullet"),
- new TextProp(0, 0x2, "hasBulletFont"),
- new TextProp(0, 0x4, "hasBulletColor"),
- new TextProp(0, 0x8, "hasBulletSize"),
- new ParagraphFlagsTextProp(),
- new TextProp(2, 0x80, "bullet.char"),
- new TextProp(2, 0x10, "bullet.font"),
- new TextProp(2, 0x40, "bullet.size"),
- new TextProp(4, 0x20, "bullet.color"),
- new AlignmentTextProp(),
- new TextProp(2, 0x100, "text.offset"),
- new TextProp(2, 0x400, "bullet.offset"),
- new TextProp(2, 0x1000, "linespacing"),
- new TextProp(2, 0x2000, "spacebefore"),
- new TextProp(2, 0x4000, "spaceafter"),
- new TextProp(2, 0x8000, "defaultTabSize"),
- new TextProp(2, 0x100000, "tabStops"),
- new TextProp(2, 0x10000, "fontAlign"),
- new TextProp(2, 0xA0000, "wrapFlags"),
- new TextProp(2, 0x200000, "textDirection")
- };
- /** All the different kinds of character properties we might handle */
- public static TextProp[] characterTextPropTypes = new TextProp[] {
- new TextProp(0, 0x1, "bold"),
- new TextProp(0, 0x2, "italic"),
- new TextProp(0, 0x4, "underline"),
- new TextProp(0, 0x8, "unused1"),
- new TextProp(0, 0x10, "shadow"),
- new TextProp(0, 0x20, "fehint"),
- new TextProp(0, 0x40, "unused2"),
- new TextProp(0, 0x80, "kumi"),
- new TextProp(0, 0x100, "unused3"),
- new TextProp(0, 0x200, "emboss"),
- new TextProp(0, 0x400, "nibble1"),
- new TextProp(0, 0x800, "nibble2"),
- new TextProp(0, 0x1000, "nibble3"),
- new TextProp(0, 0x2000, "nibble4"),
- new TextProp(0, 0x4000, "unused4"),
- new TextProp(0, 0x8000, "unused5"),
- new CharFlagsTextProp(),
- new TextProp(2, 0x10000, "font.index"),
- new TextProp(0, 0x100000, "pp10ext"),
- new TextProp(2, 0x200000, "asian.font.index"),
- new TextProp(2, 0x400000, "ansi.font.index"),
- new TextProp(2, 0x800000, "symbol.font.index"),
- new TextProp(2, 0x20000, "font.size"),
- new TextProp(4, 0x40000, "font.color"),
- new TextProp(2, 0x80000, "superscript"),
+ private byte[] _header;
+ private static long _type = 4001l;
+ private byte[] reserved;
+ private byte[] rawContents; // Holds the contents between write-outs
+
+ /**
+ * Only set to true once setParentTextSize(int) is called.
+ * Until then, no stylings will have been decoded
+ */
+ private boolean initialised = false;
+
+ /**
+ * The list of all the different paragraph stylings we code for.
+ * Each entry is a TextPropCollection, which tells you how many
+ * Characters the paragraph covers, and also contains the TextProps
+ * that actually define the styling of the paragraph.
+ */
+ private LinkedList<TextPropCollection> paragraphStyles;
+ public LinkedList<TextPropCollection> getParagraphStyles() { return paragraphStyles; }
+ /**
+ * Updates the link list of TextPropCollections which make up the
+ * paragraph stylings
+ */
+ public void setParagraphStyles(LinkedList<TextPropCollection> ps) { paragraphStyles = ps; }
+ /**
+ * The list of all the different character stylings we code for.
+ * Each entry is a TextPropCollection, which tells you how many
+ * Characters the character styling covers, and also contains the
+ * TextProps that actually define the styling of the characters.
+ */
+ private LinkedList<TextPropCollection> charStyles;
+ public LinkedList<TextPropCollection> getCharacterStyles() { return charStyles; }
+ /**
+ * Updates the link list of TextPropCollections which make up the
+ * character stylings
+ */
+ public void setCharacterStyles(LinkedList<TextPropCollection> cs) { charStyles = cs; }
+
+ /**
+ * Returns how many characters the paragraph's
+ * TextPropCollections cover.
+ * (May be one or two more than the underlying text does,
+ * due to having extra characters meaning something
+ * special to powerpoint)
+ */
+ public int getParagraphTextLengthCovered() {
+ return getCharactersCovered(paragraphStyles);
+ }
+ /**
+ * Returns how many characters the character's
+ * TextPropCollections cover.
+ * (May be one or two more than the underlying text does,
+ * due to having extra characters meaning something
+ * special to powerpoint)
+ */
+ public int getCharacterTextLengthCovered() {
+ return getCharactersCovered(charStyles);
+ }
+ private int getCharactersCovered(LinkedList<TextPropCollection> styles) {
+ int length = 0;
+ for(TextPropCollection tpc : styles) {
+ length += tpc.getCharactersCovered();
+ }
+ return length;
+ }
+
+ /** All the different kinds of paragraph properties we might handle */
+ public static TextProp[] paragraphTextPropTypes = new TextProp[] {
+ new TextProp(0, 0x1, "hasBullet"),
+ new TextProp(0, 0x2, "hasBulletFont"),
+ new TextProp(0, 0x4, "hasBulletColor"),
+ new TextProp(0, 0x8, "hasBulletSize"),
+ new ParagraphFlagsTextProp(),
+ new TextProp(2, 0x80, "bullet.char"),
+ new TextProp(2, 0x10, "bullet.font"),
+ new TextProp(2, 0x40, "bullet.size"),
+ new TextProp(4, 0x20, "bullet.color"),
+ new AlignmentTextProp(),
+ new TextProp(2, 0x100, "text.offset"),
+ new TextProp(2, 0x400, "bullet.offset"),
+ new TextProp(2, 0x1000, "linespacing"),
+ new TextProp(2, 0x2000, "spacebefore"),
+ new TextProp(2, 0x4000, "spaceafter"),
+ new TextProp(2, 0x8000, "defaultTabSize"),
+ new TextProp(2, 0x100000, "tabStops"),
+ new TextProp(2, 0x10000, "fontAlign"),
+ new TextProp(2, 0xA0000, "wrapFlags"),
+ new TextProp(2, 0x200000, "textDirection")
};
+ /** All the different kinds of character properties we might handle */
+ public static TextProp[] characterTextPropTypes = new TextProp[] {
+ new TextProp(0, 0x1, "bold"),
+ new TextProp(0, 0x2, "italic"),
+ new TextProp(0, 0x4, "underline"),
+ new TextProp(0, 0x8, "unused1"),
+ new TextProp(0, 0x10, "shadow"),
+ new TextProp(0, 0x20, "fehint"),
+ new TextProp(0, 0x40, "unused2"),
+ new TextProp(0, 0x80, "kumi"),
+ new TextProp(0, 0x100, "unused3"),
+ new TextProp(0, 0x200, "emboss"),
+ new TextProp(0, 0x400, "nibble1"),
+ new TextProp(0, 0x800, "nibble2"),
+ new TextProp(0, 0x1000, "nibble3"),
+ new TextProp(0, 0x2000, "nibble4"),
+ new TextProp(0, 0x4000, "unused4"),
+ new TextProp(0, 0x8000, "unused5"),
+ new CharFlagsTextProp(),
+ new TextProp(2, 0x10000, "font.index"),
+ new TextProp(0, 0x100000, "pp10ext"),
+ new TextProp(2, 0x200000, "asian.font.index"),
+ new TextProp(2, 0x400000, "ansi.font.index"),
+ new TextProp(2, 0x800000, "symbol.font.index"),
+ new TextProp(2, 0x20000, "font.size"),
+ new TextProp(4, 0x40000, "font.color"),
+ new TextProp(2, 0x80000, "superscript")
+ };
+
+ /* *************** record code follows ********************** */
+
+ /**
+ * For the Text Style Properties (StyleTextProp) Atom
+ */
+ public StyleTextPropAtom(byte[] source, int start, int len) {
+ // Sanity Checking - we're always at least 8+10 bytes long
+ if(len < 18) {
+ len = 18;
+ if(source.length - start < 18) {
+ throw new RuntimeException("Not enough data to form a StyleTextPropAtom (min size 18 bytes long) - found " + (source.length - start));
+ }
+ }
+
+ // Get the header
+ _header = new byte[8];
+ System.arraycopy(source,start,_header,0,8);
+
+ // Save the contents of the atom, until we're asked to go and
+ // decode them (via a call to setParentTextSize(int)
+ rawContents = new byte[len-8];
+ System.arraycopy(source,start+8,rawContents,0,rawContents.length);
+ reserved = new byte[0];
+
+ // Set empty linked lists, ready for when they call setParentTextSize
+ paragraphStyles = new LinkedList<TextPropCollection>();
+ charStyles = new LinkedList<TextPropCollection>();
+ }
+
+
+ /**
+ * A new set of text style properties for some text without any.
+ */
+ public StyleTextPropAtom(int parentTextSize) {
+ _header = new byte[8];
+ rawContents = new byte[0];
+ reserved = new byte[0];
+
+ // Set our type
+ LittleEndian.putInt(_header,2,(short)_type);
+ // Our initial size is 10
+ LittleEndian.putInt(_header,4,10);
+
+ // Set empty paragraph and character styles
+ paragraphStyles = new LinkedList<TextPropCollection>();
+ charStyles = new LinkedList<TextPropCollection>();
+
+ TextPropCollection defaultParagraphTextProps =
+ new TextPropCollection(parentTextSize, (short)0);
+ paragraphStyles.add(defaultParagraphTextProps);
+
+ TextPropCollection defaultCharacterTextProps =
+ new TextPropCollection(parentTextSize);
+ charStyles.add(defaultCharacterTextProps);
- /* *************** record code follows ********************** */
-
- /**
- * For the Text Style Properties (StyleTextProp) Atom
- */
- public StyleTextPropAtom(byte[] source, int start, int len) {
- // Sanity Checking - we're always at least 8+10 bytes long
- if(len < 18) {
- len = 18;
- if(source.length - start < 18) {
- throw new RuntimeException("Not enough data to form a StyleTextPropAtom (min size 18 bytes long) - found " + (source.length - start));
- }
- }
-
- // Get the header
- _header = new byte[8];
- System.arraycopy(source,start,_header,0,8);
-
- // Save the contents of the atom, until we're asked to go and
- // decode them (via a call to setParentTextSize(int)
- rawContents = new byte[len-8];
- System.arraycopy(source,start+8,rawContents,0,rawContents.length);
- reserved = new byte[0];
-
- // Set empty linked lists, ready for when they call setParentTextSize
- paragraphStyles = new LinkedList<TextPropCollection>();
- charStyles = new LinkedList<TextPropCollection>();
- }
-
-
- /**
- * A new set of text style properties for some text without any.
- */
- public StyleTextPropAtom(int parentTextSize) {
- _header = new byte[8];
- rawContents = new byte[0];
- reserved = new byte[0];
-
- // Set our type
- LittleEndian.putInt(_header,2,(short)_type);
- // Our initial size is 10
- LittleEndian.putInt(_header,4,10);
-
- // Set empty paragraph and character styles
- paragraphStyles = new LinkedList<TextPropCollection>();
- charStyles = new LinkedList<TextPropCollection>();
-
- TextPropCollection defaultParagraphTextProps =
- new TextPropCollection(parentTextSize, (short)0);
- paragraphStyles.add(defaultParagraphTextProps);
-
- TextPropCollection defaultCharacterTextProps =
- new TextPropCollection(parentTextSize);
- charStyles.add(defaultCharacterTextProps);
-
- // Set us as now initialised
- initialised = true;
- }
-
-
- /**
- * We are of type 4001
- */
- public long getRecordType() { return _type; }
-
-
- /**
- * Write the contents of the record back, so it can be written
- * to disk
- */
- public void writeOut(OutputStream out) throws IOException {
- // First thing to do is update the raw bytes of the contents, based
- // on the properties
- updateRawContents();
-
- // Now ensure that the header size is correct
- int newSize = rawContents.length + reserved.length;
- LittleEndian.putInt(_header,4,newSize);
-
- // Write out the (new) header
- out.write(_header);
-
- // Write out the styles
- out.write(rawContents);
-
- // Write out any extra bits
- out.write(reserved);
- }
-
-
- /**
- * Tell us how much text the parent TextCharsAtom or TextBytesAtom
- * contains, so we can go ahead and initialise ourselves.
- */
- public void setParentTextSize(int size) {
- int pos = 0;
- int textHandled = 0;
-
- // While we have text in need of paragraph stylings, go ahead and
- // grok the contents as paragraph formatting data
+ // Set us as now initialised
+ initialised = true;
+ }
+
+
+ /**
+ * We are of type 4001
+ */
+ public long getRecordType() { return _type; }
+
+
+ /**
+ * Write the contents of the record back, so it can be written
+ * to disk
+ */
+ public void writeOut(OutputStream out) throws IOException {
+ // First thing to do is update the raw bytes of the contents, based
+ // on the properties
+ updateRawContents();
+
+ // Now ensure that the header size is correct
+ int newSize = rawContents.length + reserved.length;
+ LittleEndian.putInt(_header,4,newSize);
+
+ // Write out the (new) header
+ out.write(_header);
+
+ // Write out the styles
+ out.write(rawContents);
+
+ // Write out any extra bits
+ out.write(reserved);
+ }
+
+
+ /**
+ * Tell us how much text the parent TextCharsAtom or TextBytesAtom
+ * contains, so we can go ahead and initialise ourselves.
+ */
+ public void setParentTextSize(int size) {
+ int pos = 0;
+ int textHandled = 0;
+
+ // While we have text in need of paragraph stylings, go ahead and
+ // grok the contents as paragraph formatting data
int prsize = size;
- while(pos < rawContents.length && textHandled < prsize) {
- // First up, fetch the number of characters this applies to
- int textLen = LittleEndian.getInt(rawContents,pos);
- textHandled += textLen;
- pos += 4;
+ while(pos < rawContents.length && textHandled < prsize) {
+ // First up, fetch the number of characters this applies to
+ int textLen = LittleEndian.getInt(rawContents,pos);
+ textHandled += textLen;
+ pos += 4;
- short indent = LittleEndian.getShort(rawContents,pos);
- pos += 2;
+ short indent = LittleEndian.getShort(rawContents,pos);
+ pos += 2;
- // Grab the 4 byte value that tells us what properties follow
- int paraFlags = LittleEndian.getInt(rawContents,pos);
- pos += 4;
+ // Grab the 4 byte value that tells us what properties follow
+ int paraFlags = LittleEndian.getInt(rawContents,pos);
+ pos += 4;
- // Now make sense of those properties
- TextPropCollection thisCollection = new TextPropCollection(textLen, indent);
- int plSize = thisCollection.buildTextPropList(
- paraFlags, paragraphTextPropTypes, rawContents, pos);
- pos += plSize;
+ // Now make sense of those properties
+ TextPropCollection thisCollection = new TextPropCollection(textLen, indent);
+ int plSize = thisCollection.buildTextPropList(
+ paraFlags, paragraphTextPropTypes, rawContents, pos);
+ pos += plSize;
- // Save this properties set
- paragraphStyles.add(thisCollection);
+ // Save this properties set
+ paragraphStyles.add(thisCollection);
// Handle extra 1 paragraph styles at the end
if(pos < rawContents.length && textHandled == size) {
prsize++;
}
- }
+ }
if (rawContents.length > 0 && textHandled != (size+1)){
logger.log(POILogger.WARN, "Problem reading paragraph style runs: textHandled = " + textHandled + ", text.size+1 = " + (size+1));
}
- // Now do the character stylings
- textHandled = 0;
+ // Now do the character stylings
+ textHandled = 0;
int chsize = size;
- while(pos < rawContents.length && textHandled < chsize) {
- // First up, fetch the number of characters this applies to
- int textLen = LittleEndian.getInt(rawContents,pos);
- textHandled += textLen;
- pos += 4;
-
- // There is no 2 byte value
- short no_val = -1;
-
- // Grab the 4 byte value that tells us what properties follow
- int charFlags = LittleEndian.getInt(rawContents,pos);
- pos += 4;
-
- // Now make sense of those properties
- // (Assuming we actually have some)
- TextPropCollection thisCollection = new TextPropCollection(textLen, no_val);
- int chSize = thisCollection.buildTextPropList(
- charFlags, characterTextPropTypes, rawContents, pos);
- pos += chSize;
-
- // Save this properties set
- charStyles.add(thisCollection);
-
- // Handle extra 1 char styles at the end
- if(pos < rawContents.length && textHandled == size) {
- chsize++;
- }
- }
+ while(pos < rawContents.length && textHandled < chsize) {
+ // First up, fetch the number of characters this applies to
+ int textLen = LittleEndian.getInt(rawContents,pos);
+ textHandled += textLen;
+ pos += 4;
+
+ // There is no 2 byte value
+ short no_val = -1;
+
+ // Grab the 4 byte value that tells us what properties follow
+ int charFlags = LittleEndian.getInt(rawContents,pos);
+ pos += 4;
+
+ // Now make sense of those properties
+ // (Assuming we actually have some)
+ TextPropCollection thisCollection = new TextPropCollection(textLen, no_val);
+ int chSize = thisCollection.buildTextPropList(
+ charFlags, characterTextPropTypes, rawContents, pos);
+ pos += chSize;
+
+ // Save this properties set
+ charStyles.add(thisCollection);
+
+ // Handle extra 1 char styles at the end
+ if(pos < rawContents.length && textHandled == size) {
+ chsize++;
+ }
+ }
if (rawContents.length > 0 && textHandled != (size+1)){
logger.log(POILogger.WARN, "Problem reading character style runs: textHandled = " + textHandled + ", text.size+1 = " + (size+1));
}
- // Handle anything left over
- if(pos < rawContents.length) {
- reserved = new byte[rawContents.length-pos];
- System.arraycopy(rawContents,pos,reserved,0,reserved.length);
- }
+ // Handle anything left over
+ if(pos < rawContents.length) {
+ reserved = new byte[rawContents.length-pos];
+ System.arraycopy(rawContents,pos,reserved,0,reserved.length);
+ }
- initialised = true;
- }
+ initialised = true;
+ }
- /**
- * Updates the cache of the raw contents. Serialised the styles out.
- */
- private void updateRawContents() throws IOException {
- if(!initialised) {
- // We haven't groked the styles since creation, so just stick
- // with what we found
- return;
- }
+ /**
+ * Updates the cache of the raw contents. Serialised the styles out.
+ */
+ private void updateRawContents() throws IOException {
+ if(!initialised) {
+ // We haven't groked the styles since creation, so just stick
+ // with what we found
+ return;
+ }
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
- // First up, we need to serialise the paragraph properties
- for(int i=0; i<paragraphStyles.size(); i++) {
- TextPropCollection tpc = paragraphStyles.get(i);
- tpc.writeOut(baos);
- }
+ // First up, we need to serialise the paragraph properties
+ for(int i=0; i<paragraphStyles.size(); i++) {
+ TextPropCollection tpc = paragraphStyles.get(i);
+ tpc.writeOut(baos);
+ }
- // Now, we do the character ones
- for(int i=0; i<charStyles.size(); i++) {
- TextPropCollection tpc = charStyles.get(i);
- tpc.writeOut(baos);
- }
+ // Now, we do the character ones
+ for(int i=0; i<charStyles.size(); i++) {
+ TextPropCollection tpc = charStyles.get(i);
+ tpc.writeOut(baos);
+ }
- rawContents = baos.toByteArray();
- }
+ rawContents = baos.toByteArray();
+ }
public void setRawContents(byte[] bytes) {
rawContents = bytes;
@@ -382,30 +381,30 @@ public final class StyleTextPropAtom extends RecordAtom
}
/**
- * Create a new Paragraph TextPropCollection, and add it to the list
- * @param charactersCovered The number of characters this TextPropCollection will cover
- * @return the new TextPropCollection, which will then be in the list
- */
- public TextPropCollection addParagraphTextPropCollection(int charactersCovered) {
- TextPropCollection tpc = new TextPropCollection(charactersCovered, (short)0);
- paragraphStyles.add(tpc);
- return tpc;
- }
- /**
- * Create a new Character TextPropCollection, and add it to the list
- * @param charactersCovered The number of characters this TextPropCollection will cover
- * @return the new TextPropCollection, which will then be in the list
- */
- public TextPropCollection addCharacterTextPropCollection(int charactersCovered) {
- TextPropCollection tpc = new TextPropCollection(charactersCovered);
- charStyles.add(tpc);
- return tpc;
- }
-
-/* ************************************************************************ */
-
-
- /**
+ * Create a new Paragraph TextPropCollection, and add it to the list
+ * @param charactersCovered The number of characters this TextPropCollection will cover
+ * @return the new TextPropCollection, which will then be in the list
+ */
+ public TextPropCollection addParagraphTextPropCollection(int charactersCovered) {
+ TextPropCollection tpc = new TextPropCollection(charactersCovered, (short)0);
+ paragraphStyles.add(tpc);
+ return tpc;
+ }
+ /**
+ * Create a new Character TextPropCollection, and add it to the list
+ * @param charactersCovered The number of characters this TextPropCollection will cover
+ * @return the new TextPropCollection, which will then be in the list
+ */
+ public TextPropCollection addCharacterTextPropCollection(int charactersCovered) {
+ TextPropCollection tpc = new TextPropCollection(charactersCovered);
+ charStyles.add(tpc);
+ return tpc;
+ }
+
+ /* ************************************************************************ */
+
+
+ /**
* Dump the record content into <code>StringBuffer</code>
*
* @return the string representation of the record data
@@ -413,57 +412,57 @@ public final class StyleTextPropAtom extends RecordAtom
public String toString(){
StringBuffer out = new StringBuffer();
- out.append("StyleTextPropAtom:\n");
+ out.append("StyleTextPropAtom:\n");
if (!initialised) {
- out.append("Uninitialised, dumping Raw Style Data\n");
+ out.append("Uninitialised, dumping Raw Style Data\n");
} else {
- out.append("Paragraph properties\n");
-
- for(TextPropCollection pr : getParagraphStyles()) {
- out.append(" chars covered: " + pr.getCharactersCovered());
- out.append(" special mask flags: 0x" + HexDump.toHex(pr.getSpecialMask()) + "\n");
- for(TextProp p : pr.getTextPropList()) {
- out.append(" " + p.getName() + " = " + p.getValue() );
- out.append(" (0x" + HexDump.toHex(p.getValue()) + ")\n");
- }
-
- out.append(" para bytes that would be written: \n");
-
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- pr.writeOut(baos);
- byte[] b = baos.toByteArray();
- out.append(HexDump.dump(b, 0, 0));
- } catch (Exception e ) {
- e.printStackTrace();
- }
- }
-
- out.append("Character properties\n");
- for(TextPropCollection pr : getCharacterStyles()) {
- out.append(" chars covered: " + pr.getCharactersCovered() );
- out.append(" special mask flags: 0x" + HexDump.toHex(pr.getSpecialMask()) + "\n");
- for(TextProp p : pr.getTextPropList()) {
- out.append(" " + p.getName() + " = " + p.getValue() );
- out.append(" (0x" + HexDump.toHex(p.getValue()) + ")\n");
- }
-
- out.append(" char bytes that would be written: \n");
-
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- pr.writeOut(baos);
- byte[] b = baos.toByteArray();
- out.append(HexDump.dump(b, 0, 0));
- } catch (Exception e ) {
- e.printStackTrace();
- }
- }
+ out.append("Paragraph properties\n");
+
+ for(TextPropCollection pr : getParagraphStyles()) {
+ out.append(" chars covered: " + pr.getCharactersCovered());
+ out.append(" special mask flags: 0x" + HexDump.toHex(pr.getSpecialMask()) + "\n");
+ for(TextProp p : pr.getTextPropList()) {
+ out.append(" " + p.getName() + " = " + p.getValue() );
+ out.append(" (0x" + HexDump.toHex(p.getValue()) + ")\n");
+ }
+
+ out.append(" para bytes that would be written: \n");
+
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ pr.writeOut(baos);
+ byte[] b = baos.toByteArray();
+ out.append(HexDump.dump(b, 0, 0));
+ } catch (Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+ out.append("Character properties\n");
+ for(TextPropCollection pr : getCharacterStyles()) {
+ out.append(" chars covered: " + pr.getCharactersCovered() );
+ out.append(" special mask flags: 0x" + HexDump.toHex(pr.getSpecialMask()) + "\n");
+ for(TextProp p : pr.getTextPropList()) {
+ out.append(" " + p.getName() + " = " + p.getValue() );
+ out.append(" (0x" + HexDump.toHex(p.getValue()) + ")\n");
+ }
+
+ out.append(" char bytes that would be written: \n");
+
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ pr.writeOut(baos);
+ byte[] b = baos.toByteArray();
+ out.append(HexDump.dump(b, 0, 0));
+ } catch (Exception e ) {
+ e.printStackTrace();
+ }
+ }
}
out.append(" original byte stream \n");
- out.append( HexDump.dump(rawContents, 0, 0) );
+ out.append( HexDump.dump(rawContents, 0, 0) );
return out.toString();
}