You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2023/06/12 16:50:34 UTC
svn commit: r1910372 - /pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java
Author: tilman
Date: Mon Jun 12 16:50:33 2023
New Revision: 1910372
URL: http://svn.apache.org/viewvc?rev=1910372&view=rev
Log:
PDFBOX-5620: BitsPerComponent 16 is invalid for PDF/A-1b, as reported by vasterasstad in the VeraPDF project
Modified:
pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java
Modified: pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java?rev=1910372&r1=1910371&r2=1910372&view=diff
==============================================================================
--- pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java (original)
+++ pdfbox/branches/2.0/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java Mon Jun 12 16:50:33 2023
@@ -107,6 +107,20 @@ public class XObjImageValidator extends
}
}
+ /**
+ * Valid values are 1, 2, 4 and 8, not 16, see
+ * <a href="https://github.com/veraPDF/veraPDF-library/issues/1344">here</a>.
+ */
+ protected void checkBPC()
+ {
+ int bpc = xImage.getBitsPerComponent();
+ if (bpc != 1 && bpc != 2 && bpc != 4 && bpc != 8)
+ {
+ context.addValidationError(new ValidationError(ERROR_GRAPHIC_UNEXPECTED_VALUE_FOR_KEY,
+ "Unexpected value " + bpc + " for BitsPerComponent key in image"));
+ }
+ }
+
/*
* According to the PDF Reference file, there are some specific rules on following fields ColorSpace, Mask,
* ImageMask and BitsPerComponent. If ImageMask is set to true, ColorSpace and Mask entries are forbidden.
@@ -176,6 +190,7 @@ public class XObjImageValidator extends
checkAlternates();
checkInterpolate();
checkIntent();
+ checkBPC();
checkColorSpaceAndImageMask();
}