Home  ›  Playgrounds

Interactive playgrounds

Fifteen hands-on environments that exercise the pdfnative engine in your browser, with copy-ready CLI, MCP and React equivalents — from generating documents to inspecting the ones you already have. No install, no API keys, no build step. Pick a card to dive in — every playground includes a switcher at the top so you can hop between them without coming back here.

Extreme scripts Library

Stress-test BiDi mixing across Arabic + Hebrew + Thai + Latin, Tamil ultra-conjuncts, Bengali & Devanagari with reph and multi-halant ligature chains, isolated Arabic harakat, and — 1.9.0 — right-to-left paragraphs under the whole of UAX #9: direction: 'auto', right alignment, justification in visual order, isolates and bracket pairs. Edit the inputs and regenerate.

BiDiUAX #9RTL justifyGSUBGPOS32 scripts
Open extreme-scripts playground →

All 32 scripts + emoji Library

The flagship stress test: render every Unicode script pdfnative supports — 32 writing systems with BiDi and OpenType shaping, the five Indic scripts of 1.9.0 among them — plus native COLRv1 colour emoji, all composited into a single PDF by one buildDocumentPDFBytes() call. The routing engine dispatches every code point to the right embedded font automatically.

32 scriptsColour emojiBiDiSubsetting
Open all-scripts playground →

PDF Toolkit Library engine 1.4.0 → 1.9.0

Outline bookmarks, a generated table of contents that paginates (1.9.0), page labels, viewer preferences, nested lists, cell borders, merge / split / extract — plus the 1.6.0 round trip: fill & flatten an encrypted AcroForm, re-encrypt a merged document (AES-256 password rotation), and extract text with positions. Each a one-click downloadable PDF.

BookmarksMerge/splitRe-encryptForm fillExtract text
Open PDF Toolkit playground →

Inspect & verify Library

Drop any PDF and read a full report — metadata (text strings decoded by decodePdfTextString, 1.9.0), extracted text with the stream-error policy (onStreamError, PdfStreamLimitError), PDF/UA structure with table /Scope and /Headers, a signature inventory, and form fields — built by openPdf, extractText, validatePdfUA, listSignatures and readFormFields, entirely in your browser. Honest limits stated on the page: the PDF/UA check is structural, not an accessibility audit, and the signature card is an inventory, not cryptographic verification.

MetadataPDF/UASignaturesForm fieldsNothing uploaded
Open Inspect & verify playground →

Charts Library 1.6.0 → 1.9.0

Native vector charts — nine kinds: bar, horizontal-bar, line (with markers), pie, donut (v1.6.0), plus stacked bars, area, and scatter with a secondary axis, log & time scales, and data labels (charts v2, v1.7.0) — rendered as pure PDF path operators. Multi-series, legends, "nice" axis ticks, negative values, and tagged /Figure alt text. Each preset is a one-click downloadable PDF.

BarLinePie/DonutStacked/Area/ScatterPer-bar coloursZero-dep
Open Charts playground →

Authoring+ Library 1.5.0 → 1.9.0

Everything new in 1.5.0: SVG <text> labelled charts, the opt-in layout debug overlay (debug: true) plus inspectDocumentLayout(), and typed markup annotations — a highlight and, since 1.9.0, a link — with build + read-back — each a one-click downloadable PDF.

SVG textLayout debugAnnotationsInspect
Open Authoring+ playground →

Scale Library 1.6.0

Generate 1,000 to 100,000 pages in a Web Worker with buildDocumentPDFStreamTrue, which never joins the PDF binary. Three output sinks, a page count measured from the emitted bytes, and an honest indeterminate phase where no progress signal exists.

Web WorkerTrue streaming100k pagesBenchmark
Open Scale playground →

CLI builder CLI

Compose pdfnative-cli commands interactively — all 21 commands, from render and fill to the PAdES ladder (sign --timestamp · ltv · doc-timestamp), metadata, compare and batch --manifest. Live shell preview, validation rules, copy-to-clipboard, and one-click presets.

rendersignltvcomparebatch
Open CLI playground →

MCP tool explorer MCP

Browse the pdfnative-mcp v1.7.0 toolset (28 tools: incl. the PAdES ladder sign_pdf / add_ltv / timestamp_pdf, update_metadata, the read-only inspect_layout preview, page-tree merge_pdfs / split_pdf / extract_pages, markup annotate_pdf, the network-free draft_governance_issue), copy a ready-to-paste config snippet for Claude Desktop, Cursor, Continue, Zed (or any MCP client), and generate the same PDFs an AI assistant would receive — directly in your browser.

stdio toolsClaudeCursorZed+ any stdio client
Open MCP playground →

React renderer React

Write JSX with pdfnative-react v1.3.0 and render a real PDF on-device — a custom React 19 reconciler compiles <Document>/<Table>/<Barcode>/<Chart> straight to pdfnative blocks, no SaaS round-trip. Charts v2 and print production included. The demo loads React + the renderer from a CDN; the published package keeps the engine zero-dependency.

JSXreconcilerDocSpecon-device
Open React playground →

Typography Library 1.8.0 → 1.9.0

Generate the same document with and without each typographic option: paragraph breaking with widows and orphans, keep-with-next line quotas, short-word binding, justification and optical margins, unit binding and French punctuation spacing, a hyphenation provider with soft hyphens, exact base-14 metrics, pair kerning, and tabular or old-style figures — with the onDiagnostic output shown for every run.

Widows/orphansJustifyHyphenationKerningDiagnosticsUncovered glyphs
Open Typography playground →

Print & PDF/X Library 1.7.0 → 1.9.0

Bleed and printer's marks, CMYK colours, a CMYK OutputIntent from your own ICC profile (read locally, never uploaded) or from the synthetic profile pdfnative/tools builds, a PDF/X-4 claim, spot colours (/Separation inks and a /DeviceN mix, 1.9.0), the dual PDF/A-2b + PDF/X-4 claim (1.9.0), the validatePdfX() report for the file you just built, and the coherence errors the builder throws for an impossible PDF/X configuration.

BleedCMYKSpot coloursPDF/X-4PDF/A + PDF/XValidation
Open Print & PDF/X playground →

Reproducible output Library 1.8.0

Build the same document twice with a pinned creationDate and compare the two SHA-256 digests in the page — identical bytes, then flip one input and watch them diverge. The CLI (--creation-date / SOURCE_DATE_EPOCH), MCP (PDFNATIVE_MCP_CREATION_DATE) and React (<Document creationDate>) equivalents are shown as copyable snippets.

creationDateSHA-256UTC datesCI gating
Open Reproducible output playground →

DocSpec lint React pdfnative-react 1.3.0

Paste or pick a DocSpec — the token-frugal JSON grammar agents and content systems store — and run validateSpec + lintSpec in your browser: 37 deterministic rules (PDF/X coherence, colour bars, ineffective typography, PDF/A without fonts) reported before a single byte is rendered, then render the fixed spec to a PDF.

DocSpec37 rulesPDF/XrenderSpecToBytes
Open DocSpec lint playground →

Images Library 1.9.0

Embed a JPEG, a PNG or a JPEG 2000 file without decoding it: the JPXDecode fixture whose codestream declares its own colour and opacity (/SMaskInData 1, a PDF 1.5 header), the three formats on one page and under PDF/A-2b, the PDF/A-1b refusal, a JPEG 2000 page watermark, and a file from your disk — with the diagnostics each build raised.

JPXDecodePNG alpha → SMaskPDF/A rulesparseImage
Open Images playground →

What about non-interactive examples?

The repository ships with 50 generators producing 311 sample PDFs across 39 categories covering financial statements, multi-language documents, barcodes, SVG, watermarks, forms, encryption, signatures, streaming, parser, charts, and stress tests. Run npm run test:generate after cloning.

Resources