Validate PDF/A — 12 profiles, two engines, browser-only.
Drop a PDF. The official veraPDF reference engine and gPdf's Rust+WASM edge engine run the ISO 19005 spec in parallel. Disagreements are flagged.
PDF/A is the ISO 19005 family of archival PDF formats, first published in 2005. This validator runs every rule in the chosen profile against the veraPDF reference implementation and gPdf's Rust+WASM engine, side-by-side. A pass here means two independent engines agree.
Frequently asked questions
What is PDF/A and why do I need it?
PDF/A is an ISO-standardised subset of PDF designed to render the same way decades later. It bans elements that can break over time (external fonts, JavaScript, transparency in early profiles) and requires embedded fonts, deterministic colour, and complete metadata. Archives, tax authorities and e-invoice standards require it.
Which PDF/A profile should I pick?
PDF/A-2b is the safe default for general archival. PDF/A-3b if you must embed another file (XML invoices live in /3). PDF/A-1b for the strictest legacy auditors. PDF/A-4 if you generated from PDF 2.0 features. The a variants (1a/2a/3a) add Tagged-PDF accessibility — only use if explicitly required.
Why did the two engines disagree on my file?
Both validate against ISO 19005 but with different coverage. veraPDF is the reference maintained by the PDF Association and checks every clause; the gPdf Rust engine prioritises rules that cause real-world ingestion failures and runs an order of magnitude faster. The validator shows both reports so you can decide whether to remediate.
Is my file stored or sent to a third party?
No. The file is POSTed to a Cloudflare Worker that runs both engines in-process and returns JSON. It is never persisted to disk, R2, KV or any database; no third party receives it. There is no login and no rate limit beyond per-IP burst protection.