You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/09/03 18:35:47 UTC

svn commit: r1622295 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/graphics/color/PDColorSpace.java util/operator/color/SetNonStrokingColorSpace.java util/operator/color/SetStrokingColorSpace.java

Author: jahewson
Date: Wed Sep  3 16:35:47 2014
New Revision: 1622295

URL: http://svn.apache.org/r1622295
Log:
PDFBOX-2311: Log message rather than exception when a missing color space is encountered

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetNonStrokingColorSpace.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetStrokingColorSpace.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java?rev=1622295&r1=1622294&r2=1622295&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpace.java Wed Sep  3 16:35:47 2014
@@ -63,6 +63,7 @@ public abstract class PDColorSpace imple
      * @param colorSpaces the ColorSpace dictionary from the current resources, if any
      * @param patterns The Pattern dictionary from the current resources, if any
      * @return a new color space
+     * @throws MissingException if the color space is missing from the resources dictionary
      * @throws IOException if the color space is unknown or cannot be created
      */
     public static PDColorSpace create(COSBase colorSpace,
@@ -101,8 +102,7 @@ public abstract class PDColorSpace imple
             }
             else
             {
-                throw new IOException("The color space '" + name + "' does not exist in the " +
-                                      "current page's resources");
+                throw new MissingException("Missing color space: " + name.getName());
             }
         }
         else if (colorSpace instanceof COSArray)
@@ -258,4 +258,12 @@ public abstract class PDColorSpace imple
     {
         return array;
     }
+
+    public static class MissingException extends IOException
+    {
+        private MissingException(String message)
+        {
+            super(message);
+        }
+    }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetNonStrokingColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetNonStrokingColorSpace.java?rev=1622295&r1=1622294&r2=1622295&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetNonStrokingColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetNonStrokingColorSpace.java Wed Sep  3 16:35:47 2014
@@ -19,6 +19,8 @@ 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.COSBase;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
@@ -33,16 +35,25 @@ import org.apache.pdfbox.util.operator.O
  */
 public class SetNonStrokingColorSpace extends OperatorProcessor
 {
+    private static final Log LOG = LogFactory.getLog(SetNonStrokingColorSpace.class);
+
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
         COSName name = (COSName)arguments.get(0);
 
-        PDColorSpace cs = PDColorSpace.create(name,
-                context.getResources().getColorSpaces(),
-                context.getResources().getPatterns());
+        try
+        {
+            PDColorSpace cs = PDColorSpace.create(name,
+                    context.getResources().getColorSpaces(),
+                    context.getResources().getPatterns());
 
-        context.getGraphicsState().setNonStrokingColorSpace(cs);
-        context.getGraphicsState().setNonStrokingColor(cs.getInitialColor());
+            context.getGraphicsState().setNonStrokingColorSpace(cs);
+            context.getGraphicsState().setNonStrokingColor(cs.getInitialColor());
+        }
+        catch (PDColorSpace.MissingException e)
+        {
+            LOG.error("Missing color space: " + name.getName());
+        }
     }
 }
\ No newline at end of file

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetStrokingColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetStrokingColorSpace.java?rev=1622295&r1=1622294&r2=1622295&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetStrokingColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/color/SetStrokingColorSpace.java Wed Sep  3 16:35:47 2014
@@ -19,6 +19,8 @@ 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.COSBase;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
@@ -33,16 +35,25 @@ import org.apache.pdfbox.util.operator.O
  */
 public class SetStrokingColorSpace extends OperatorProcessor
 {
+    private static final Log LOG = LogFactory.getLog(SetStrokingColorSpace.class);
+
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
         COSName name = (COSName)arguments.get(0);
 
-        PDColorSpace cs = PDColorSpace.create(name,
-                context.getResources().getColorSpaces(),
-                context.getResources().getPatterns());
+        try
+        {
+            PDColorSpace cs = PDColorSpace.create(name,
+                    context.getResources().getColorSpaces(),
+                    context.getResources().getPatterns());
 
-        context.getGraphicsState().setStrokingColorSpace(cs);
-        context.getGraphicsState().setStrokingColor(cs.getInitialColor());
+            context.getGraphicsState().setStrokingColorSpace(cs);
+            context.getGraphicsState().setStrokingColor(cs.getInitialColor());
+        }
+        catch (PDColorSpace.MissingException e)
+        {
+            LOG.error("Missing color space: " + name.getName());
+        }
     }
 }
\ No newline at end of file