PDF.js
![]() | |
![]() PDF.js in Firefox 100, with a table of contents displayed on the sidebar | |
Original author(s) | Andreas Gal |
---|---|
Developer(s) | Mozilla |
Initial release | 2 July 2011[1] |
Repository | |
Written in | JavaScript, CSS, HTML |
Platform | JavaScript engine, web browser |
Size | 3.94 MB[1] |
Type | PDF viewer |
License | Apache License 2.0[3] |
Website | mozilla |
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
[edit]PDF.js was originally created as an extension for Firefox[4] and is included in Firefox since 2012 (version 15),[5][6] and enabled by default since 2013 (version 19).[7][8] It was added to Firefox for Android in 2023 (version 111).[9]
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.[10] Its implementation uses the Canvas element from HTML5, which allows for fast rendering speeds.[10]
PDF.js is also used in Thunderbird,[11] ownCloud,[12] Nextcloud,[13][14] and is available as a browser extension for Google Chrome/Chromium,[15] Pale Moon[16][17] and SeaMonkey.[17][18]
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,[19] Slack,[20] and LinkedIn Learning[21] integrate PDF.js to enable previewing PDF documents.
Behavior
[edit]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.[22]
PDF.js supports most of the PDF specifications (including form support or XFA[23]), but some features have not been implemented yet, which may impact rendering behavior depending on the features the document uses.[24]
Several PDF/X or optional PDF features that are not supported in PDF.js include:
- ICC Color Profiles[25]
- Spot colors
- Overprint simulation[26]
- Transparency groups (knockout/isolation)[27]
- 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.[28] Performance and reliability will be the best on Chrome and Firefox, which are fully supported and subject to automated testing.
See also
[edit]References
[edit]- ^ a b "Releases · mozilla/pdf.js". GitHub. Retrieved 12 March 2021.
- ^ "Release 4.5.136". 27 July 2024. Retrieved 23 August 2024.
- ^ "pdf.js/LICENSE at master · mozilla/pdf.js". GitHub. 17 February 2022.
- ^ "PDF Viewer(discontinued)". addons.mozilla.org. Archived from the original on 5 December 2015. Retrieved 2 December 2015.
- ^ Parfeni, Lucian (30 April 2012). "PDF.JS and Download Manager Panel Pushed to Firefox 15". Softpedia. SoftNews.
- ^ Blagoveschenskiy, Anton (29 August 2012). "Вышла новая версия браузера Firefox 15" [New version 15 of the Firefox browser released]. Rossiyskaya Gazeta (in Russian). Retrieved 9 September 2012.
- ^ "Bug 773397 – Disable pdf.js prior to FF15 beta 5". bugzilla.mozilla.org.
- ^ "Firefox 19.0 Release Notes". mozilla.org. Retrieved 30 April 2013.
- ^ "Firefox for Android 111.0, See All New Features, Updates and Fixes". www.mozilla.org. Retrieved 19 April 2024.
- ^ a b Shankland, Stephen (24 June 2011). "Mozilla eyes hassle-free PDFs on the Web". CNET. Retrieved 24 May 2022.
- ^ "810815 - Integrate pdf.js to Thunderbird". bugzilla.mozilla.org. Retrieved 28 January 2022.
- ^ owncloud/files_pdfviewer, ownCloud, 8 February 2020, retrieved 28 March 2020
- ^ nextcloud/files_pdfviewer, Nextcloud, 18 March 2020, retrieved 28 March 2020
- ^ "PDF viewer - Apps - App Store - Nextcloud". apps.nextcloud.com. Retrieved 28 March 2020.
- ^ "PDF Viewer". Chrome Web Store.
- ^ "Add-ons - Moon PDF Viewer". Pale Moon - Add-ons. Archived from the original on 3 January 2020. Retrieved 4 May 2021.
- ^ a b "IsaacSchemm/pdf.js-seamonkey: SeaMonkey fork of pdf.js". GitHub. Archived from the original on 6 December 2020. Retrieved 4 May 2021.
- ^ "PDF Viewer for SeaMonkey". Add-ons for SeaMonkey. 25 April 2020.
- ^ Lauraharrisneal. "Annotations on Document Previews". dropbox.tech. Retrieved 5 August 2021.
- ^ "What matters to you, matters to us. - Slack Engineering". Slack Engineering. 16 November 2016. Retrieved 5 August 2021.
- ^ "Under the hood: Learning with documents". engineering.linkedin.com. Retrieved 5 August 2021.
- ^ "How fast is PDF.js? – Mozilla Hacks - the Web developer blog".
- ^ "1706133 - (pdf-xfa) [meta] XFA support". bugzilla.mozilla.org. Retrieved 28 January 2022.
- ^ "Guide to Evaluating PDF.js Rendering". PDFTron. Retrieved 5 August 2021.
- ^ "ICC profiles support for images · Issue #2856 · mozilla/pdf.js". GitHub. Retrieved 24 May 2022.
- ^ "Overprint Support · Issue #7360 · mozilla/pdf.js". GitHub. Retrieved 24 May 2022.
- ^ "Issue about knockout groups. · Issue #3136 · mozilla/pdf.js". GitHub. Retrieved 24 May 2022.
- ^ "Frequently Asked Questions · mozilla/pdf.js Wiki". GitHub. Retrieved 5 August 2021.
External links
[edit]- Official website
- "View PDF files in Firefox". Firefox Help. Mozilla.
- Chris Jones; Andreas Gal; et al. (15 June 2011). "pdf.js: Rendering PDF with HTML5 and JavaScript". Andreas Gal's blog.
- Catalin Cimpanu (3 May 2012). "Script of the Day: pdf.js". Softpedia. Archived from the original on 13 January 2015. Retrieved 3 January 2020.