Skip to content

Conformance ​

This page records how Kura's output is judged against each standard, by whom, and on which files. Every number can be reproduced with the files and scripts in conformance/.

Who judges ​

Kura does not grade its own output. Every converted file is checked by an independent validator:

StandardIndependent judge
PDF/A-1a to 4f (11 levels), PDF/UA-1, PDF/UA-2veraPDF 1.28, the reference PDF/A and PDF/UA validator
PDF/X-1a, X-3, X-4, X-6, PDF/E-1, PDF/VT-1, VT-3callas pdfToolbox 17, its "Verify compliance with …" profiles

Real-world documents, every level ​

4,860 PDFs from six public sources, picked by a fixed seed before any file was fetched: Common Crawl web PDFs, Govdocs1, PubMed Central, arXiv, EUR-Lex, and the pdf.js, veraPDF and PDFium test suites. The file list with SHA-256 checksums and source URLs is conformance/MANIFEST.csv.

Each file was converted to every level and each output was given to the judge above. Measured on 8 November 2026.

LevelJudgePassedPass rateRejected by Kura
PDF/A-1averaPDF4,71096.9%58
PDF/A-1bveraPDF4,74397.6%58
PDF/A-2averaPDF4,75297.8%17
PDF/A-2bveraPDF4,78298.4%17
PDF/A-2uveraPDF4,77498.2%17
PDF/A-3averaPDF4,73697.4%17
PDF/A-3bveraPDF4,76698.1%17
PDF/A-3uveraPDF4,75897.9%17
PDF/A-4veraPDF4,78198.4%17
PDF/A-4everaPDF4,78098.4%17
PDF/A-4fveraPDF4,78098.4%17
PDF/UA-1veraPDF4,68196.3%17
PDF/UA-2veraPDF4,06583.6%17
PDF/X-1acallas4,76198.0%43
PDF/X-3callas4,75597.8%33
PDF/X-4callas4,73497.4%17
PDF/X-6callas4,71497.0%17
PDF/E-1callas4,63395.3%17
PDF/VT-1callas4,73497.4%17
PDF/VT-3callas4,70096.7%17

"Rejected" means Kura refused the file with an error code instead of writing output that would not conform: damaged files, files locked with a password, and, at PDF/A-1, PDF/X-1a and PDF/X-3, content those older levels cannot express. See Rejection codes. Fixes made after this run, most of them for PDF/UA-2, are not yet reflected in these numbers.

Test suites ​

SuiteTargetResult
veraPDF corpusPDF/A-1b, 2b, 4568 / 568, 985 / 985, 486 / 486
IsartorPDF/A-1b204 / 204
BFOPDF/A-1b, 2b34 / 34
PDF/UA Reference SuitePDF/UA-110 / 10
Ghent Output Suite 5.0PDF/X-469 / 69

Check mode ​

kura --check validates a file without changing it. Its verdicts were compared with the judges on files built to test one rule each:

ComparisonFilesSame verdict as the judge
veraPDF's full test corpus, every folder2,694100%
A failing and a passing file for every veraPDF PDF/A rule, 11 levels3,493100%
A failing and a passing file for every veraPDF PDF/UA-1 and UA-2 rule, including the ISO 32005 structure table1,925100%

For PDF/X, PDF/E and PDF/VT, Kura's checks were compared with callas on about 1,900 rule-by-rule test files. Where the two still differ, Kura follows the ISO standard; known cases are callas reporting a signature error when no signature field exists, treating GTS_Encapsulated false as true, and an X-6p profile that no file can satisfy.

Reproducing ​

bash
python3 conformance/corpus.py web          # one command per tranche
python3 conformance/corpus.py merge        # writes MANIFEST.csv
CALLAS_PDFTOOLBOX=/path/to/pdfToolbox python3 conformance/run.py

run.py writes one row per file and level to RESULTS.csv: whether Kura converted or rejected the file, the judge, its verdict and the number of errors it found.

Dual-licensed under AGPL-3.0 and Commercial License.