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