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 2012/04/17 23:05:25 UTC

svn commit: r1327281 - in /pdfbox/trunk/preflight/src: main/java/org/apache/padaf/preflight/graphics/color/StandardColorSpaceHelper.java test/resources/expected_errors.txt

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