New Features
Engine-Native Charts
Five chart types rendered directly to PDF content streams — no SVG, no rasterization. BarChart, LineChart, PieChart, AreaChart, DotPlot.Canvas Drawing
<Canvas draw={(ctx) => { ... }}> renders arbitrary vector graphics using a recording API that converts to PDF path operators.
Watermarks
<Watermark text="DRAFT"> renders rotated, semi-transparent text behind page content. Automatically repeated on every page.
1D Barcodes
<Barcode data="ABC-123" format="Code128"> renders vector barcodes. Supports Code128, Code39, EAN13, EAN8, Codabar.
Embedded Data
renderDocument(element, { embedData }) attaches JSON to the PDF as a compressed file attachment. extractData(pdfBytes) reads it back.
Browser Entry Point
@formepdf/core/browser — same API, zero Node dependencies. WASM loaded via fetch(), decompression via DecompressionStream.
PDF/UA-1 Accessibility
<Document pdfUa> generates structure tree, tab order, role map, and XMP metadata for PDF/UA-1 compliance.
PDF/A Archival
<Document pdfa="2b"> for PDF/A-2b and PDF/A-2a long-term preservation compliance.
Digital Signatures
PKCS#7 detached signatures with X.509 certificates. Certify at render time or standalone via API.AcroForms
TextField, Checkbox, Dropdown, RadioButton — native PDF form fields with flatten support.Text Overflow
textOverflow: 'ellipsis' and textOverflow: 'clip' for single-line text truncation.
Font Fallback Chains
fontFamily: "Inter, NotoSansArabic, NotoSansSC" with per-character fallback resolution.
Overflow Hidden
overflow: 'hidden' clips children to parent bounds via PDF clip path operators.
QR Codes
<QrCode data="https://example.com"> renders vector QR codes directly to PDF.
Tailwind CSS
tw("p-4 text-lg font-bold") converts Tailwind classes to Forme style objects.
CSS Grid
Track sizing, explicit and auto placement,repeat() syntax.
BiDi Text
Automatic direction detection for Arabic, Hebrew, and mixed LTR/RTL paragraphs.Hyphenation
35+ languages via hypher dictionaries. Integrated with Knuth-Plass line breaking.Bug Fixes
- Justified text word spacing uses natural glyph advances (not Knuth-Plass adjusted widths)
- Shaping cluster byte-to-char conversion for multi-byte characters
- Standard font
/Widthsarrays in PDF font dictionaries - Cross-axis stretch propagation for flex children with
alignItems: stretch measure_intrinsic_widthaccounts fortextTransform: 'uppercase'