Drop-in (86kb) React component for PDF form building and document signing. No backend required — everything runs in the browser. Your documents never leave the device for maximum privacy and security.
Open a PDF and drag form fields onto it — text inputs, signatures, checkboxes, dates, and initials. Assign fields to signer roles.
Add our script to your page and call Exeq.sign(). Pass your PDF template URL and field definitions — no iframes, no CORS issues.
Your users fill and sign the document. The completed PDF is generated client-side and posted to your callback URL.
PDFs are processed entirely in the browser using client-side JavaScript. Your documents are never uploaded to our servers or any third party. No data leaves the device — signing, form filling, and PDF generation all happen locally.
Sequential signing flow — each signer completes their fields before the next begins. Fully prefilled signers are auto-skipped.
Pre-fill fields programmatically with initialValues. Batch-generate hundreds of documents with createPdfBuilder.
Derive fields from other fields — extract month, year, initials, last 4 digits. Ship built-in transforms or register your own.
Predefined option lists render as dropdowns. Set options in the designer or pass them in the template JSON.
Preview matches PDF output exactly — same point-based coordinate system, font sizing, and letter spacing.
Helvetica, Courier New, and Times New Roman with configurable font size, letter spacing, and line height.
Full undo history in the designer. Cmd+Z / Cmd+Y with intelligent batching — drags undo as a single step.
Shift-click, Cmd-click, Ctrl+A, or drag a marquee to select. Align edges, distribute evenly, move as a group.
Ctrl+scroll to zoom, spacebar to pan. Slider, keyboard shortcuts, and preset dropdown.
Hold Shift while dragging to see alignment guides and snap to nearby field edges and centers.
Cmd+C / Cmd+V to duplicate fields. Pasted fields inherit all properties with offset positioning.
Lock fields to prevent accidental moves or deletes. Visual hatch pattern and lock icon in the field list.
Style changes (font, size, color, dimensions) become the default for the next field of the same type.
Optionally append a signed audit trail page to the final PDF documenting each signer and timestamp.
Export filled field values alongside the PDF as structured JSON or CSV via the onExport callback.
onChange fires on every field change. onSignerComplete fires when each signer finishes.
Blackout and whiteout fields for permanent redaction — rendered directly into the PDF, not just visual overlays.
~86kb gzipped. No external dependencies at runtime. Works with React 18+ or as a standalone script via CDN.
no limits
contact us
1npm install @unlev/exeq1import { DesignerView, SignerView } from '@unlev/exeq';
2import '@unlev/exeq/styles';
3
4// Template editor
5<DesignerView
6 apiKey="your-api-key"
7 initialPdfUrl="/contracts/blank.pdf"
8 onSave={(template) => { /* store template */ }}
9/>
10
11// Signing UI
12<SignerView
13 apiKey="your-api-key"
14 initialPdfUrl="/contracts/template.pdf"
15 initialTemplate={template}
16 initialSigner="Signer 1"
17 onComplete={(blob) => { /* upload signed PDF */ }}
18/>