Search in sources :

Example 1 with ColorSpaceHelperFactory

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

the class PreflightConfiguration method createPdfA1BConfiguration.

public static PreflightConfiguration createPdfA1BConfiguration() {
    PreflightConfiguration configuration = new PreflightConfiguration();
    configuration.replaceProcess(CATALOG_PROCESS, CatalogValidationProcess.class);
    configuration.replaceProcess(FILE_SPECIF_PROCESS, FileSpecificationValidationProcess.class);
    configuration.replaceProcess(TRAILER_PROCESS, TrailerValidationProcess.class);
    configuration.replaceProcess(XREF_PROCESS, XRefValidationProcess.class);
    configuration.replaceProcess(ACRO_FORM_PROCESS, AcroFormValidationProcess.class);
    configuration.replaceProcess(BOOKMARK_PROCESS, BookmarkValidationProcess.class);
    configuration.replaceProcess(PAGES_TREE_PROCESS, PageTreeValidationProcess.class);
    configuration.replaceProcess(META_DATA_PROCESS, MetadataValidationProcess.class);
    configuration.replaceProcess(STREAM_PROCESS, StreamValidationProcess.class);
    configuration.replacePageProcess(PAGE_PROCESS, SinglePageValidationProcess.class);
    configuration.replacePageProcess(EXTGSTATE_PROCESS, ExtGStateValidationProcess.class);
    configuration.replacePageProcess(SHADING_PATTERN_PROCESS, ShadingPatternValidationProcess.class);
    configuration.replacePageProcess(GRAPHIC_PROCESS, GraphicObjectPageValidationProcess.class);
    configuration.replacePageProcess(TILING_PATTERN_PROCESS, TilingPatternValidationProcess.class);
    configuration.replacePageProcess(RESOURCES_PROCESS, ResourcesValidationProcess.class);
    configuration.replacePageProcess(FONT_PROCESS, FontValidationProcess.class);
    configuration.replacePageProcess(ACTIONS_PROCESS, ActionsValidationProcess.class);
    configuration.replacePageProcess(ANNOTATIONS_PROCESS, AnnotationValidationProcess.class);
    configuration.replacePageProcess(DESTINATION_PROCESS, DestinationValidationProcess.class);
    configuration.actionFact = new ActionManagerFactory();
    configuration.annotFact = new PDFAbAnnotationFactory();
    configuration.colorSpaceHelperFact = new ColorSpaceHelperFactory();
    return configuration;
}
Also used : PDFAbAnnotationFactory(org.apache.pdfbox.preflight.annotation.pdfa.PDFAbAnnotationFactory) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory) ActionManagerFactory(org.apache.pdfbox.preflight.action.ActionManagerFactory)

Example 2 with ColorSpaceHelperFactory

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

the class ShadingPatternValidationProcess method checkColorSpace.

/**
 * Checks if the ColorSapce entry is consistent which rules of the PDF Reference and the ISO 190005-1:2005
 * Specification.
 *
 * This method is called by the validate method.
 *
 * @param context the preflight context.
 * @param page the page to check.
 * @param shadingRes the Shading pattern to check.
 * @throws ValidationException
 */
protected void checkColorSpace(PreflightContext context, PDPage page, PDShading shadingRes) throws ValidationException {
    try {
        PDColorSpace pColorSpace = shadingRes.getColorSpace();
        PreflightConfiguration config = context.getConfig();
        ColorSpaceHelperFactory csFact = config.getColorSpaceHelperFact();
        ColorSpaceHelper csh = csFact.getColorSpaceHelper(context, pColorSpace, ColorSpaceRestriction.NO_PATTERN);
        csh.validate();
    } catch (IOException e) {
        LOGGER.debug("Unable to get the color space", e);
        context.addValidationError(new ValidationError(ERROR_GRAPHIC_INVALID_UNKNOWN_COLOR_SPACE, e.getMessage()));
    }
}
Also used : PreflightConfiguration(org.apache.pdfbox.preflight.PreflightConfiguration) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory) ColorSpaceHelper(org.apache.pdfbox.preflight.graphic.ColorSpaceHelper) IOException(java.io.IOException) ValidationError(org.apache.pdfbox.preflight.ValidationResult.ValidationError) PDColorSpace(org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)

Example 3 with ColorSpaceHelperFactory

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

the class SinglePageValidationProcess method validateColorSpaces.

/**
 * Check that all ColorSpace present in the Resource dictionary are conforming to the ISO 19005:2005-1
 * specification.
 *
 * @param context the preflight context.
 * @param page the page to check.
 */
protected void validateColorSpaces(PreflightContext context, PDPage page) {
    PDResources resources = page.getResources();
    if (resources != null) {
        PreflightConfiguration config = context.getConfig();
        ColorSpaceHelperFactory colorSpaceFactory = config.getColorSpaceHelperFact();
        for (COSName name : resources.getColorSpaceNames()) {
            try {
                PDColorSpace pdCS = resources.getColorSpace(name);
                ColorSpaceHelper csHelper = colorSpaceFactory.getColorSpaceHelper(context, pdCS, ColorSpaceRestriction.NO_RESTRICTION);
                csHelper.validate();
            } catch (IOException e) {
                // fixme: this code was previously in PDResources
                LOGGER.debug("Unable to create colorspace", e);
            }
        }
    }
}
Also used : PreflightConfiguration(org.apache.pdfbox.preflight.PreflightConfiguration) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory) COSName(org.apache.pdfbox.cos.COSName) PDResources(org.apache.pdfbox.pdmodel.PDResources) ColorSpaceHelper(org.apache.pdfbox.preflight.graphic.ColorSpaceHelper) IOException(java.io.IOException) PDColorSpace(org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)

Example 4 with ColorSpaceHelperFactory

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

the class PreflightStreamEngine method checkSetColorSpaceOperators.

/**
 * This method validates if the ColorSpace used as operand is consistent with
 * the color space defined in OutputIntent dictionaries.
 *
 * @param operator
 * @param arguments
 * @throws IOException
 */
protected void checkSetColorSpaceOperators(Operator operator, List<COSBase> arguments) throws IOException {
    if (!("CS".equals(operator.getName()) || "cs".equals(operator.getName()))) {
        return;
    }
    String colorSpaceName;
    if (arguments.get(0) instanceof COSString) {
        colorSpaceName = (arguments.get(0)).toString();
    } else if (arguments.get(0) instanceof COSName) {
        colorSpaceName = ((COSName) arguments.get(0)).getName();
    } else {
        registerError("The operand " + arguments.get(0) + " for colorSpace operator " + operator.getName() + " doesn't have the expected type", ERROR_GRAPHIC_UNEXPECTED_VALUE_FOR_KEY);
        return;
    }
    ColorSpaceHelper csHelper = null;
    ColorSpaces cs = null;
    try {
        cs = ColorSpaces.valueOf(colorSpaceName);
    } catch (IllegalArgumentException e) {
        /*
             * The color space is unknown. Try to access the resources dictionary, the color space can be a reference.
             */
        PDColorSpace pdCS = this.getResources().getColorSpace(COSName.getPDFName(colorSpaceName));
        if (pdCS != null) {
            cs = ColorSpaces.valueOf(pdCS.getName());
            PreflightConfiguration cfg = context.getConfig();
            ColorSpaceHelperFactory csFact = cfg.getColorSpaceHelperFact();
            csHelper = csFact.getColorSpaceHelper(context, pdCS, ColorSpaceRestriction.NO_RESTRICTION);
        }
    }
    if (cs == null) {
        registerError("The ColorSpace " + colorSpaceName + " is unknown", ERROR_GRAPHIC_UNEXPECTED_VALUE_FOR_KEY);
        return;
    }
    if (csHelper == null) {
        PDColorSpace pdCS = PDColorSpace.create(COSName.getPDFName(colorSpaceName));
        PreflightConfiguration cfg = context.getConfig();
        ColorSpaceHelperFactory csFact = cfg.getColorSpaceHelperFact();
        csHelper = csFact.getColorSpaceHelper(context, pdCS, ColorSpaceRestriction.NO_RESTRICTION);
    }
    csHelper.validate();
}
Also used : PreflightConfiguration(org.apache.pdfbox.preflight.PreflightConfiguration) COSName(org.apache.pdfbox.cos.COSName) ColorSpaces(org.apache.pdfbox.preflight.graphic.ColorSpaces) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory) COSString(org.apache.pdfbox.cos.COSString) ColorSpaceHelper(org.apache.pdfbox.preflight.graphic.ColorSpaceHelper) COSString(org.apache.pdfbox.cos.COSString) PDColorSpace(org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace)

Example 5 with ColorSpaceHelperFactory

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

the class PreflightStreamEngine method getColorSpaceHelper.

private ColorSpaceHelper getColorSpaceHelper(PDColorSpace pdCS) {
    PreflightConfiguration cfg = context.getConfig();
    ColorSpaceHelperFactory csFact = cfg.getColorSpaceHelperFact();
    return csFact.getColorSpaceHelper(context, pdCS, ColorSpaceRestriction.ONLY_DEVICE);
}
Also used : PreflightConfiguration(org.apache.pdfbox.preflight.PreflightConfiguration) ColorSpaceHelperFactory(org.apache.pdfbox.preflight.graphic.ColorSpaceHelperFactory)

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