How it works

Three steps, zero uploads.

pdf2sign runs entirely in your browser. Your PDF never touches a server — not ours, not anyone's. Here is exactly what happens when you sign a document with the tool.

  1. 1

    You pick a PDF

    When you drop a PDF onto the editor or pick it with the file picker, your browser uses the File API to hand the raw bytes directly to the page's JavaScript. No fetch() call runs, no upload happens. You can confirm this in your browser's network tab — it will be empty while you sign.

    Once the file is in memory, the page renders each page of the PDF with react-pdf, which uses Mozilla's pdf.js under the hood. Large files may take a moment to render the first time; after that, scrolling is instant because everything is already cached locally.

  2. 2

    You create a signature

    pdf2sign offers three ways to make a signature, and you can mix them freely — draw one for the signature line, type your printed name elsewhere, upload an existing signature image on a third page.

    • Draw — a pressure-aware canvas captures your strokes at full device-pixel-ratio. On mobile the canvas opens full-screen for comfortable signing with a finger or stylus.
    • Type — pick one of four handwriting fonts (Dancing Script, Caveat, Great Vibes, Pacifico), type your name, and the browser renders it to a transparent PNG.
    • Upload — drag in a photo of a signature you already have on paper. pdf2sign can strip a white background so the signature sits cleanly on the page.
  3. 3

    Your browser embeds and downloads

    When you click download, pdf2sign runs pdf-lib — a pure-JavaScript PDF library — to embed your signature PNG at the exact coordinates you positioned it. The resulting bytes are handed to your browser's download mechanism as a Blob, which saves them to your Downloads folder.

    The same PDF format rules apply as with Adobe Reader, Preview, or any other desktop signer: pdf2sign writes a standard signed PDF that opens and prints anywhere.

What's running in your browser

react-pdf & pdf.js

Renders each page of your PDF onto an HTML canvas so you can see it and drop a signature on top. pdf.js is maintained by Mozilla and ships inside Firefox.

pdf-lib

A pure-JavaScript library that can read and write PDF files. We use it to embed your signature PNG and save a new file. It runs in the browser — no server component.

react-signature-canvas

Captures your strokes with the Pointer Events API, supporting mouse, touch, and stylus. The canvas is exported as a trimmed PNG at your device's full pixel density.

Astro

Ships the lightest possible HTML and only hydrates the editor when you visit /sign. Marketing pages are static — they load instantly and work with JavaScript disabled.

Ready to try it?

Sign a PDF in under a minute. No account, no trial, no email.

Sign a PDF