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;


Reply via email to