PDF/A Compliance

PDF/A Overview

PDF/A is an ISO standard (ISO 19005) for long-term archival of PDF documents. It restricts certain PDF features (encryption, external references, non-embedded fonts, JavaScript) to ensure self-contained, reproducible documents.

PdfAValidator

PdfAValidator checks a document for conformance with a specified PDF/A version. PdfAValidationResult.isCompliant() returns whether the document passes validation:

try (PdfAValidator validator = new PdfAValidator()) {
    PdfAValidationResult result = validator.validate("document.pdf", PdfFormat.PDF_A_1B);
    if (!result.isCompliant()) {
        for (PdfAViolation v : result.getViolations()) {
            System.out.println(v.getMessage());
        }
    }
}

getViolations() returns the list of PdfAViolation objects, each describing a specific conformance failure with a rule ID, message, and object path.

PdfAConverter

PdfAConverter converts a non-compliant document to a target PDF/A format, applying necessary structural transformations during the conversion.

Rule-Based Validation

ActionRules.validate() checks action dictionaries against the PDF/A specification. AnnotationRules.validate() checks annotation conformance. These classes provide granular validation at the object level.

Remediation

After validation identifies violations, apply the corresponding fix class:

  • ActionFixes — remove forbidden action dictionaries
  • AnnotationFixes — correct non-compliant annotations
  • FileStructureFixes — fix file-level structural issues

See PDF/A Fixes for detailed remediation workflows.

See Also