Inspect & verify — drop a PDF, nothing leaves your machine
Drop any PDF below and read a full report — document metadata, extracted text, PDF/UA structure, PDF/X structure (1.8.0), a signature inventory, and form fields — produced by the same pdfnative reader APIs that run in Node, Deno and Bun. Open your browser's Network panel before dropping a file: the only requests this page ever makes happen while it loads — its stylesheets, the Prism highlighter, and the pdfnative engine from the CDN — before you drop anything. The file is read with the standard FileReader API and never leaves this tab. Nothing is stored either: reload the page and the report is gone.
In the spirit of the responsibility page, every card below links the source file in the repository that produced it — the report is only as trustworthy as the code you can read.
Loading pdfnative from esm.sh… this happens once, at page load.
Drop a PDF anywhere in this box — or pick one:
The sample is a small two-page tagged document with a justified paragraph, a figure with alt text and form fields, built in this tab by buildDocumentPDFBytes() under a pinned setDefaultCreationDate() — so the page can demonstrate itself without needing a file of yours.
This document is encrypted. The password is handed to openPdf() in this tab only — it is never stored and never sent anywhere.
Overview
Read the source: src/parser/pdf-reader.ts · src/parser/pdf-xref-parser.ts
Text
Since 1.8.0 extractText() honours /ActualText on marked content (ISO 32000-1 §14.9.4): a span that declares the characters behind a ligature, a shaped cluster or a justified line extracts as those characters. In the generated sample every tagged line is such a span, the justified paragraph's word gaps come back as plain spaces, and the figure's alt text — a span carrying /ActualText and no glyphs — appears in the text as well.
Read the source: src/parser/pdf-text-extract.ts
PDF/UA structure
Structural checks only (ISO 14289-1) — a passing result is not an accessibility audit. Whether the reading order makes sense or the alt text is meaningful remains the author's judgement; no validator substitutes for it.
Read the source: src/parser/pdf-ua-validator.ts
PDF/X structure
Structural checks only (ISO 15930-7, PDF/X-4): header version, XMP identification, a /GTS_PDFX OutputIntent, page boxes and /Trapped. veraPDF does not cover PDF/X, so a press file still needs a certified preflight. A document that never claimed PDF/X — the generated sample, most PDFs — is reported as not valid, which is the correct answer.
Read the source: src/parser/pdf-x-validator.ts
Signatures
This is an inventory, not cryptographic verification — nothing here checks the CMS signature, the certificate chain or the document digest. Use pdfnative-cli verify or the verify_pdf MCP tool for that.
Read the source: src/core/pdf-sig-utils.ts
Form fields
Read the source: src/core/pdf-form-fill.ts