Author: tilman Date: Wed Aug 12 15:31:47 2015 New Revision: 1695557 URL: http://svn.apache.org/r1695557 Log: PDFBOX-2530: fix indent of closing operators; add BMC/BDC/EMC to indent logic
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java?rev=1695557&r1=1695556&r2=1695557&view=diff ============================================================================== --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java Wed Aug 12 15:31:47 2015 @@ -65,6 +65,9 @@ public class StreamPane implements Actio public static final String INLINE_IMAGE_BEGIN = "BI"; public static final String IMAGE_DATA = "ID"; public static final String INLINE_IMAGE_END = "EI"; + public static final String BEGIN_MARKED_CONTENT1 = "BMC"; + public static final String BEGIN_MARKED_CONTENT2 = "BDC"; + public static final String END_MARKED_CONTENT = "EMC"; private static final StyleContext CONTEXT = StyleContext.getDefaultStyleContext(); private static final Style OPERATOR_STYLE = CONTEXT.addStyle("operator", null); @@ -374,13 +377,15 @@ public class StreamPane implements Actio { Operator op = (Operator) obj; - if (!op.getName().equals(END_TEXT_OBJECT) && - !op.getName().equals(RESTORE_GRAPHICS_STATE)) + if (op.getName().equals(END_TEXT_OBJECT) + || op.getName().equals(RESTORE_GRAPHICS_STATE) + || op.getName().equals(END_MARKED_CONTENT)) { - writeIndent(docu); + indent--; } - - if (op.getName().equals("BI")) + writeIndent(docu); + + if (op.getName().equals(INLINE_IMAGE_BEGIN)) { docu.insertString(docu.getLength(), INLINE_IMAGE_BEGIN + "\n", OPERATOR_STYLE); COSDictionary dic = op.getImageParameters(); @@ -402,17 +407,13 @@ public class StreamPane implements Actio String operator = ((Operator) obj).getName(); docu.insertString(docu.getLength(), operator + "\n", OPERATOR_STYLE); - // nested operators + // nested opening operators if (op.getName().equals(BEGIN_TEXT_OBJECT) || - op.getName().equals(SAVE_GRAPHICS_STATE)) + op.getName().equals(SAVE_GRAPHICS_STATE) || + op.getName().equals(BEGIN_MARKED_CONTENT1) || + op.getName().equals(BEGIN_MARKED_CONTENT2)) { indent++; - - } - else if (op.getName().equals(END_TEXT_OBJECT) || - op.getName().equals(RESTORE_GRAPHICS_STATE)) - { - indent--; } } needIndent = true;