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