jsPDF
Client-side JavaScript library that generates PDFs in the browser or in Node.
Jobs Convert
Operated by yWorks
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Convert
Browse all convert toolsgenerating PDF documents in JavaScript with the jsPDF API, including creating a document, adding text and saving the PDF; not converting other file formats and not editing existing PDFs
Where your files are processed
No server involved
A JavaScript library that runs in the browser or in your own Node process and writes bytes to a download or a file, so generating a PDF needs no vendor-hosted rendering service. That is not the same as an empty network, and the difference is worth stating: its browser file-loading module performs XMLHttpRequest GET requests for resources the caller names, such as an image or a font it has been asked to embed. Loading a resource is not uploading a document, and neither proves the other. What holds is that nothing about the document leaves the device unless the application using the library sends it somewhere. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.
It runs in the browser or in your own Node process and writes bytes to a download or a file. There is no service, no account and no network call in the library, so nothing about the document leaves the device unless the application using it sends it somewhere.
That property is the reason it is chosen over the hosted HTML-to-PDF services in this index.
What it does
jsPDF builds a PDF in the browser, in the page the user is already looking at, without a server and without uploading anything. It also runs under Node.
It is the default way a web application offers "download this as a PDF" for something it has already drawn, and it has been for years. Text, images, vector drawing, fonts you supply yourself, and an API surface large enough that the project now ships two compatibility modes so that old plugins and new features can coexist.
Best for
Web applications that need to produce a PDF from data already in the browser - a receipt, a ticket, a report, a filled-in form - where sending the content to a server to be rendered would be slower, more expensive, or simply not allowed. It is the client-side counterpart to the server-side generators in this index.
Worth knowing
The Unicode trap is the one that catches everybody: the fourteen fonts built into the PDF specification are limited to ASCII, so any text outside it needs a font embedded that actually contains the glyphs, and without one you get garbled characters rather than an error. A reader who tries accented European text, let alone Chinese or Arabic, and sees nonsense has met the documented limitation rather than a bug.
The project is also mid-migration in a way that affects code: a merge with the yWorks fork created two API modes, and the default is the compatibility mode that keeps old plugins working but leaves out transformation matrices and patterns, so a tutorial written against the advanced API may not run as written. Finally, it is co-maintained rather than owned by one company, which is fine and normal for a library this size, but it means the original author is no longer the person setting its direction.
Details, and where each comes from
Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.
- Versions covered
- Web · Self-hosted
- Website
- github.com
- Requires an account
- Not applicable
- Watermark on the free tier
- Not verified
- Maximum file size
- Not verified
- Batch processing
- Not verified
- Data residency
- Self-hosted
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- MIT
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library
- Last availability check
- Responded in 419 ms 21 October 2026
Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.
What the redaction verdict rests on
From the vendor's own documentation, read 22 September 2026. Not tested by us.
What that does not establish
Recorded as `none` on absence, and this is a structural absence rather than a judgement about a feature list: jsPDF generates a PDF from nothing. It has no document to open and therefore no content to remove, and nothing in its documentation describes redaction.
What it does not establish: that a PDF produced with it is safe. A client-side generator is the tool that will faithfully print whatever field it is handed, so the risk it carries is the opposite of redaction - it is a way for sensitive data to reach a document that the user then downloads and keeps.
What the vendor says
Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded - not that we tested the behaviour, unless the note says we did.
-
“jsPDF is now co-maintained by yWorks - the diagramming experts.”
Checked by us - the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01.
This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 64ae4041f43806b5bc31c9226dd048612e28e736d1787fc9ba709ec222b76c86
How we checked
Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
-
“The 14 standard fonts in PDF are limited to the ASCII-codepage. If you want to use UTF-8 you have to integrate a custom font, which provides the needed glyphs.”
Checked by us - the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01.
This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 64ae4041f43806b5bc31c9226dd048612e28e736d1787fc9ba709ec222b76c86
How we checked
Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked - it is not a judgement about anyone.
Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.
Related reading
- Which PDF tools keep your file on your machine - what we count as processing on your own device.
- Open source PDF tools, and what their licences require - what open source does and does not tell you.