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/10/30 21:30:13 UTC

svn commit: r1635607 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: contentstream/operator/color/ pdmodel/

Author: jahewson
Date: Thu Oct 30 20:30:12 2014
New Revision: 1635607

URL: http://svn.apache.org/r1635607
Log:
PDFBOX-2407: Support for default color spaces

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingColorSpace.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceCMYKColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceGrayColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceRGBColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingColorSpace.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceCMYKColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceGrayColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceRGBColor.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingColorSpace.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingColorSpace.java Thu Oct 30 20:30:12 2014
@@ -44,7 +44,7 @@ public class SetNonStrokingColorSpace ex
 
         try
         {
-            PDColorSpace cs = PDColorSpace.create(name, context.getResources());
+            PDColorSpace cs = context.getResources().getColorSpace(name);
             context.getGraphicsState().setNonStrokingColorSpace(cs);
             context.getGraphicsState().setNonStrokingColor(cs.getInitialColor());
         }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceCMYKColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceCMYKColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceCMYKColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceCMYKColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -34,7 +36,8 @@ public class SetNonStrokingDeviceCMYKCol
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setNonStrokingColorSpace(PDDeviceCMYK.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICECMYK);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceGrayColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceGrayColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceGrayColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceGrayColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -34,7 +36,8 @@ public class SetNonStrokingDeviceGrayCol
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setNonStrokingColorSpace(PDDeviceGray.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICEGRAY);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceRGBColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceRGBColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceRGBColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetNonStrokingDeviceRGBColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -34,7 +36,8 @@ public class SetNonStrokingDeviceRGBColo
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setNonStrokingColorSpace(PDDeviceRGB.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICERGB);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingColorSpace.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingColorSpace.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingColorSpace.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingColorSpace.java Thu Oct 30 20:30:12 2014
@@ -44,7 +44,7 @@ public class SetStrokingColorSpace exten
 
         try
         {
-            PDColorSpace cs = PDColorSpace.create(name, context.getResources());
+            PDColorSpace cs = context.getResources().getColorSpace(name);
             context.getGraphicsState().setStrokingColorSpace(cs);
             context.getGraphicsState().setStrokingColor(cs.getInitialColor());
         }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceCMYKColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceCMYKColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceCMYKColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceCMYKColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -33,7 +35,8 @@ public class SetStrokingDeviceCMYKColor 
     @Override
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setStrokingColorSpace(PDDeviceCMYK.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICECMYK);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceGrayColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceGrayColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceGrayColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceGrayColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -33,7 +35,8 @@ public class SetStrokingDeviceGrayColor 
 {
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setStrokingColorSpace(PDDeviceGray.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICEGRAY);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceRGBColor.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceRGBColor.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceRGBColor.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/color/SetStrokingDeviceRGBColor.java Thu Oct 30 20:30:12 2014
@@ -17,6 +17,8 @@
 package org.apache.pdfbox.contentstream.operator.color;
 
 import org.apache.pdfbox.cos.COSBase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 import org.apache.pdfbox.contentstream.operator.Operator;
 
@@ -40,7 +42,8 @@ public class SetStrokingDeviceRGBColor e
      */
     public void process(Operator operator, List<COSBase> arguments) throws IOException
     {
-        context.getGraphicsState().setStrokingColorSpace(PDDeviceRGB.INSTANCE);
+        PDColorSpace cs = context.getResources().getColorSpace(COSName.DEVICERGB);
+        context.getGraphicsState().setNonStrokingColorSpace(cs);
         super.process(operator, arguments);
     }
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java?rev=1635607&r1=1635606&r2=1635607&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java Thu Oct 30 20:30:12 2014
@@ -96,6 +96,23 @@ public final class PDResources implement
      */
     public PDColorSpace getColorSpace(COSName name) throws IOException
     {
+        // check for default color spaces
+        if (name.equals(COSName.DEVICECMYK) &&
+            get(COSName.COLORSPACE, COSName.DEFAULT_CMYK) != null)
+        {
+            name = COSName.DEFAULT_CMYK;
+        }
+        else if (name.equals(COSName.DEVICERGB) &&
+                 get(COSName.COLORSPACE, COSName.DEFAULT_RGB) != null)
+        {
+            name = COSName.DEFAULT_RGB;
+        }
+        else if (name.equals(COSName.DEVICEGRAY) &&
+                 get(COSName.COLORSPACE, COSName.DEFAULT_RGB) != null)
+        {
+            name = COSName.DEFAULT_GRAY;
+        }
+
         COSBase object = get(COSName.COLORSPACE, name);
         if (object == null)
         {