PDF.js
{{Short description|PDF viewer in JavaScript included in Mozilla Firefox}}
{{Use dmy dates|date=October 2020}}
{{Infobox software
| name = PDF.js
| logo = Pdf-js logo.svg
| screenshot = PDF js Screenshot in Firefox 100.png
| caption = PDF.js in Firefox 100, with a table of contents displayed on the sidebar
| collapsible =
| author = Andreas Gal
| developer = Mozilla
| released = {{Start date|2011|07|02|df=yes}}{{cite web |title = Releases · mozilla/pdf.js |url = https://github.com/mozilla/pdf.js/releases |access-date = 12 March 2021 |website = GitHub}}
| latest release version = {{wikidata|property|edit|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|mdy|P348|P577}}}}
| programming language = JavaScript, CSS, HTML
| platform = JavaScript engine, web browser
| genre = PDF viewer
| license = Apache License 2.0{{cite web |url = https://github.com/mozilla/pdf.js/blob/master/LICENSE |title = pdf.js/LICENSE at master · mozilla/pdf.js |website = GitHub|date = 17 February 2022 }}
| website = {{URL|https://mozilla.github.io/pdf.js/}}
}}
PDF.js is a JavaScript library that renders Portable Document Format (PDF) files using the web standards-compliant HTML5 Canvas. The project is led by the Mozilla Corporation after Andreas Gal launched it (initially as an experiment) in 2011.
History and application
PDF.js was originally created as an extension for Firefox{{cite web|title = PDF Viewer(discontinued) |url = https://addons.mozilla.org/en-US/firefox/addon/pdfjs/|website = addons.mozilla.org |access-date = 2015-12-02 |archive-url = https://web.archive.org/web/20151205121858/https://addons.mozilla.org/en-US/firefox/addon/pdfjs/|archive-date = 5 December 2015}} and is included in Firefox since 2012 (version 15),{{cite web |title=PDF.JS and Download Manager Panel Pushed to Firefox 15 |first=Lucian |last=Parfeni |url=https://news.softpedia.com/news/PDF-JS-and-Download-Manager-Panel-Pushed-to-Firefox-15-267154.shtml |website=Softpedia |publisher=SoftNews |date=2012-04-30}}{{cite web |title = Вышла новая версия браузера Firefox 15 | first = Anton | last = Blagoveschenskiy | url = https://www.rg.ru/2012/08/29/firefox-site-anons.html | newspaper = Rossiyskaya Gazeta | date = 2012-08-29 | access-date = 2012-09-09 | language = ru |trans-title = New version 15 of the Firefox browser released }} and enabled by default since 2013 (version 19).{{cite web|url=https://bugzilla.mozilla.org/show_bug.cgi?id=773397|title=Bug 773397 – Disable pdf.js prior to FF15 beta 5|website=bugzilla.mozilla.org}}{{cite web|title=Firefox 19.0 Release Notes|url=https://www.mozilla.org/en-US/firefox/19.0/releasenotes/|access-date=30 April 2013|website=mozilla.org}} It was added to Firefox for Android in 2023 (version 111).{{Cite web|url=https://www.mozilla.org/en-US/firefox/android/111.0/releasenotes/ |title=Firefox for Android 111.0, See All New Features, Updates and Fixes |website=www.mozilla.org |access-date=19 April 2024}}
The project was created to provide a way for viewing PDF documents natively in the web browser, which prevents potential security risks when opening PDF documents outside a browser, as the code for displaying the document is sandboxed in a browser.{{Cite web |last=Shankland |first=Stephen |date=2011-06-24 |title=Mozilla eyes hassle-free PDFs on the Web |url=https://www.cnet.com/culture/mozilla-eyes-hassle-free-pdfs-on-the-web/ |access-date=2022-05-24 |website=CNET |language=en}} Its implementation uses the Canvas element from HTML5, which allows for fast rendering speeds.
PDF.js is also used in Thunderbird,{{Cite web|title=810815 - Integrate pdf.js to Thunderbird|url=https://bugzilla.mozilla.org/show_bug.cgi?id=810815|access-date=2022-01-28|website=bugzilla.mozilla.org|language=en}} ownCloud,{{Citation|title=owncloud/files_pdfviewer|date=2020-02-08|url=https://github.com/owncloud/files_pdfviewer|publisher=ownCloud|access-date=2020-03-28}} Nextcloud,{{Citation|title=nextcloud/files_pdfviewer|date=2020-03-18|url=https://github.com/nextcloud/files_pdfviewer|publisher=Nextcloud|access-date=2020-03-28}}{{Cite web|url=https://apps.nextcloud.com/apps/files_pdfviewer|title=PDF viewer - Apps - App Store - Nextcloud|website=apps.nextcloud.com|access-date=2020-03-28}} and is available as a browser extension for Google Chrome/Chromium,{{cite web|url=https://chrome.google.com/webstore/detail/pdf-viewer/oemmndcbldboiebfnladdacbdfmadadm|title=PDF Viewer|website=Chrome Web Store}} Pale Moon{{cite web|title=Add-ons - Moon PDF Viewer|url=https://addons.palemoon.org/addon/moon-pdf-viewer|archive-url=https://web.archive.org/web/20200103222159/https://addons.palemoon.org/addon/moon-pdf-viewer/|archive-date=January 3, 2020|access-date=May 4, 2021|website=Pale Moon - Add-ons}}{{Cite web|title=IsaacSchemm/pdf.js-seamonkey: SeaMonkey fork of pdf.js|url=https://github.com/IsaacSchemm/pdf.js-seamonkey|url-status=live|archive-url=https://web.archive.org/web/20201206160734/https://github.com/IsaacSchemm/pdf.js-seamonkey|archive-date=December 6, 2020|access-date=May 4, 2021|website=GitHub}} and SeaMonkey.{{cite web|title=PDF Viewer for SeaMonkey|url=https://addons.thunderbird.net/seamonkey/addon/pdf-js-for-seamonkey|website=Add-ons for SeaMonkey|date=25 April 2020 }}
It can be integrated or embedded in a web or native application to enable PDF rendering and viewing, and allows advanced usages such as Server-side rendering.
Many web applications, including Dropbox,{{Cite web|last=Lauraharrisneal|title=Annotations on Document Previews|url=https://dropbox.tech/application/annotations-on-document-previews|access-date=2021-08-05|website=dropbox.tech|language=en}} Slack,{{Cite news|date=2016-11-16|title=What matters to you, matters to us. - Slack Engineering|language=en-US|work=Slack Engineering|url=https://slack.engineering/what-matters-to-you-matters-to-us-10ff49650a5d|access-date=2021-08-05}} and LinkedIn Learning{{Cite web|title=Under the hood: Learning with documents|url=https://engineering.linkedin.com/blog/2019/04/under-the-hood--learning-with-documents|access-date=2021-08-05|website=engineering.linkedin.com|language=en}} integrate PDF.js to enable previewing PDF documents.
Behavior
According to a benchmark by Mozilla, PDF.js is performant for viewing most common PDF files, while it may have some issues with large or 'graphics-heavy' documents.{{Cite web|url=https://hacks.mozilla.org/2014/05/how-fast-is-pdf-js/|title=How fast is PDF.js? – Mozilla Hacks - the Web developer blog}}
PDF.js supports most of the PDF specifications (including form support or XFA{{Cite web|title=1706133 - (pdf-xfa) [meta] XFA support|url=https://bugzilla.mozilla.org/show_bug.cgi?id=1706133|access-date=2022-01-28|website=bugzilla.mozilla.org|language=en}}), but some features have not been implemented yet, which may impact rendering behavior depending on the features the document uses.{{Cite web|title=Guide to Evaluating PDF.js Rendering|url=https://pdftron.com/blog/pdf-js/guide-to-pdf-js-rendering/|access-date=2021-08-05|website=PDFTron}}
Several PDF/X or optional PDF features that are not supported in PDF.js include:
- ICC Color Profiles{{Cite web |title=ICC profiles support for images · Issue #2856 · mozilla/pdf.js |url=https://github.com/mozilla/pdf.js/issues/2856 |access-date=2022-05-24 |website=GitHub |language=en}}
- Spot colors
- Overprint simulation{{Cite web |title=Overprint Support · Issue #7360 · mozilla/pdf.js |url=https://github.com/mozilla/pdf.js/issues/7360 |access-date=2022-05-24 |website=GitHub |language=en}}
- Transparency groups (knockout/isolation){{Cite web |title=Issue about knockout groups. · Issue #3136 · mozilla/pdf.js |url=https://github.com/mozilla/pdf.js/issues/3136 |access-date=2022-05-24 |website=GitHub |language=en}}
- High-fidelity printing
The PDF.js contributor community also notes that the browser behavior of PDF.js varies with browser support for PDF.js's required features.{{Cite web|title=Frequently Asked Questions · mozilla/pdf.js Wiki|url=https://github.com/mozilla/pdf.js|access-date=2021-08-05|website=GitHub|language=en}} Performance and reliability will be the best on Chrome and Firefox, which are fully supported and subject to automated testing.
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
External links
- {{Official site}}
- {{cite web
| url = https://support.mozilla.org/kb/view-pdf-files-firefox
| title = View PDF files in Firefox
| work = Firefox Help
| publisher = Mozilla}}
- {{cite web
| url = https://andreasgal.com/2011/06/15/pdf-js/
| title = pdf.js: Rendering PDF with HTML5 and JavaScript
|author=Chris Jones |author2=Andreas Gal |display-authors=etal
| work = Andreas Gal's blog
| date = 2011-06-15}}
- {{cite web
|url = https://webscripts.softpedia.com/blog/Script-of-the-Day-pdf-js-266909.shtml
|title = Script of the Day: pdf.js
|author = Catalin Cimpanu
|work = Softpedia
|date = 2012-05-03
|access-date = 3 January 2020
|archive-date = 13 January 2015
|archive-url = https://web.archive.org/web/20150113184320/https://webscripts.softpedia.com/blog/Script-of-the-Day-pdf-js-266909.shtml
}}
{{Mozilla organisations}}