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/03/20 17:25:51 UTC

svn commit: r1083488 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java

Author: lehmi
Date: Sun Mar 20 16:25:51 2011
New Revision: 1083488

URL: http://svn.apache.org/viewvc?rev=1083488&view=rev
Log:
PDFBOX-981: added DeviceGray colorspace as possible entry in an cs-array, as proposed by Matt England

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java?rev=1083488&r1=1083487&r2=1083488&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDColorSpaceFactory.java Sun Mar 20 16:25:51 2011
@@ -28,6 +28,7 @@ import org.apache.pdfbox.cos.COSFloat;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.common.PDStream;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 
 /**
  * This class represents a color space in a pdf document.
@@ -69,7 +70,7 @@ public final class PDColorSpaceFactory
      *
      * @throws IOException If the color space name is unknown.
      */
-    public static PDColorSpace createColorSpace( COSBase colorSpace, Map colorSpaces ) throws IOException
+    public static PDColorSpace createColorSpace( COSBase colorSpace, Map<String, PDColorSpace> colorSpaces ) throws IOException
     {
         PDColorSpace retval = null;
         if( colorSpace instanceof COSName )
@@ -79,51 +80,55 @@ public final class PDColorSpaceFactory
         else if( colorSpace instanceof COSArray )
         {
             COSArray array = (COSArray)colorSpace;
-            COSName type = (COSName)array.getObject( 0 );
-            if( type.getName().equals( PDCalGray.NAME ) )
+            String name = ((COSName)array.getObject( 0 )).getName();
+            if( name.equals( PDCalGray.NAME ) )
             {
                 retval = new PDCalGray( array );
             }
-            else if( type.getName().equals( PDDeviceRGB.NAME ) )
+            else if( name.equals( PDDeviceRGB.NAME ) )
             {
                 retval = PDDeviceRGB.INSTANCE;
             }
-            else if( type.getName().equals( PDDeviceCMYK.NAME ) )
+            else if( name.equals( PDDeviceGray.NAME ) )
+            {
+                retval = new PDDeviceGray();
+            }
+            else if( name.equals( PDDeviceCMYK.NAME ) )
             {
                 retval = PDDeviceCMYK.INSTANCE;
             }
-            else if( type.getName().equals( PDCalRGB.NAME ) )
+            else if( name.equals( PDCalRGB.NAME ) )
             {
                 retval = new PDCalRGB( array );
             }
-            else if( type.getName().equals( PDDeviceN.NAME ) )
+            else if( name.equals( PDDeviceN.NAME ) )
             {
                 retval = new PDDeviceN( array );
             }
-            else if( type.getName().equals( PDIndexed.NAME ) ||
-                   type.getName().equals( PDIndexed.ABBREVIATED_NAME ))
+            else if( name.equals( PDIndexed.NAME ) ||
+                   name.equals( PDIndexed.ABBREVIATED_NAME ))
             {
                 retval = new PDIndexed( array );
             }
-            else if( type.getName().equals( PDLab.NAME ) )
+            else if( name.equals( PDLab.NAME ) )
             {
                 retval = new PDLab( array );
             }
-            else if( type.getName().equals( PDSeparation.NAME ) )
+            else if( name.equals( PDSeparation.NAME ) )
             {
                 retval = new PDSeparation( array );
             }
-            else if( type.getName().equals( PDICCBased.NAME ) )
+            else if( name.equals( PDICCBased.NAME ) )
             {
                 retval = new PDICCBased( array );
             }
-            else if( type.getName().equals( PDPattern.NAME ) )
+            else if( name.equals( PDPattern.NAME ) )
             {
                 retval = new PDPattern( array );
             }
             else
             {
-                throw new IOException( "Unknown colorspace array type:" + type );
+                throw new IOException( "Unknown colorspace array type:" + name );
             }
         }
         else
@@ -157,7 +162,7 @@ public final class PDColorSpaceFactory
      *
      * @throws IOException If the color space name is unknown.
      */
-    public static PDColorSpace createColorSpace( String colorSpaceName, Map colorSpaces ) throws IOException
+    public static PDColorSpace createColorSpace( String colorSpaceName, Map<String, PDColorSpace> colorSpaces ) throws IOException
     {
         PDColorSpace cs = null;
         if( colorSpaceName.equals( PDDeviceCMYK.NAME ) ||