# PDF.js Viewer

* Contributors: FalconerWeb, twistermc
* Tags: pdf, pdf.js, viewer, reader, embed, mozilla, shortcode
* Requires at least: 4.9
* Tested up to: 5.7
* Stable tag: 2.0.2
* License: GPLv2 or later
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
* Requires PHP: 7.2

Embed a beautiful PDF viewer into pages.

## Description

Incorporate [Mozilla's PDF.js](https://github.com/mozilla/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
*   Elegant speckled gray theme
*   Customizable buttons
*   Page navigation drawer
*   Advanced search functionality
*   Language support for all languages
*   Protected PDF password entry
*   Loading bar & displays partially loaded PDF (great for huge PDFs!)
*   Document outline
*   Advanced zoom settings
*   Classic Editor: Easy to use editor media button that generates the shortcode for you
*   Support for mobile devices

Shortcode Syntax:

`[pdfjs-viewer url=http://www.website.com/test.pdf viewer_width=600px viewer_height=700px fullscreen=true download=true print=true]`

*   `url` (required): direct url to pdf file
*   `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, change the fullscreen link text (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
*   `download` (optional): true/false, enables or disables download button (default: true)
*   `print` (optional): true/false, enables or disables print button (default: true)
*   `zoom` (optional): auto/page-actual/page-width/page-fit/50/75/100/200/300/400, PDF zoom level (default: auto)
*   `search_term` (optional): string, highlights matching text on PDF load. Only single words are working at this time.

Want to help develop the plugin? Found a bug? [Find us on GitHub](https://github.com/TwisterMc/PDF.js-Viewer-Shortcode).

## Invalid Block? Update it.

Older blocks will be marked as _invalid_ in Gutenberg as we add new features. You just need to "[Attempt Block Recovery](https://www.kadenceblocks.com/docs/how-to-recover-a-broken-block/)" and that should update it. 

## Installation

This plugin can be installed either directly from your WordPress admin panel by searching for **PDF.js Viewer**, or downloading from the Wordpress Plugin Repository and uploading and expanding the archive into your sites `wp-content/plugins` directory.

## Changelog

### 2.0.2
* Preventing XSS with the search term

### 2.0.1
* Now works with ACF fields! Thanks @imj13

### 2.0.0

* Major PDFjs Upgrade to version 2.6.347
* Changing the insert PDF button to fire on a class not ID.
* Updated the minimum version of WordPress supported.
* Maybe Edge is happy now?

### 1.5.9
* Fixing the issue that made Edge unhappy. *fingers crossed*

### 1.5.8

* Starting to hook up options page to the shortcode.
* Fixing a potential code injection problem
* Fix for WordPress 2021 Theme

### 1.5.7

* Fix for those not running WordPress 5+ where a fatal error would show because a function I called didn't exist.

### 1.5.6

* New options page to set the default settings.
* Only showing the 'Add PDF' media button to posts using the classic editor as it only works in the classic editor.
* Added a filter to pass in a custom domain if URLs are proxied. `pdfjs_set_custom_domain`
* Added a filter if you want to edit the PDF URL. `pdfjs_set_custom_edits`
* Ability to hide Search via setting on options page.
* Ability to show Sidebar via setting on options page.
* Ability to highlight a search term on PDF load.

### v1.5.5

* High Five 🖐

### v1.5.4

* Reworking way we make the PDF url relative.

### v1.5.3

* Remove only the first instance of the domain name from the URL. Leave it if it's in a directory or file name.

### v1.5.2

* Making the PDF URL relative so that maybe Microsoft Defender won't complain.
* Allowing the viewer to be called directly.
* Hiding the Open button.
* Checking for `register_block_type` function before calling it to better support WordPress 4.x. Thanks @Now-Italy-Demo  @octoxan
* Made the PDF URL relative to hopefully fix Windows Defender security issues. 
* Adding option to open the fullscreen link in a new tab.

### v1.5.1

* Reverting the update to Mozilla PDF.JS library as it broke older browsers and some other setups.

### v1.5

* Updated Plugin Name
* Updated Plugin Icon
* Gutenberg Block
* Updating Mozilla PDF.JS library.
* Adding a class to the fullscreen link.
* Ability to customize fullscreen link text.
* Ability to customize default zoom level.
* Classes so you can style things easier.
* Shorter default height.

### v1.4.6

 * Renaming URL variables to prevent a possible Edge security message.

### v1.4.5

 * Fixes a version number issue that was introduced in the last version.

### v1.4.4

 * Brings back the ability to hide print and download.
 * Adds version numbers to URLs to hopefully break caches and prevent weirdness.

### v1.4.3

* Fixes an issue where PDFs wouldn't load on production sites due to a `setLanguage` error.

### v1.4.2

* Added title to iFrame for accessibility.
* Cleaning up code per WordPress standards.

### v1.4.1

* Updating the Readme

### v1.4

* Updating to PDF.JS version v2.3.200
* Updating the Readme
* Adding Gutenberg Callout

### v1.0 - 1.3

* The birth of the plugin and first few versions.
