Search in sources :

Example 6 with ColorSpaceHelperFactory

use of org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory in project pdfbox by apache.

the class XObjImageValidator method checkColorSpaceAndImageMask.

/*
     * 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.
     */
protected void checkColorSpaceAndImageMask() throws ValidationException {
    COSBase csImg = this.xobject.getItem(COSName.COLORSPACE);
    COSBase bitsPerComp = this.xobject.getItem("BitsPerComponent");
    COSBase mask = this.xobject.getItem(COSName.MASK);
    if (isImageMaskTrue()) {
        if (csImg != null || mask != null) {
            context.addValidationError(new ValidationError(ERROR_GRAPHIC_UNEXPECTED_KEY, "ImageMask entry is true, ColorSpace and Mask are forbidden."));
        }
        Integer bitsPerCompValue = COSUtils.getAsInteger(bitsPerComp, cosDocument);
        if (bitsPerCompValue != null && bitsPerCompValue != 1) {
            context.addValidationError(new ValidationError(ERROR_GRAPHIC_UNEXPECTED_VALUE_FOR_KEY, "ImageMask entry is true, BitsPerComponent must be absent or 1."));
        }
    } else {
        try {
            PreflightConfiguration config = context.getConfig();
            ColorSpaceHelperFactory csFact = config.getColorSpaceHelperFact();
            PDColorSpace pdCS = PDColorSpace.create(csImg);
            ColorSpaceHelper csh = csFact.getColorSpaceHelper(context, pdCS, ColorSpaceRestriction.NO_PATTERN);
            csh.validate();
        } catch (IOException e) {
            LOGGER.debug("Couldn't create PDColorSpace " + csImg, e);
            context.addValidationError(new ValidationError(ERROR_GRAPHIC_INVALID_UNKNOWN_COLOR_SPACE));
        }
    }
}
Also used : PreflightConfiguration(org.apache.pdfbox.preflight.PreflightConfiguration) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory) COSBase(org.apache.pdfbox.cos.COSBase) ValidationError(org.apache.pdfbox.preflight.ValidationResult.ValidationError) ColorSpaceHelper(org.apache.pdfbox.preflight.graphic.ColorSpaceHelper) IOException(java.io.IOException) PDColorSpace(org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)

Aggregations

ColorSpaceHelperFactory (org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory)6 PreflightConfiguration (org.apache.pdfbox.preflight.PreflightConfiguration)5 PDColorSpace (org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)4 ColorSpaceHelper (org.apache.pdfbox.preflight.graphic.ColorSpaceHelper)4 IOException (java.io.IOException)3 COSName (org.apache.pdfbox.cos.COSName)2 ValidationError (org.apache.pdfbox.preflight.ValidationResult.ValidationError)2 COSBase (org.apache.pdfbox.cos.COSBase)1 COSString (org.apache.pdfbox.cos.COSString)1 PDResources (org.apache.pdfbox.pdmodel.PDResources)1 ActionManagerFactory (org.apache.pdfbox.preflight.action.ActionManagerFactory)1 PDFAbAnnotationFactory (org.apache.pdfbox.preflight.annotation.pdfa.PDFAbAnnotationFactory)1 ColorSpaces (org.apache.pdfbox.preflight.graphic.ColorSpaces)1