use of org.apache.pdfbox.preflight.PreflightPath in project pdfbox by apache.
the class ExtGStateValidationProcess method validate.
/**
* Validate the ExtGState dictionaries.
*
* @param context the context which contains the Resource dictionary.
* @throws ValidationException thrown if a the Extended Graphic State isn't valid.
*/
@Override
public void validate(PreflightContext context) throws ValidationException {
PreflightPath vPath = context.getValidationPath();
if (vPath.isEmpty()) {
return;
}
if (!vPath.isExpectedType(COSDictionary.class)) {
context.addValidationError(new ValidationError(PreflightConstants.ERROR_GRAPHIC_XOBJECT_INVALID_TYPE, "ExtGState validation required at least a Resource dictionary"));
} else {
COSDictionary extGStatesDict = (COSDictionary) vPath.peek();
List<COSDictionary> listOfExtGState = extractExtGStateDictionaries(context, extGStatesDict);
validateTransparencyRules(context, listOfExtGState);
validateFonts(context, listOfExtGState);
}
}
use of org.apache.pdfbox.preflight.PreflightPath in project pdfbox by apache.
the class FontValidationProcess method validate.
@Override
public void validate(PreflightContext context) throws ValidationException {
PreflightPath vPath = context.getValidationPath();
if (vPath.isEmpty()) {
return;
}
if (!vPath.isExpectedType(PDFont.class)) {
context.addValidationError(new ValidationError(PreflightConstants.ERROR_FONTS_INVALID_DATA, "Font validation process needs at least one PDFont object"));
} else {
PDFont font = (PDFont) vPath.peek();
FontContainer<?> fontContainer = context.getFontContainer(font.getCOSObject());
if (fontContainer == null) {
// if fontContainer isn't null the font is already checked
FontValidator<? extends FontContainer<? extends PDFont>> validator = getFontValidator(context, font);
if (validator != null) {
validator.validate();
}
}
}
}
use of org.apache.pdfbox.preflight.PreflightPath in project pdfbox by apache.
the class ShadingPatternValidationProcess method validate.
@Override
public void validate(PreflightContext context) throws ValidationException {
PreflightPath vPath = context.getValidationPath();
if (vPath.isEmpty()) {
return;
}
if (!vPath.isExpectedType(PDShading.class)) {
context.addValidationError(new ValidationError(PreflightConstants.ERROR_GRAPHIC_MISSING_OBJECT, "ShadingPattern validation required at least a PDResources"));
} else {
PDShading shadingResource = (PDShading) vPath.peek();
PDPage page = vPath.getClosestPathElement(PDPage.class);
checkColorSpace(context, page, shadingResource);
checkGraphicState(context, page, shadingResource);
}
}
use of org.apache.pdfbox.preflight.PreflightPath in project pdfbox by apache.
the class ContextHelper method callValidation.
/**
* Put the element to check on the top of the ValidationPath and call the validation method on the Process.
*
* @param context
* (mandatory) the preflight context that contains all required information
* @param element
* @param processName
* the process to instantiate and to compute
* @throws ValidationException
*/
private static void callValidation(PreflightContext context, Object element, String processName) throws ValidationException {
PreflightPath validationPath = context.getValidationPath();
if (hasRecursion(context, element, validationPath)) {
return;
}
boolean needPop = validationPath.pushObject(element);
PreflightConfiguration config = context.getConfig();
ValidationProcess process = config.getInstanceOfProcess(processName);
process.validate(context);
if (needPop) {
validationPath.pop();
}
}
use of org.apache.pdfbox.preflight.PreflightPath in project pdfbox by apache.
the class XObjFormValidator method validateXObjectContent.
/**
* An Form XObject is a ContentStream. This method method uses an instance of ContentStreamWrapper to check the
* Stream of this Form XObject.
*/
protected void validateXObjectContent() throws ValidationException {
PreflightPath vPath = context.getValidationPath();
PreflightContentStream csWrapper = new PreflightContentStream(context, vPath.getClosestPathElement(PDPage.class));
csWrapper.validateXObjContentStream(pdXObj);
}
Aggregations