Author: leleueri
Date: Tue Apr 17 21:05:24 2012
New Revision: 1327281

URL: http://svn.apache.org/viewvc?rev=1327281&view=rev
Log:
PDFBOX-1274 : Alternate CS isn't check anymore in the ICCBased CS. Make a 
different between missing DestOutputProfile and Unexpected CS of the ICCProfile.

Modified:
    
pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
    pdfbox/trunk/preflight/src/test/resources/expected_errors.txt

Modified: 
pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java?rev=1327281&r1=1327280&r2=1327281&view=diff
==============================================================================
--- 
pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
 (original)
+++ 
pdfbox/trunk/preflight/src/main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java
 Tue Apr 17 21:05:24 2012
@@ -132,6 +132,7 @@ public class StandardColorSpaceHelper im
        protected final boolean processAllColorSpace(PDColorSpace pdcs,
                        List<ValidationError> result) {
                ColorSpaces cs = ColorSpaces.valueOf(pdcs.getName());
+               
                switch (cs) {
                case DeviceRGB:
                case DeviceRGB_SHORT:
@@ -183,8 +184,11 @@ public class StandardColorSpaceHelper im
         */
        protected boolean processRGBColorSpace(List<ValidationError> result) {
                // ---- ICCProfile must contain a RGB Color Space
-               if (iccpw == null || !iccpw.isRGBColorSpace()) {
-                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_RGB, "DestOutputProfile is 
missing"));
+               if (iccpw == null) {
+                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_MISSING, "DestOutputProfile 
is missing"));
+                       return false;                   
+               } if (!iccpw.isRGBColorSpace()) {
+                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_RGB, "DestOutputProfile isn't 
RGB ColorSpace"));
                        return false;
                }
                return true;
@@ -200,8 +204,11 @@ public class StandardColorSpaceHelper im
         */
        protected boolean processCYMKColorSpace(List<ValidationError> result) {
                // ---- ICCProfile must contain a CYMK Color Space
-               if (iccpw == null || !iccpw.isCMYKColorSpace()) {
-                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_CMYK, "DestOutputProfile is 
missing"));
+               if (iccpw == null) {
+                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_MISSING, "DestOutputProfile 
is missing"));
+                       return false;                   
+               } if (!iccpw.isCMYKColorSpace()) {
+                       result.add(new 
ValidationError(ERROR_GRAPHIC_INVALID_COLOR_SPACE_CMYK, "DestOutputProfile 
isn't CMYK ColorSpace"));
                        return false;
                }
                return true;
@@ -286,20 +293,16 @@ public class StandardColorSpaceHelper im
                                                                
ERROR_GRAPHIC_INVALID_PATTERN_COLOR_SPACE_FORBIDDEN, "Pattern is forbidden as 
AlternateColorSpace of a ICCBased"));
                                                return false;
                                        }
-
-                                       List<ValidationError> warning = new 
ArrayList<ValidationError>();
-                                       if (!processAllColorSpace(altpdcs, 
warning)) {
-                                               // TODO manage in lazy mode
-                                               boolean strict = true;
-                                               // can be an error in strict 
mode according to the version of the ICC Profile
-                                               if (strict && 
-                                                               
((iccp.getMajorVersion() == 2 && iccp.getMinorVersion() > 0x40) 
-                                                                               
|| (iccp.getMajorVersion() > 2))) {
-                                                       result.addAll(warning);
-                                                       return false;
-                                               }
-                                               return true;
-                                       }
+ 
+                                       /*
+                                        * According to the ISO-19005-1:2005
+                                        * 
+                                        * A conforming reader shall render 
ICCBased colour spaces as specified 
+                                        * by the ICC specification, and shall 
not use the Alternate colour space 
+                                        * specified in an ICC profile stream 
dictionary
+                                        * 
+                                        * We don't check the alternate 
ColorSpaces
+                                        */
                                }
                        }
                } catch (IOException e) {
@@ -415,11 +418,6 @@ public class StandardColorSpaceHelper im
                        List<ValidationError> result) {
                PDSeparation separation = (PDSeparation) pdcs;
                try {
-                       if (iccpw == null) {
-                               result.add(new ValidationError(
-                                               
ERROR_GRAPHIC_INVALID_COLOR_SPACE_MISSING,"DestOutputProfile is missing"));
-                               return false;
-                       }
 
                        PDColorSpace altCol = 
separation.getAlternateColorSpace();
                        if (altCol != null) {

Modified: pdfbox/trunk/preflight/src/test/resources/expected_errors.txt
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/test/resources/expected_errors.txt?rev=1327281&r1=1327280&r2=1327281&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/test/resources/expected_errors.txt (original)
+++ pdfbox/trunk/preflight/src/test/resources/expected_errors.txt Tue Apr 17 
21:05:24 2012
@@ -60,25 +60,25 @@ isartor-6-2-10-t01-fail-c.pdf=1.2.10
 isartor-6-2-3-3-t01-fail-a.pdf=2.4.2
 isartor-6-2-3-3-t02-fail-a.pdf=2.4.1
 isartor-6-2-3-3-t02-fail-b.pdf=2.4.1
-isartor-6-2-3-3-t02-fail-c.pdf=2.4.1
+isartor-6-2-3-3-t02-fail-c.pdf=2.4.3
 isartor-6-2-3-3-t02-fail-d.pdf=2.4.1
-isartor-6-2-3-3-t02-fail-e.pdf=2.4.1
-isartor-6-2-3-3-t02-fail-f.pdf=2.4.1
-isartor-6-2-3-3-t02-fail-g.pdf=2.4.1
+isartor-6-2-3-3-t02-fail-e.pdf=2.4.3
+isartor-6-2-3-3-t02-fail-f.pdf=2.4.3
+isartor-6-2-3-3-t02-fail-g.pdf=2.4.3
 isartor-6-2-3-3-t02-fail-h.pdf=2.4.1
 isartor-6-2-3-3-t02-fail-i.pdf=2.4.1
 isartor-6-2-3-3-t02-fail-j.pdf=2.4.1
 isartor-6-2-3-3-t03-fail-a.pdf=2.4.2
 isartor-6-2-3-3-t03-fail-b.pdf=2.4.2
-isartor-6-2-3-3-t03-fail-c.pdf=2.4.2
+isartor-6-2-3-3-t03-fail-c.pdf=2.4.3
 isartor-6-2-3-3-t03-fail-d.pdf=2.4.2
-isartor-6-2-3-3-t03-fail-e.pdf=2.4.2
+isartor-6-2-3-3-t03-fail-e.pdf=2.4.3
 isartor-6-2-3-3-t04-fail-a.pdf=2.4.3
 isartor-6-2-3-3-t04-fail-b.pdf=2.4.3
 isartor-6-2-3-3-t04-fail-c.pdf=2.4.3
 isartor-6-2-3-3-t04-fail-d.pdf=2.4.3
-isartor-6-2-3-3-t05-fail-a.pdf=2.4.1 // before was 2.4.3 but now the 
IndexColorSpace doesn't check the ICC, it is delegated to the based colorspace 
helper  
-isartor-6-2-3-3-t05-fail-b.pdf=2.4.1 // before was 2.4.3 but now the 
IndexColorSpace doesn't check the ICC, it is delegated to the based colorspace 
helper
+isartor-6-2-3-3-t05-fail-a.pdf=2.4.3  
+isartor-6-2-3-3-t05-fail-b.pdf=2.4.3
 isartor-6-2-3-4-t01-fail-a.pdf=2.4.3
 isartor-6-2-3-4-t01-fail-b.pdf=2.4.3
 isartor-6-2-4-t01-fail-a.pdf=2.3


Reply via email to