PDF.js Viewer is a WordPress Plugin Directory app by Ben Lawson. With a rating of 4.4★ from 53 reviews, it currently ranks #7 in the Embed category.
PDF.js Viewer is the #7 ranked Embed app on WordPress, with a 4.4 average rating from 53 reviews, as of Sep 11, 2026.
AppRanks verdict
Generated from marketplace data as of Sep 11, 2026
PDF.js Viewer ranks #7 of 453 in Embed on WordPress. It holds a 4.4★ average from 53 reviews on WordPress.
Pros
No standout positives in the measured data.
Cons
−Only 53 reviews — the average can still move with a few new ratings
How PDF.js Viewer works
Show full descriptionShow less
Incorporate Mozilla’s PDF.js viewer into your pages and posts via a Gutenberg block or a simple shortcode. PDF.js is a javascript library for displaying pdf pages within browsers.
Features:
Gutenberg Block and Shortcode
Elementor Widget (auto-detects when Elementor is active)
Translation Support (plugin only): Spanish and French included, ready for more languages
Elegant Theme that adapts to dark and light mode (if browser supports dynamic CSS)
Customizable buttons
Page navigation drawer
Search functionality
Protected PDF password entry
Loading bar & displays partially loaded PDF (great for huge PDFs!)
Document outline
Classic Editor: Easy to use editor media button that generates the shortcode for you
attachment_id (recommended): ID of the media file in WordPress media library
url (alternative): Direct URL to PDF file. Use attachment_id when possible for better security.
viewer_width (optional): Width of the viewer (default: 100%)
viewer_height (optional): Height of the viewer (default: 800px)
fullscreen (optional): true/false, displays fullscreen link above viewer (default: true)
fullscreen_text (optional): Text for the fullscreen link (default: View Fullscreen)
Spaces not allowed. Use %20 in place of spaces.
fullscreen_target (optional): true/false, open the fullscreen link in a new tab (default: false)
download (optional): true/false, enables or disables download button (default: true)
print (optional): true/false, enables or disables print button (default: true)
openfile (optional): true/false, show open file button (default: false)
zoom (optional): Initial zoom level – auto, page-actual, page-fit, page-width, or percentage like 75, 100, 150 (default: auto)
Elementor Widget
If you’re using Elementor, the PDF.js Viewer Elementor widget is automatically available in the Page Builder.
Admin Notice After Updates / Invalid Block
When you update the plugin, editors may see an admin banner explaining that Gutenberg could show an “Attempt Block Recovery” prompt when editing older posts with PDFs. Clicking it updates the block format; it does not affect what visitors see. You can dismiss the banner, and it won’t reappear until a future release enables it again.
License
This WordPress plugin is licensed under GPLv2 or later.
PDF.js (included in this plugin) is developed by Mozilla and licensed under the Apache License 2.0. See the PDF.js repository for details.
3.1.1
Re-enabled Alternative PDF Loading and fixed a full screen issue with it if it were enabled.
Fix for widgets not loading default settings from the options page.
Update how we load the Elementor widget so hopefully it works better.
Internal code cleaup.
Translation updates.
3.1.0
Cache busting for the pesky pdf.worker.js file to prevent caching issues after updates
Added Elementor widget
Brought Zoom back
Ability to whitelist other domains (like CDNs) to load PDFs from.
3.0.4
Cache busting for PDF.js files to prevent caching issues after updates
3.0.3.1
URL Encoding fix
3.0.3
PDFjs 5.5.207
Improved URL encoding for PDF files with special characters in filenames/URLs
Enhanced security with better sanitization of file parameters
3.0.2
Added cache busing to PDFjs files to prevent caching issues after updates
3.0.1
Fixed an issue with mjs files on servers that don’t support the mime type
3.0.0
Now requires WordPress 5.0 and PHP 7.4
Upgraded PDFjs to PDF.js 5.4.456
Added PDF preview in Gutenberg block
Admin notice for block recovery after updates
Accessibility improvements.
Reworked the block editor PDF embed code
Options Page improvements.
Added message so if the user is trying to load external PDFs, they’ll get a warning
Translation Support: Added internationalization support
Included Spanish (es_ES) and French (fr_FR) translations
Added translation template (POT file) for additional languages
Added load_plugin_textdomain() for automatic translation loading
Created translation guide in languages/README.md
Fixed window.pdfjs_options undefined errors in block editor
Added safe fallback to prevent JavaScript errors when options not loaded
Improved attribute default handling in Gutenberg block
Added PDF preview in Gutenberg block editor
Consolidated rendering logic with new pdfjs_render_viewer() function
Created pdfjs_get_options() helper for consistent option retrieval
Added proper input sanitization with pdfjs_sanitize_option()