Embed PDF Viewer

Description

Embed a PDF from the Media Library or elsewhere via oEmbed or as a block into an iframe tag. The URL only has to be world reachable link. Chrome uses Google Doc Viewer as Chrome seems to automatically rendered embedded JS in PDFs automatically. Uses Google Doc Viewer with mobile.

Inspired by Embed PDF and RV Embed PDF.

Many thanks to Alex Kirk for making Embed PDF Viewer compatible with the new block editor.

Development on GitHub. Pull requests are welcome against the develop branch.

Known Issues

Occasionally Google Doc Viewer will not correctly load the PDF. Reloading the page should correct the issue, though this may need to be done several times.

Screenshots

  • Embed PDF Viewer block
  • Select PDF
  • PDF block and attributes

Blocks

This plugin provides 1 block.

  • PDF

Reviews

31 July 2024
This plugin save my 2 days coding task. If this plugin is not there i have to code this.
12 March 2024 1 reply
Works great on web but when I try to access the website via mobile browser, the pdf has no preview available. BTW, I’m using Wordpress 6.4.3. Thank you for your effort with this PDF plugin it is a big help and easy to use.
20 November 2023
Love how easy it is to embed a PDF using the Block Editor and this plugin. It’s perfect.
6 May 2023
Having tried with a few other PDF embed viewers, this was the one that didn’t add a watermark (EmbedPress), require some sort of paid upgrade (3d flipbook), add an unnecessary ‘Download” button (wordpress inbuilt viewer), or involve technical skills using the shortcode feature (PDF Viewer and PDF.js Viewer). Really glad to have found it, and thanks to those who developed it!
14 January 2023
Simple is what we were looking for. Simple is what we got. Works great. Tku
Read all 19 reviews

Contributors and Developers

“Embed PDF Viewer” is open source software. The following people have contributed to this plugin.

Contributors

“Embed PDF Viewer” has been translated into 10 locales. Thank you to the translators for their contributions.

Translate “Embed PDF Viewer” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log

2.4.6 / 2024-11-01

  • remove load_plugin_textdomain()

2.4.5 / 2024-10-7

  • escape block parameters

2.4.4 / 2024-08-16

  • refactor $description in dynamic_render_callback(), who knew the title attribute could be not set
  • update requirements, PHP 7.4+, WP 6.0

2.4.1 – 2.4.3 / 2024-08-08

  • more sanitizing of URL
  • fix typos and update readme
  • use media file description for title if present
  • escape description in render

2.4.0 / 2024-08-06

  • convert to only use iframe
  • use Google Doc Viewer for Chrome and mobile
  • dynamically render iframe in block based on browser
  • mitigate Chromium issue by rendering PDF with Google Doc Viewer
  • thanks to @costdev for helping with dynamic block rendering

2.3.1 / 2023-09-10

  • update GA
  • update tested to

2.3.0 / 2021-07-07

  • add @10up GitHub Actions integration for WordPress SVN

2.2.0 / 2021-03-05

  • update Toolbar to ToolbarGroup and ToolbarButton
  • add limited support for block alignment toolbar
  • fixes for i18n in block
  • exclude /build from make-pot in composer.json, doesn’t work with minimized JS

2.1.2 / 2020-09-15

  • use same block name for oembed
  • add additional dependencies to enqueue

2.1.1 / 2020-07-20

  • update block for deprecated items and minor errors
  • update media selector for only PDFs

2.1.0 / 2020-07-20

  • update block build process
  • add title and description attributes for a11y
  • add PDF svg for block

2.0.5 / 2020-03-09

  • minor updates to plugin structure on GitHub
  • update tested to

2.0.4 / 2019-10-05

2.0.3 / 2019-04-25

  • move block registration to it’s own function and hook
  • WPCS updates

2.0.2 / 2019-02-03

  • update WordPress requirements

2.0.1 / 2019-01-11

  • added composer.json and automatically create POT with composer update
  • added check for register_block_type() for WP 4.9.x and below

2.0.0 / 2018-12-20 🎂

  • a proper PDF block was added with much help from Alex Kirk, many thanks

1.6.1 / 2018-11-25

  • properly initialize load_plugin_textdomain()

1.6.0 / 2018-07-22

  • added filter embed_pdf_viewer_pdf_attributes
  • updated readme.txt to include Requires PHP header
  • added paragraph tag around link to PDF

1.5.0 / 2016-12-17

  • added CSS to fallback to iframe on iOS as object isn’t scrollable 😛

1.4.0

  • switch to using object tag, with iframe as fallback display method

1.3.0

  • inserting anything other than PDF from Media Library now works as expected.

1.2.1

  • fixed a couple of PHP warnings

1.2.0

  • inserting a PDF from the Media Library now simply inserts the URL for oEmbed
  • oEmbed a PDF from any source

1.1.2

  • simplify instance() just a little more

1.1.1

  • rename instance variable to $instance and make private
  • update DocBlocks
  • ensure $atts is an array

1.1

  • bugfix for not returning media item when not PDF, Bad Andy 🙁

1.0.1

  • add to DocBlocks

1.0

  • refactor to put embed code in one function
  • add assets

0.1

  • initial commit