mozilla /pdf.js

PDF Reader in JavaScript

★ 54,119⑂ 10,733👁 1,088⑃ 11,220● 10,677▤ 91◈ 442
JavaScriptApache-2.0Created 2011-04-26mozilla.github.io/pdf.js/
54,119
stars
+6
10,733
forks
1,088
watchers
11,220
prs
10,677
issues
91
releases
442
discussions

README

PDF.js    

PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5.

PDF.js is community-driven and supported by Mozilla. Our goal is to
create a general-purpose, web standards-based platform for parsing and
rendering PDFs.

 Contributing

PDF.js is an open source project and always looking for more contributors. To
get involved, visit:

+ Issue Reporting Guide
+ Code Contribution Guide
+ Frequently Asked Questions
+ Good Beginner Bugs
+ Projects

Feel free to stop by our Matrix room for questions or guidance.

 Getting Started

 Online demo

Please note that the "Modern browsers" version assumes native support for the
latest JavaScript features; please also see this wiki page.

+ Modern browsers: https://mozilla.github.io/pdf.js/web/viewer.html

+ Older browsers: https://mozilla.github.io/pdf.js/legacy/web/viewer.html

 [!NOTE]
 Open new files via the menu (the "" icon) or by dragging and dropping.

 Browser Extensions

 Firefox

PDF.js is built into version 19+ of Firefox.

 Chrome

+ The official extension for Chrome can be installed from the Chrome Web Store.
This extension is maintained by @Rob--W.
+ Build Your Own - Get the code as explained below and issue npx gulp chromium. Then open
Chrome, go to Tools  Extension and load the (unpackaged) extension from the
directory build/chromium.

 PDF debugger

Browse the internal structure of a PDF document with https://mozilla.github.io/pdf.js/internal-viewer/web/debugger.html

 Getting the Code

To get a local copy of the current code, clone it using git:

    $ git clone https://github.com/mozilla/pdf.js.git
    $ cd pdf.js

Next, install Node.js via the official package or via
nvm. If everything worked out, install
all dependencies for PDF.js:

    $ npm install

Finally, you need to start a local web server as some browsers do not allow opening
PDF files using a file:// URL. Run:

    $ npx gulp server

and then you can open:

+ http://localhost:8888/web/viewer.html

Please keep in mind that this assumes the latest version of Mozilla Firefox; refer to Building PDF.js for non-development usage of the PDF.js library.

It is also possible to view all test PDF files on the right side by opening:

+ http://localhost:8888/test/pdfs/?frame

 Building PDF.js

In order to bundle all src/ files into two production scripts and build the generic
viewer, run:

    $ npx gulp generic

If you need to support older browsers, run:

    $ npx gulp generic-legacy

This will generate pdf.js and pdf.worker.js in the build/generic/build/ directory (respectively build/generic-legacy/build/).
Both scripts are needed but only pdf.js needs to be included since pdf.worker.js will
be loaded by pdf.js. The PDF.js files are large and should be minified for production.

 Code coverage

We track how much of the code is exercised by the test suite on
Codecov (see the badge at the top of this
file).

 How it is collected

When coverage is enabled, the build instruments the bundled code with
babel-plugin-ista

Top issues

Discussions

Latest release

v6.5.438 v6.5.438 2026-11-01
This release contains improvements for accessibility, annotation editing, annotation rendering, font conversion, image conversion, performance, scripting, tiling pattern rendering and the viewer.

 Changes since v6.4.299
 Bump the stable version in pdfjs.config by @timvandermeij in https://github.com/mozilla/pdf.js/pull/22066
 Fix a few edge cases when converting RGB images in convertRGBToRGBA and ImageResizer by @calixteman in https://github.com/mozilla/pdf.js/pull/22046
 Directly call Set.prototype.delete in the ChunkedStreamManager code by @Snuffleupagus in https://github.com/mozilla/p

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON