Skip to content
dialegein

PDF.js

Mozilla's JavaScript library for parsing and rendering PDFs in the browser.

Jobs View Convert Edit

Since 2011

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.

https://github.com/mozilla/pdf.js

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.

    What this hash proves, and what it does not

  • “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.

    What this hash proves, and what it does not

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.

Visit PDF.js Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
2 claims taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 16 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: mozilla.github.io/pdf.js; github.com/mozilla/pdf.js README and FAQ wiki; GitHub API metadata. Licence stated on the project site and confirmed by the repository.