Skip to tool

Categories

PDFSign and fill

Sign and fill a PDF

Complete a form and draw or type your signature onto it. The document is read by this page and never sent to a server.

On-device prototype

This draws or types a signature, it does not certify one. The result is an image on the page, the same as signing a printout and scanning it. It carries no certificate and no audit trail, so it proves nothing about who signed or when. Where a document demands a qualified or digital signature, this is not that.

Form fields accept only basic Latin text for now. English and most Western European letters work; characters such as ₹, Ł, Vietnamese, Devanagari or Chinese cannot be written into a field yet, and the page tells you which one stopped it. A typed or drawn signature is an image, so any script works there. Sign by drawing with a mouse, trackpad or finger, or by typing your name with the keyboard.

Candidate 0.1.0-canary · pdf-lib · Browser worker

About this fill and sign tool

Choose a PDF of up to 150 MB. Every fillable field is listed with a control matching its kind — text, tick box, dropdown, multi-select — and you complete them, then draw a signature on the pad or type your name, place it by clicking the page outline, and finish. "Make it final" is on by default: it prints your values into the page and removes the form so the next person cannot edit them.

This draws or types a signature; it does not certify one. The result is an image on the page, the same as signing a printout and scanning it — it includes neither digital certificate nor cryptographic audit log, so it proves nothing about who signed or when. Where a document demands a qualified or digital signature, this is not that, and the page says so before you choose a file. It also refuses outright to touch a PDF that already carries a digital signature, because any change would break it. Form fields accept basic Latin text for now, and when a character cannot be written the page names the character and the field rather than failing vaguely.

Runs in this tab — no uploadFree, no account, no watermark

Step by step

  1. 1Choose the PDFUp to 150 MB. The form is inspected in a Web Worker and you get a summary: how many pages, and how many fillable fields.
  2. 2Fill the fieldsEach field gets the control its type calls for, required fields are badged, and fields that cannot be edited are listed separately with the reason — locked by the document, rich text kept so its formatting survives, a duplicated name, unreadable, or calculated by the form itself.
  3. 3Draw or type the signatureDraw on the pad, or type your name. The pad draws in the theme’s foreground colour so it is visible in dark mode, and the copy stamped onto the page is always dark ink.
  4. 4Place itClick the page outline to centre the signature at that point, or press Enter to centre it on the page, or type the page, width, distance from the left and distance from the top. It is always pulled back inside the page before it is drawn.
  5. 5Finish, and decide about flatteningLeave "Make it final" on to bake the values into the page and remove the form; turn it off while the document is still going round. The receipt says whether the fields are final or still editable.

What "make it final" actually does

A filled PDF form is not the same thing as a completed document. The values sit in form fields, which means the next person to open it can change them, and some readers show a different value from the one you typed. Flattening prints the values into the page as ordinary content and removes the form, so what you see is what everyone sees and nothing can be edited afterwards.

It also removes hidden fields. A form can carry fields that are never displayed — internal scores, routing codes, notes — and a filled but unflattened PDF carries them onward to whoever you send it to. An end-to-end test on this tool fills such a form, flattens it, and requires that the hidden values are absent from the page content of the result.

Where a form calculates a field itself, that calculation does not run here, and the page warns you by name before flattening: a calculated total may not match what you changed, and once flattened it cannot be recalculated.

Where the signature lands, on any page

Placing an image on a PDF page is only simple when the page is unrotated and starts at the origin. A page can carry a rotation of 90, 180 or 270 degrees, and a crop box offset from the origin, and either one turns naive coordinates into a signature that is sideways, upside down or off the visible page.

The placement here is computed against the page as a reader shows it, and an end-to-end test checks the result on a rotated page and on a page with an offset crop box, reading the transformation matrix out of the saved file to confirm the stamp landed upright at the chosen corner. A placement past the page edge is pulled back inside before it is drawn rather than refused.

What it refuses, and why

A PDF that already carries a digital signature is blocked entirely — fields, the finish button and the flatten option are all disabled. Any modification, even adding a drawn signature, would invalidate that signature, and a tool that quietly broke it would be worse than one that declines. Ask the sender for an unsigned copy.

A dynamic XFA form is blocked too: it draws its own pages from form data, so it cannot be filled, signed or flattened here. A static XFA form is allowed, with a warning that every save removes the XFA part, so readers will show the ordinary form from then on.

A character the standard PDF fonts cannot write stops the run with that character named — a rupee sign, an accented letter outside Western European, Devanagari, Vietnamese or Chinese. A typed or drawn signature is an image, so any script works there; it is only the form fields that are limited.

Why a document you are signing should not be uploaded

The documents people sign are leases, offers, consents, agreements and forms full of identifiers. Signing one on a conventional web service means handing the counterparty’s document, your details and your signature image to a third party, and taking their retention policy on trust.

Every response from this site is served with a Content Security Policy whose connect-src directive is set to none. That is not a promise in marketing copy; it is an instruction to your browser, and the browser is the one enforcing it. While this page is open it cannot open a connection to anywhere — not to this site, not to anyone else — so there is no path by which your document could be uploaded, not by a bug, not by a future change, not by a script that should not be here. e2e/egress-proof.spec.ts asserts the served header and then tries to send data out by every route a page has and requires each attempt to be refused, and it runs on every build.

The second half of the guarantee is that the code has nowhere to send anything from. lib/tools/local-source-policy.test.ts reads every source file under lib/tools, workers, components and app on every test run and fails the build if any of them contains fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon or a peer connection, or even a remote address written down in a comment. A tool here cannot acquire an upload by accident, because the file that would have to contain one cannot be committed.

Questions people ask

Is this a legally binding digital signature?
No, and the page says so before you choose a file. What it produces is an image on the page — the same thing as signing a printout and scanning it. It carries no certificate, no timestamp authority and no audit trail, so it proves nothing about who signed or when. Where a document demands a qualified electronic or digital signature, use software built for that.
What happens if my PDF is already digitally signed?
Nothing is changed. The tool detects it, explains that any modification would break the existing signature, and disables the fields, the finish button and the flatten option. There is no override, because the alternative is silently invalidating a signature someone is relying on. Ask the sender for an unsigned copy, or use the software the document was prepared with.
Should I leave "Make it final" switched on?
Leave it on when you are the last person to touch the document. It prints the values into the page, removes the form so nobody can edit your entries, and drops hidden fields that would otherwise travel on. Turn it off while the document is still going round and others still need to fill their parts. Required fields must be filled before flattening; the page names the ones still empty.
Why will it not accept a rupee sign or an accented name?
Form fields are written with the standard PDF fonts, which cover basic Latin and most Western European letters and no more. When a character falls outside that, the run stops and names both the field and the exact character, including its code point, rather than dropping it silently. A typed or drawn signature is an image rather than text, so any script works there.
Can I sign a PDF that has no form fields?
Yes. The page says the PDF has no fillable form fields and lets you place a signature anyway; the receipt then reports that no form was present alongside where the signature went. Page count and existing content are unchanged.
Can I do it entirely with the keyboard?
Yes, and that is covered by a test. You can tab through the fields, type a signature rather than drawing it, type the page, width and offsets digit by digit, and press Enter on the page outline to centre the signature. A width typed one digit at a time is not clamped after the first digit, which is the usual way a numeric placement control becomes unusable without a mouse.