You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2011/06/13 17:08:54 UTC

svn commit: r1135129 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator: SetNonStrokingSeparation.java SetStrokingSeparation.java

Author: lehmi
Date: Mon Jun 13 15:08:54 2011
New Revision: 1135129

URL: http://svn.apache.org/viewvc?rev=1135129&view=rev
Log:
PDFBOX-963: the function to map the color values within a separation colorspace was only used on the first call

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetNonStrokingSeparation.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetStrokingSeparation.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetNonStrokingSeparation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetNonStrokingSeparation.java?rev=1135129&r1=1135128&r2=1135129&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetNonStrokingSeparation.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetNonStrokingSeparation.java Mon Jun 13 15:08:54 2011
@@ -19,16 +19,10 @@ package org.apache.pdfbox.util.operator;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorState;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
-import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased;
 import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation;
 import org.apache.pdfbox.util.PDFOperator;
 
@@ -41,12 +35,6 @@ public class SetNonStrokingSeparation ex
 {
 
     /**
-     * Log instance.
-     */
-    private static final Log log =
-        LogFactory.getLog(SetNonStrokingSeparation.class);
-
-    /**
      * scn Set color space for non stroking operations.
      * @param operator The operator that is being executed.
      * @param arguments List
@@ -59,48 +47,10 @@ public class SetNonStrokingSeparation ex
         
         if (colorSpace != null) 
         {
-            List<COSBase> argList = arguments;
-            OperatorProcessor newOperator = null;
-
-            if (colorSpace instanceof PDSeparation) {
-                PDSeparation sep = (PDSeparation) colorSpace;
-                colorSpace = sep.getAlternateColorSpace();
-                argList = sep.calculateColorValues(arguments.get(0)).toList();
-            }
-
-            if (colorSpace instanceof PDDeviceGray)
-            {
-                newOperator = new SetNonStrokingGrayColor();
-            }
-            else if (colorSpace instanceof PDDeviceRGB)
-            {
-                newOperator = new SetNonStrokingRGBColor();
-            }
-            else if (colorSpace instanceof PDDeviceCMYK)
-            {
-                newOperator = new SetNonStrokingCMYKColor();
-            }
-            else if (colorSpace instanceof PDICCBased)
-            {
-                newOperator = new SetNonStrokingICCBasedColor();
-            }
-            else if (colorSpace instanceof PDCalRGB)
-            {
-                newOperator = new SetNonStrokingCalRGBColor();
-            }
-    
-            if (newOperator != null) 
-            {
-                colorInstance.setColorSpace(colorSpace);
-                newOperator.setContext(getContext());
-                newOperator.process(operator, argList);
-            }
-            else
-            {
-                log.warn("Not supported colorspace "+colorSpace.getName() 
-                        + " within operator "+operator.getOperation());
-            }
+            PDSeparation sep = (PDSeparation) colorSpace;
+            colorSpace = sep.getAlternateColorSpace();
+            COSArray values = sep.calculateColorValues(arguments.get(0));
+            colorInstance.setColorSpaceValue(values.toFloatArray());
         }
-        
     }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetStrokingSeparation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetStrokingSeparation.java?rev=1135129&r1=1135128&r2=1135129&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetStrokingSeparation.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/SetStrokingSeparation.java Mon Jun 13 15:08:54 2011
@@ -19,16 +19,10 @@ package org.apache.pdfbox.util.operator;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.pdmodel.graphics.color.PDCalRGB;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorState;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
-import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
-import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased;
 import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation;
 import org.apache.pdfbox.util.PDFOperator;
 
@@ -41,12 +35,6 @@ public class SetStrokingSeparation exten
 {
 
     /**
-     * Log instance.
-     */
-    private static final Log log =
-        LogFactory.getLog(SetStrokingSeparation.class);
-
-    /**
      * scn Set color space for non stroking operations.
      * @param operator The operator that is being executed.
      * @param arguments List
@@ -54,53 +42,15 @@ public class SetStrokingSeparation exten
      */
     public void process(PDFOperator operator, List<COSBase> arguments) throws IOException
     {
-        PDColorState color = context.getGraphicsState().getStrokingColor();
-        PDColorSpace colorSpace = color.getColorSpace();
+        PDColorState colorInstance = context.getGraphicsState().getStrokingColor();
+        PDColorSpace colorSpace = colorInstance.getColorSpace();
 
         if (colorSpace != null) 
         {
-            OperatorProcessor newOperator = null;
-            List<COSBase> argList = arguments;
-
-            if (colorSpace instanceof PDSeparation) 
-            {
-                PDSeparation sep = (PDSeparation) colorSpace;
-                colorSpace = sep.getAlternateColorSpace();
-                argList = sep.calculateColorValues(arguments.get(0)).toList();
-            }
-
-            if (colorSpace instanceof PDDeviceGray)
-            {
-                newOperator = new SetStrokingGrayColor();
-            }
-            else if (colorSpace instanceof PDDeviceRGB)
-            {
-                newOperator = new SetStrokingRGBColor();
-            }
-            else if (colorSpace instanceof PDDeviceCMYK)
-            {
-                newOperator = new SetStrokingCMYKColor();
-            }
-            else if (colorSpace instanceof PDICCBased)
-            {
-                newOperator = new SetStrokingICCBasedColor();
-            }
-            else if (colorSpace instanceof PDCalRGB)
-            {
-                newOperator = new SetStrokingCalRGBColor();
-            }
-
-            if (newOperator != null) 
-            {
-                color.setColorSpace(colorSpace);
-                newOperator.setContext(getContext());
-                newOperator.process(operator, argList);
-            }
-            else
-            {
-                log.warn("Not supported colorspace "+colorSpace.getName() 
-                        + " within operator "+operator.getOperation());
-            }
+            PDSeparation sep = (PDSeparation) colorSpace;
+            colorSpace = sep.getAlternateColorSpace();
+            COSArray values = sep.calculateColorValues(arguments.get(0));
+            colorInstance.setColorSpaceValue(values.toFloatArray());
         }
     }
 }