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:30 UTC

svn commit: r1910371 - /pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java

Author: tilman
Date: Mon Jun 12 16:50:29 2023
New Revision: 1910371

URL: http://svn.apache.org/viewvc?rev=1910371&view=rev
Log:
PDFBOX-5620: BitsPerComponent 16 is invalid for PDF/A-1b, as reported by vasterasstad in the VeraPDF project

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java?rev=1910371&r1=1910370&r2=1910371&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/xobject/XObjImageValidator.java Mon Jun 12 16:50:29 2023
@@ -110,6 +110,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.
@@ -179,6 +193,7 @@ public class XObjImageValidator extends
         checkAlternates();
         checkInterpolate();
         checkIntent();
+        checkBPC();
 
         checkColorSpaceAndImageMask();
     }