PDF Sign places a visible signature image into a PDF using two libraries: pdfjs-dist (Mozilla's PDF.js) renders each page onto a canvas so you have an accurate preview to position the signature on, and pdf-lib embeds the resulting signature as a PNG image into the page's content stream when you export. Both libraries run entirely in your browser, so the document never leaves your device.
Three input methods are supported. Draw uses an HTML canvas with pointer event tracking — pen input on iPad and Surface devices is captured at full pressure resolution, and the result is exported as a transparent PNG. Type renders your name in an italic display font onto an offscreen canvas so it looks closer to handwritten signature than a system font. Upload accepts PNG or JPG images of a scanned physical signature; PNGs with a transparent background look best because there is no white rectangle around the strokes.
Click on the page preview to drop a signature. Each placement stores normalized coordinates (relative to the page's media box) so positions remain accurate at any zoom level. Drag a placed signature to reposition, and use the size slider to scale. Multiple placements per page are supported, including initials on every page in a long contract.
On export, pdf-lib embeds the signature PNG using the embedPng method, then draws it on each placed page at the stored coordinates. The output is a standards-compliant PDF that opens identically in Adobe Acrobat, browser PDF viewers, macOS Preview, and mobile readers.
An important distinction: this is a visible electronic signature, not a cryptographic digital signature. Electronic signatures are legally binding in most jurisdictions under laws like the US ESIGN Act and the EU eIDAS regulation when they show clear intent to sign. Cryptographic digital signatures (PKCS #7 / CAdES, the kind that show a green checkmark in Acrobat) require certificates, timestamping authorities, and PDF/A-compliant signing — a workflow that browsers cannot complete without server-side certificate handling.
Encrypted PDFs cannot be parsed by pdf-lib until they are unlocked — use the PDF Password tool first. PDFs with existing digital signatures will see those signatures invalidated by adding a new image; this is part of the PDF signing standard.
Practical limits: PDFs up to ~200 pages and ~100 MB are comfortable. Very long documents slow down because pdfjs-dist renders every page you scroll through. For initialing every page of a 300-page document, splitting into halves with PDF Splitter and signing each separately is faster.