Processed locally in your browser · pdf.js + pdf-lib

Sign PDF Documents Online — draw, type, or upload a signature — then place it exactly where you need it.

Process your PDF in your browser, place signatures or marks where you need them, and download a new copy without changing the original file.

See the four steps
Draw, type, or upload Text & stamps A different mark per page Processed locally in your browser
Built & maintained by Bhavin J. Sheth | Updated

The signing workspace

Upload a PDF, build an element, position it, then either stamp it everywhere or queue a different one per page.

Drop your PDF here

or browse files

What this tool actually does

A signature mark, placed precisely

Whether you draw it, type it, or upload it, this tool creates a signature mark and places it precisely on your PDF — on one page, on every page, or differently on each.

Draw it, type it, or bring your own

Some PDFs need a visible signature, date, or approval mark before they can be returned or shared. This tool lets you add that mark directly to the document without printing it first.

Whichever way you create it, the tool renders it to a PNG on a transparent canvas and lets you drag, resize, and rotate it directly on the page preview. pdf.js shows you the document; pdf-lib burns the final image into the exported PDF, at the position and size you choose.

Every element you can place

A drawn signature

This produces a freehand mark using your mouse, trackpad, or touchscreen.

A typed signature

Type your name once and pick from four script fonts — giving the typed name a handwritten-style appearance.

An uploaded signature

Bring a scanned PNG or JPEG — ideally with a transparent background — and scale it to fit.

Text and stamps

A date line, a name, or a preset like APPROVED or DRAFT — styled with its own color and size.

Independent placement per page

Queue a different element for each page instead of repeating one signature everywhere — see the deep-dive below.

Four steps from blank page to signed file

The same flow works whether you're signing once or building a different mark for every page.

1

Upload your PDF

Drag it onto the upload area, or click Select PDF. The document renders immediately — the PDF is processed locally in your browser rather than uploaded for signing.

You can add a signature, custom text, or a preset stamp.
2

Build and position an element

Use the right-side panel:

Pick Draw, Type, or Upload for a signature — or switch to Text/Stamp.
Drag the element onto the page, resize it from the corner handle.
Adjust rotation and opacity, or type exact X/Y for precise placement.
3

Choose how it applies

Pick Current, All, or Specific pages for one signature everywhere — or click Add to page to queue a different one per page, then repeat on other pages.

A non-empty queue always takes priority over the bulk setting.
4

Finalize and download

Click Apply & Finalize. Review the signed PDF, rename it, and download.

Full-file preview Processed locally

See the result before you download

See how the document looks after adding a signature and date.

Unsigned Draft
PDF contract preview before adding a signature

A contract preview with an empty signature line.

Signature added
Signature added Apply & Finalize
PDF contract preview with an electronic signature added

Same document preview, with the signature and date added.

Documents that may need a signature

Common situations where a signature, date, or approval mark may be added to a PDF.

Common situations for signing PDF documents, by user type
SituationWhat gets signedTypical user
Sales contractsClient proposals and service agreements where a visual signature mark is acceptable.Sales teams & consultants
Lease agreementsRental leases and disclosure forms signed remotely by tenant and landlord.Real estate agents & tenants
Onboarding paperworkOffer letters, NDAs, and policy acknowledgments during hiring.HR teams
Expense approvalsExpense reports and timesheets approved with a signature and date.Managers & finance teams
Legal filingsDocuments that may require an electronic signature, depending on the filing requirements.Lawyers & paralegals
School formsPermission slips and consent letters signed and returned digitally.Parents & school admins
Medical intakeConsent forms and intake paperwork that accept electronic signatures.Patients & clinics
Freelance workProject approvals and invoices signed with clients remotely.Freelancers
Signature methods

Ways to add a signature or mark

Create a signature mark and place it precisely on your PDF — pick the method that fits your workflow.

Draw

Use a mouse, trackpad, or touchscreen to draw in real time. This produces a freehand mark using your input device in any chosen pen color.

Type

Type your full name and choose from four script fonts. This gives the typed name a handwritten-style appearance without requiring steady mouse control.

Upload

If you already have a scanned signature — ideally a transparent-background PNG — upload it directly and scale it to fit the signature line.

Text/Stamp mode

Switch the element type to add a date line or a preset stamp like APPROVED alongside your signature — styled independently in its own color and size.

New: Multi-page signing

Add a different signature or mark to each page

A 15-page document where each page needs its own initial, date, or approval mark doesn't need 15 separate uploads. Build the queue once.

1

Build a page's signature

On the page you're viewing, draw, type, or upload an element and position it exactly where it belongs.

2

Add it to the queue

Click Add to page — the element, its position, and that page number are saved as one queue entry, shown with a thumbnail.

3

Repeat, then finalize

Navigate to the next page, build a different signature, and add it too. Repeat for the pages you need. When you click Apply & Finalize, every queued page gets its own element — pages not in the queue are left blank unless you also use the bulk option.

PDF Signature Troubleshooting

Common placement, export, and signing issues, and how to resolve them.

Symptom
Why it happens
Fix

Nothing appears on the page

No content has been created yet — the pad is empty, the type field is blank, or no image was uploaded.

Draw at least one stroke, type a name, or upload an image — the preview appears right after.

Signature landed in an unintended spot

The drag gesture finished at an unintended X/Y.

Enter exact X/Y values for precise placement.

One page's signature or mark is missing after finalizing

The queue was non-empty, but that page was never added to it — pages outside the queue stay blank when a queue exists.

Go back to that page, build and position an element, and click Add to page before finalizing again.

Same element ended up on every page instead of different ones

The queue was empty, so the bulk "Apply to Pages" setting (likely All pages) took over.

Use Add to page for each page you want to differ — a non-empty queue always overrides the bulk setting.

Typed name looks plain

A non-script font wasn't selected — the default sample may not have been clicked.

Choose a script font in the gallery to give the typed name a handwritten-style appearance.

A password-protected PDF won't open

Some password-protected or encrypted PDFs cannot be opened by in-browser engines.

Remove the password first with a PDF unlock tool, then upload the unlocked copy.

Signature or text looks faded in the output

The opacity slider is below 100%, or a light pen color was chosen.

Set opacity to 100% and pick a darker color to keep the signature clearer in the exported PDF.

Nothing appears on the page

Why: No content was created yet.

Fix: Draw, type, or upload something first.

Wrong spot

Why: Drag ended at an unintended coordinate.

Fix: Enter exact X/Y values for precise placement.

A page's signature is missing

Why: That page wasn't added to the queue.

Fix: Go back and click Add to page.

Same signature everywhere

Why: Queue was empty, bulk setting applied.

Fix: Use Add to page per page instead.

Typed signature looks plain

Why: A script font wasn't selected.

Fix: Choose a script font in the gallery to give the typed name a handwritten-style appearance.

Password-protected PDF won't open

Why: Some encrypted files cannot be opened in-browser.

Fix: Unlock it first, then upload.

Signature looks faded

Why: Opacity below 100% or light color.

Fix: Set opacity to 100%, use a darker color.

PDF Signing Best Practices

Simple ways to place signatures, dates, and stamps cleanly.

Keep the pen color black or navy

Dark colors usually provide better contrast in the exported PDF.

Add a date next to the signature

Switch to Text/Stamp and type "Signed on: DD-MM-YYYY" — Add a date when the document or recipient requires one.

Decide bulk vs. queue before you start

One signature everywhere is faster to set up; a different one per page needs the queue — know which you need before placing anything.

Review the queue list before finalizing

Each queued entry shows its page number and a thumbnail — scan the list to confirm every page you meant to sign is actually there.

Keep opacity at 100%

Full opacity keeps the signature clearer in the exported PDF.

Protect the file afterward

Once signed, run it through Protect PDF to add a password or editing restrictions to help protect the signed file.

Sign PDF — Frequently Asked Questions

If something's not covered here, the troubleshooting section above likely has it.

Is my PDF uploaded to a server?

The PDF is processed in your browser using pdf.js and pdf-lib. The file is not uploaded to AllInOneTools' server by this tool.

Are electronic signatures legally binding?

Electronic signatures can be legally recognized in many jurisdictions, including under frameworks such as the U.S. ESIGN Act and the EU eIDAS Regulation. Whether a particular signed PDF is legally sufficient depends on the document, signing method, and applicable jurisdiction. For documents with legal or regulatory requirements, verify the requirements with a qualified professional.

Can I put a different signature on every page?

Yes. Position an element on a page and click Add to page — it joins a queue. Move to the next page, build a different signature, stamp, or mark, and add that too. Apply & Finalize stamps each page with its own queued item.

What if I just want the same signature on every page?

Leave the queue empty, position your signature once, and choose Current page, All pages, or Specific pages under Apply to Pages — that one element gets stamped across your selections.

What's the difference between Draw, Type, and Upload?

Draw uses your mouse or touchscreen for a freehand signature. Type renders your name in a script font. Upload takes an existing signature image, ideally a transparent PNG.

What happens to my PDF after I finish?

The signed PDF is generated locally in your browser and downloaded as a new file. Your original PDF remains unchanged on your device.

Does this create a certificate-based digital signature?

No. This tool adds a visual signature, typed name, image, text, or stamp to the PDF. It does not create a certificate-based digital signature, signer identity verification, or an audit trail.

Are there PDF files this tool cannot process?

Some encrypted, password-protected, malformed, or unusually complex PDFs may not open correctly in the browser. If a PDF fails to load, try an unlocked copy or another PDF export.

Can I add stamps like APPROVED or CONFIDENTIAL?

Yes. Switch to Text/Stamp, click a preset (APPROVED, CONFIDENTIAL, DRAFT, PAID) or type your own, then place it like any other element — including queuing a different stamp per page.

Build notes

The write-up on how this was built

Because drawing, placing, resizing, and exporting all run client-side, I wrote up the implementation — capturing canvas strokes as PNG, dragging an overlay element in sync with a rendered PDF page, and writing images into the final file with pdf-lib.

Published on freeCodeCamp

How to Build a Browser-Based PDF Signature Tool Using JavaScript

Covers handwritten signature capture, image placement on PDF pages, and exporting signed documents entirely client-side.

Read the write-up on freeCodeCamp

Written by Bhavin Sheth · Founder, AllInOneTools