The veraPDF Processor API


The main entry point to integrate veraPDF project into another one is to use the class that implements org.verapdf.processor.Processor interface.

Example Integration

public static void main(String[] args) {
	// Foundry initialising. Can be changed into PDFBox based one
	// Default validator config
	ValidatorConfig validatorConfig = ValidatorFactory.defaultConfig();
	// or it is possible to specify required parameters using ValidatorConfigBuilder. For example, to specify a validation flavour explicitly:
	// ValidatorConfig validatorConfig = new ValidatorConfigBuilder().flavour(PDFAFlavour.PDFA_4).build();
	// Default features config
	FeatureExtractorConfig featureConfig = FeatureFactory.defaultConfig();
	// Default plugins config
	PluginsCollectionConfig pluginsConfig = PluginsCollectionConfig.defaultConfig();
	// Default fixer config
	MetadataFixerConfig fixerConfig = FixerFactory.defaultConfig();
	// Tasks configuring
	EnumSet<TaskType> tasks = EnumSet.noneOf(TaskType.class);
	// Creating processor config
	ProcessorConfig processorConfig = ProcessorFactory.fromValues(validatorConfig, featureConfig, pluginsConfig, fixerConfig, tasks);
	// Creating processor and output stream. In this example output stream is System.out
	try (BatchProcessor processor = ProcessorFactory.fileBatchProcessor(processorConfig);
		 OutputStream reportStream = System.out) {
		// Generating list of files for processing
		List<File> files = new ArrayList<>();
		files.add(new File("location/file.pdf"));
		// starting the processor
		processor.process(files, ProcessorFactory.getHandler(FormatOption.MRR, true, reportStream,
	} catch (VeraPDFException e) {
		System.err.println("Exception raised while processing batch");
	} catch (IOException excep) {
		System.err.println("Exception raised closing MRR temp file.");