Validation checks
The Pdftools SDK performs multiple lexical, syntactic, and semantic checks when validating a PDF document according to an ISO standard or a corporate directive.
The table shows details of the validation checks performed according to the specification and conformance level.
| PDF/A-1 | PDF/A-2 & PDF/A-3 | Level U | Level A | ||
|---|---|---|---|---|---|
| Lexical checks | |||||
| Structure of tokens such as keywords, names, numbers, and strings | ✓ | ✓ | ✓ | ✓ | ✓ |
| Structure of the cross-reference table | ✓ | ✓ | ✓ | ✓ | ✓ |
| File positions in the trailer dictionary and cross reference table | ✓ | ✓ | ✓ | ✓ | ✓ |
| Whether a referenced object has the correct object and generation number | ✓ | ✓ | ✓ | ✓ | ✓ |
| Length attribute of stream objects | ✓ | ✓ | ✓ | ✓ | ✓ |
| No header offset | ✓ | ✓ | ✓ | ✓ | |
| Contains a binary marker | ✓ | ✓ | ✓ | ✓ | |
| Syntactic checks | |||||
| Structure of dictionaries, arrays, indirect objects, and streams | ✓ | ✓ | ✓ | ✓ | ✓ |
| Compression errors such as CCITT, JPEG, and Flate | ✓ | ✓ | ✓ | ✓ | ✓ |
| Errors in embedded font programs | ✓ | ✓ | ✓ | ✓ | ✓ |
| Errors in ICC color profiles | ✓ | ✓ | ✓ | ✓ | ✓ |
| Semantic checks | |||||
| Required entries in dictionaries, such as width entry in an image dictionary | ✓ | ✓ | ✓ | ✓ | ✓ |
| Inherited attributes | ✓ | ✓ | ✓ | ✓ | ✓ |
| Value of the parent entries in dictionaries, such as page objects | ✓ | ✓ | ✓ | ✓ | ✓ |
| Type of the dictionary entry’s value, such as integer, string, or name | ✓ | ✓ | ✓ | ✓ | ✓ |
| Whether the object must be indirect or direct (for example, a page object must be an indirect object) | ✓ | ✓ | ✓ | ✓ | ✓ |
| Order of operators in content streams | ✓ | ✓ | ✓ | ✓ | ✓ |
| Number of operands of the operators | ✓ | ✓ | ✓ | ✓ | ✓ |
| Type of operands of the operators | ✓ | ✓ | ✓ | ✓ | ✓ |
| Value ranges of the operands | ✓ | ✓ | ✓ | ✓ | ✓ |
| Unknown referenced resources | ✓ | ✓ | ✓ | ✓ | ✓ |
| Operand stack overflow and underflow | ✓ | ✓ | ✓ | ✓ | ✓ |
| Inconsistent information, such as an image having both a stencil mask and soft mask | ✓ | ✓ | ✓ | ✓ | ✓ |
| Conformance to implementation limits defined by the PDF Reference | ✓ | ✓ | ✓ | ✓ | ✓ |
| No unrendered XFA forms | ✓ | ✓ | ✓ | ✓ | ✓ |
| Contains a unique file identifier | ✓ | ✓ | ✓ | ✓ | |
| Contains document metadata | ✓ | ✓ | ✓ | ✓ | |
| Contains embedded font programs where needed | ✓ | ✓ | ✓ | ✓ | |
| Contains character to glyph mapping (encoding) information for the fonts | ✓ | ✓ | ✓ | ✓ | |
| Contains an output intent if needed | ✓ | ✓ | ✓ | ✓ | |
| No encryption | ✓ | ✓ | ✓ | ✓ | |
| No LZW and non-standard filters | ✓ | ✓ | ✓ | ✓ | |
| No JavaScript | ✓ | ✓ | ✓ | ✓ | |
| No unallowed annotations | ✓ | ✓ | ✓ | ✓ | |
| No unallowed actions | ✓ | ✓ | ✓ | ✓ | |
| No form fields that are generated on the fly | ✓ | ✓ | ✓ | ✓ | |
| No embedded PostScript code | ✓ | ✓ | ✓ | ✓ | |
| No invisible, hidden or non-printable annotations | ✓ | ✓ | ✓ | ✓ | |
| No device-specific color spaces | ✓ | ✓ | ✓ | ✓ | |
| No unknown rendering intents | ✓ | ✓ | ✓ | ✓ | |
| No image interpolation | ✓ | ✓ | ✓ | ✓ | |
| No externally referenced information (external streams and reference XObjects) | ✓ | ✓ | ✓ | ✓ | |
| No Open Print Interface (OPI) information | ✓ | ✓ | ✓ | ✓ | |
| No alternate images | ✓ | ✓ | ✓ | ✓ | |
| No color transfer and half-toning functions | ✓ | ✓ | ✓ | ✓ | |
| No JPX | ✓ | ✓ | ✓ | ✓ | |
| No layers | ✓ | ✓ | ✓ | ✓ | |
| No transparency | ✓ | ✓ | ✓ | ✓ | |
| No embedded files | ✓ | ✓ | ✓ | ✓ | |
| No XRef streams | ✓ | ✓ | ✓ | ✓ | |
| Conformity of metadata | ✓ | ✓ | ✓ | ✓ | |
| PDF/A conformance of embedded files | ✓ | ✓ | ✓ | ||
| Consistency of spot colors | ✓ | ✓ | ✓ | ||
| Contains Unicode information of fonts where needed | ✓ | ✓ | |||
| Contains logical structure information (tagging) | ✓ | ||||
| Contains alternate descriptions of content (replacement text) where needed | ✓ |