Title: Embed PDF Viewer
Author: Andy Fragen
Published: <strong>March 31, 2016</strong>
Last modified: February 21, 2026

---

Search plugins

![](https://ps.w.org/embed-pdf-viewer/assets/banner-772x250.png?rev=2560197)

![](https://ps.w.org/embed-pdf-viewer/assets/icon.svg?rev=2883712)

# Embed PDF Viewer

 By [Andy Fragen](https://profiles.wordpress.org/afragen/)

[Download](https://downloads.wordpress.org/plugin/embed-pdf-viewer.2.4.8.zip)

 * [Details](https://co.wordpress.org/plugins/embed-pdf-viewer/#description)
 * [Reviews](https://co.wordpress.org/plugins/embed-pdf-viewer/#reviews)
 * [Development](https://co.wordpress.org/plugins/embed-pdf-viewer/#developers)

 [Support](https://wordpress.org/support/plugin/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](https://wordpress.org/plugins/dirtysuds-embed-pdf/) and 
[RV Embed PDF](https://wordpress.org/plugins/rv-embed-pdf/).

Many thanks to [Alex Kirk](https://github.com/akirk) for making Embed PDF Viewer
compatible with the new block editor.

Development on [GitHub](https://github.com/afragen/embed-pdf-viewer). 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

![](https://secure.gravatar.com/avatar/2c70c3a93b5c86a6c741a8f87e00743a7b3e1581878b5792760d784e954549c2?
s=60&d=retro&r=g)

### 󠀁[Amazing plugin](https://wordpress.org/support/topic/amazing-plugin-2614/)󠁿

 [Abdul qadir](https://profiles.wordpress.org/hajiabdul/) July 31, 2024

This plugin save my 2 days coding task. If this plugin is not there i have to code
this.

![](https://secure.gravatar.com/avatar/215457ed6ea4c4c72b0299070fe0682ae59d4d7a1255037d9e911c3f24309954?
s=60&d=retro&r=g)

### 󠀁[Works Great but no preview on mobile](https://wordpress.org/support/topic/works-great-but-no-preview-on-mobile/)󠁿

 [yu4nf3n](https://profiles.wordpress.org/yu4nf3n/) March 12, 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.

![](https://secure.gravatar.com/avatar/ca3f78c2506a1c61e67fc02fdc4113d6a3dcbcd2de7f0b51ac877fc448e70783?
s=60&d=retro&r=g)

### 󠀁[Perfect!](https://wordpress.org/support/topic/perfect-10126/)󠁿

 [melissajclark](https://profiles.wordpress.org/melissajclark/) November 20, 2023

Love how easy it is to embed a PDF using the Block Editor and this plugin. It’s 
perfect.

![](https://secure.gravatar.com/avatar/7dbb5c54a04617bb06e1e2ca533c15e008403f33626538d79d67da14c29aa4ea?
s=60&d=retro&r=g)

### 󠀁[This is the one!](https://wordpress.org/support/topic/this-is-the-one-47/)󠁿

 [grunk1905](https://profiles.wordpress.org/grunk1905/) May 6, 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!

![](https://secure.gravatar.com/avatar/7a0fd818983c9497fbe45adcf0dd9c4250850da0e036e48a6e668f112ce24cec?
s=60&d=retro&r=g)

### 󠀁[Fantastic](https://wordpress.org/support/topic/fantastic-3181/)󠁿

 [Masum Billah](https://profiles.wordpress.org/masumwp/) April 24, 2023

Very Useful

![](https://secure.gravatar.com/avatar/16563fa6d316c0cc07da8669e4a1f380a78b8335515d260014ff872e9ede2305?
s=60&d=retro&r=g)

### 󠀁[Works great](https://wordpress.org/support/topic/works-great-8632/)󠁿

 [pwhenderson](https://profiles.wordpress.org/pwhenderson/) January 14, 2023

Simple is what we were looking for. Simple is what we got. Works great. Tku

 [ Read all 19 reviews ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/)

## Contributors & Developers

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

Contributors

 *   [ Andy Fragen ](https://profiles.wordpress.org/afragen/)
 *   [ Alex Kirk ](https://profiles.wordpress.org/akirk/)
 *   [ Colin Stewart ](https://profiles.wordpress.org/costdev/)

“Embed PDF Viewer” has been translated into 10 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/embed-pdf-viewer/contributors)
for their contributions.

[Translate “Embed PDF Viewer” into your language.](https://translate.wordpress.org/projects/wp-plugins/embed-pdf-viewer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/embed-pdf-viewer/),
check out the [SVN repository](https://plugins.svn.wordpress.org/embed-pdf-viewer/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/embed-pdf-viewer/)
by [RSS](https://plugins.trac.wordpress.org/log/embed-pdf-viewer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.4.8 / 2025-02-21

 * use `wp_safe_remote_get()`

#### 2.4.7 / 2025-02-05

 * validate destination URL for oEmbed
 * add `max-height: 500px;` to PDF display

#### 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](https://issues.chromium.org/issues/40063550) 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

 * fixed [PDF upload within block](https://wordpress.org/support/topic/uploading-from-within-block-doesnt-work/)

#### 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](https://github.com/akirk),
   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

## Meta

 *  Version **2.4.8**
 *  Last updated **2 months ago**
 *  Active installations **20,000+**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Chinese (China)](https://cn.wordpress.org/plugins/embed-pdf-viewer/), [Chinese (Taiwan)](https://tw.wordpress.org/plugins/embed-pdf-viewer/),
   [Danish](https://da.wordpress.org/plugins/embed-pdf-viewer/), [Dutch](https://nl.wordpress.org/plugins/embed-pdf-viewer/),
   [English (US)](https://wordpress.org/plugins/embed-pdf-viewer/), [Italian](https://it.wordpress.org/plugins/embed-pdf-viewer/),
   [Japanese](https://ja.wordpress.org/plugins/embed-pdf-viewer/), [Russian](https://ru.wordpress.org/plugins/embed-pdf-viewer/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/embed-pdf-viewer/), [Swedish](https://sv.wordpress.org/plugins/embed-pdf-viewer/),
   and [Ukrainian](https://uk.wordpress.org/plugins/embed-pdf-viewer/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/embed-pdf-viewer)
 * Tags
 * [block](https://co.wordpress.org/plugins/tags/block/)[embed](https://co.wordpress.org/plugins/tags/embed/)
   [oembed](https://co.wordpress.org/plugins/tags/oembed/)[pdf](https://co.wordpress.org/plugins/tags/pdf/)
   [viewer](https://co.wordpress.org/plugins/tags/viewer/)
 *  [Advanced View](https://co.wordpress.org/plugins/embed-pdf-viewer/advanced/)

## Ratings

 4.7 out of 5 stars.

 *  [  16 5-star reviews     ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/?filter=5)
 *  [  1 4-star review     ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/?filter=4)
 *  [  2 3-star reviews     ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/embed-pdf-viewer/reviews/)

## Contributors

 *   [ Andy Fragen ](https://profiles.wordpress.org/afragen/)
 *   [ Alex Kirk ](https://profiles.wordpress.org/akirk/)
 *   [ Colin Stewart ](https://profiles.wordpress.org/costdev/)

## Support

Issues resolved in last two months:

     1 out of 1

 [View support forum](https://wordpress.org/support/plugin/embed-pdf-viewer/)