PDF.js
Mozilla's JavaScript library for parsing and rendering PDFs in the browser.
Where your files are processed
No server involved
A JavaScript library that parses and renders from bytes you supply, in the page or in Node. No Mozilla service is involved. 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.
Inherent to the technology rather than a vendor claim: PDF.js is JavaScript that runs in the page, or in Node via the pdfjs-dist package, and parses and renders from bytes you supply. No Mozilla service is involved. Caveat: for remote PDFs the library performs its own fetch and may use HTTP range requests, and cross-origin loads need CORS.
What it does
An open-source Mozilla project that parses PDF files and renders pages to HTML5 canvas, shipping with a full viewer interface that is also built into Firefox. Beyond drawing pages it extracts text and document structure, supports searching, and can add a limited subset of annotations. It is fundamentally a reader and renderer — there are no library APIs for merging, compressing, encrypting or redacting documents.
Best for: Teams that need to display, paginate, search and extract text from PDFs inside their own web interface, or that want a standards-based viewer rather than a manipulation engine.
Worth knowing: It is a renderer, not an editor: no supported API for merging, compressing, encrypting or redacting, so it cannot be the editing half of a client-side PDF toolkit. The library and its worker file must be the exact same version.
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
- mozilla.github.io
- 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
- Apache-2.0
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Browser JavaScript
- Last availability check
- Responded in 93 ms 16 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: The repository README is the source, not the project site, because mozilla.github.io/pdf.js renders almost nothing without scripting. pdf.js is a rendering and viewing library — it draws pages and does not alter their content, which is why there is no redaction in it. The vendor’s own published material was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist — it may be undocumented, or on a page the reading did not reach — but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty.
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.
-
“PDF.js is designed for reading PDF files and supports rendering annotations for viewing, but also supports adding annotations using a subset of the possible annotation types.”
Checked by us — the source says this Read 22 September 2026
Confirmed verbatim: the sentence appears unaltered in the FAQ. It is a carefully bounded capability claim and the bounds are the useful part — PDF.js is "designed for reading" and supports adding annotations using "a subset of the possible annotation types", which is a vendor telling a reader not to expect full annotation editing. For a library whose own name is about reading PDFs, that is the sentence that prevents a wrong choice, and this index's entry for PDF.js is one of the few where the tool's stated purpose and its limits are given in the same breath. Recorded as the project's documentation; no control was run.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 9d8f627df4f95f8eabce31bbe82245debaf3bbd5fb7a29602dc146a5588b43d6
How we checked: Re-verified verbatim on 2026-09-22: https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-mozilla-pdf-js-wiki-Frequently-Asked-Questions-f03dca6e.txt.
-
“We supply pre-built versions for usage with NPM under the pdfjs-dist name.”
Checked by us — the source says this Read 22 September 2026
Confirmed verbatim: the sentence appears unaltered in the README's usage section, and the sentence before it supplies the context the claim omits — you can either use a pre-built version "or build it from source", and the pre-built packages are published under the `pdfjs-dist` name. So the claim is about one of two supported routes rather than the only one. The README also points at jsDelivr and unpkg as distribution routes, which is the practical detail a developer needs to actually pull it in. Recorded as the project's documentation; nothing was installed, so the package's current contents were not checked.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- 2c0057b04f4f586c5a639ca29488e4103532b814a4061b7811a01bd8c9bda04e
How we checked: Re-verified verbatim on 2026-09-22: https://github.com/mozilla/pdf.js re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-mozilla-pdf-js-932d84b9.txt.
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.