PDF.js
Mozilla's JavaScript library for parsing and rendering PDFs in the browser.
Operated by Mozilla PDF.js project
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
View
Browse all view toolsviewing, parsing and rendering PDFs with PDF.js, where the API documentation exposes getDocument for loading, PDFPageProxy.render for canvas rendering, getTextContent for the text layer, and the bundled viewer adds page navigation, text search/selection, print/download, form display/filling and annotation rendering. The scope records parsing, page rendering, text-content extraction, the optional viewer, search, print/download and form display/filling, notes that getDocument URL fetches follow same-origin/CORS rules and that browser use requires a worker, and makes no editing, OCR, redaction, signing or format-conversion claim
Edit
Browse all edit toolsadding annotations and filling forms in the optional PDF.js web viewer, where the viewer toolbar exposes free text, highlight, ink and stamp annotation editors, the current AnnotationEditorType enum also includes signature and comment types (hidden in the generic viewer toolbar), underline/strikeout are rendered annotation types rather than current editor types, and the viewer can save annotation/form changes into a new PDF through PDFDocumentProxy.saveDocument.
The scope records the bundled viewer's visual annotation and form-filling workflow and its ability to save a modified PDF, makes clear that the signature editor is a visual annotation rather than certificate-backed signing, and makes no arbitrary body-text editing, OCR, redaction, certificate signing/trust, merge, compress, encrypt or generic conversion claim
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
PDF.js is Mozilla's Apache-2.0 JavaScript PDF library and optional web viewer. The current release is v6.4.299, published 3 October 2026, also published as the pdfjs-dist npm package 6.4.299.
The core library parses PDFs and renders pages to canvas, exposes text content through getTextContent, supports text selection/search and printing, and runs in a browser main thread with a worker, or in Node with the pre-built distribution. The bundled web viewer adds page navigation, search, print/download, form display/filling and an annotation editor.
That editor's current enum includes free text, highlight, stamp, ink, signature and comment types, with popup internals; the generic viewer toolbar exposes free text, highlight, ink and stamp, while signature and comment entries are hidden in the generic build. The viewer can save annotation/form changes through PDFDocumentProxy.saveDocument into a new PDF, so those edits are not UI-only, but the library does not expose a general high-level document-editing API and has no merge, compress, encrypt, redact, certify or format-conversion APIs.
It is not a hosted service; the viewer is optional, and pdfjs-dist is the npm distribution.
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
The current release is v6.4.299, published 3 October 2026, and the npm pdfjs-dist package is 6.4.299. The npm package metadata declares Node >=22.13.0 or >=24, while the repository package metadata is stricter (>=22.22.3, >=24.15.0 or >=26); check the distribution you consume rather than assuming one runtime baseline.
Browser use requires a worker, and when a URL is passed to getDocument the fetch follows same-origin rules or needs CORS; the generic demo viewer blocks cross-origin loading when not hosted on mozilla.github.io. The core library is a parser/renderer, not an editor: it has no public APIs for merging, compressing, encrypting, redacting, signing/certificate trust or converting to other document formats, and it cannot edit arbitrary page body text.
Annotation editing is a viewer feature: the current enum includes FREETEXT, HIGHLIGHT, STAMP, INK, SIGNATURE, COMMENT and POPUP, but the generic viewer toolbar exposes free text, highlight, ink and stamp while signature and comment entries are hidden; underline and strikeout are rendered annotation types but are not current editor types. Signature here is a visual annotation editor type, not certificate-backed signing.
The viewer can write annotation/form changes into a new PDF through saveDocument, so edits can persist; that is not a general library editing API. The optional viewer is separate from the core pdfjs-dist library, and there is no hosted PDF.js service.
No OCR, redaction, arbitrary body-text editing, signing/certificate trust, merge/compress/encrypt or generic Office conversion is claimed.
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.
Apache-2.0. The repository LICENSE is the Apache License, Version 2.0.
PDF.js is a Mozilla open-source project; pdfjs-dist is the pre-built npm distribution Mozilla publishes, not a separate hosted service. There is no Mozilla-hosted PDF.js processing endpoint or paid edition.
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Browser JavaScript
- Last availability check
- Responded in 93 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
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 16 October 2026
The FAQ still says PDF.js is designed for reading and supports adding annotations using a subset of annotation types. The current source enum includes FREETEXT, HIGHLIGHT, STAMP, INK, SIGNATURE, COMMENT and POPUP; the generic viewer toolbar exposes free text, highlight, ink and stamp, while signature and comment are hidden in the generic build.
The viewer can save annotation/form changes into a new PDF through saveDocument. The claim is confirmed as a subset statement, not as support for arbitrary annotations or document editing.
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 16 October 2026
The README still states that pre-built versions are supplied for npm under the pdfjs-dist name. The npm registry currently lists pdfjs-dist 6.4.299 under Apache-2.0, matching the v6.4.299 release; the repository package.json and npm package metadata set different Node engine baselines, which is a runtime packaging distinction rather than a different product.
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.