{"id":349225,"date":"2026-08-20T04:33:49","date_gmt":"2026-08-20T04:33:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pressflip-pdf-viewer\/"},"modified":"2026-08-20T04:33:38","modified_gmt":"2026-08-20T04:33:38","slug":"pressflip-pdf-viewer","status":"publish","type":"plugin","link":"https:\/\/ar.wordpress.org\/plugins\/pressflip-pdf-viewer\/","author":23448970,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PressFlip PDF Viewer","header_author":"habibnoori","header_description":"Embed responsive PDFs with PDF.js, vertical scrolling, zoom, page navigation, fit modes, print, download, shortcode and Gutenberg block support.","assets_banners_color":"021e46","last_updated":"2026-08-20 04:33:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/habib.wpminner.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"habibnoori","date":"2026-08-20 04:33:38"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3655152,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3655152,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3655152,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3655152,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pressflip\/pdf-viewer":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"pressflip\/pdf-viewer","version":"1.0.0","title":"PressFlip PDF Viewer","category":"media","icon":"pdf","textdomain":"pressflip-pdf-viewer","attributes":{"viewerId":{"type":"number","default":0},"url":{"type":"string","default":""},"width":{"type":"string","default":"100%"},"height":{"type":"string","default":"700px"},"zoom":{"type":"number","default":100},"download":{"type":"boolean","default":true},"print":{"type":"boolean","default":true},"navigation":{"type":"boolean","default":true},"zoomControls":{"type":"boolean","default":true}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css","style":"file:.\/style.css"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2184,26899,142524,26896,48504],"plugin_category":[],"plugin_contributors":[262013],"plugin_business_model":[],"class_list":["post-349225","plugin","type-plugin","status-publish","hentry","plugin_tags-document-viewer","plugin_tags-embed-pdf","plugin_tags-pdf-reader","plugin_tags-pdf-viewer","plugin_tags-pdfjs","plugin_contributors-habibnoori","plugin_committers-habibnoori"],"banners":{"banner":"https:\/\/ps.w.org\/pressflip-pdf-viewer\/assets\/banner-772x250.png?rev=3655152","banner_2x":"https:\/\/ps.w.org\/pressflip-pdf-viewer\/assets\/banner-1544x500.png?rev=3655152","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pressflip-pdf-viewer\/assets\/icon-128x128.png?rev=3655152","icon_2x":"https:\/\/ps.w.org\/pressflip-pdf-viewer\/assets\/icon-256x256.png?rev=3655152","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PressFlip PDF Viewer is a responsive WordPress PDF viewer for embedding PDF documents directly inside posts, pages, custom post types, widgets, and templates.<\/p>\n\n<p>The plugin uses a locally bundled copy of Mozilla PDF.js to display documents with normal vertical scrolling. Visitors can read multi-page PDFs, move between pages, adjust zoom, use Fit to Page or Fit to Width, print the document, or download the original PDF when those controls are enabled.<\/p>\n\n<p>Create reusable PDF viewers from the WordPress Media Library or a direct public PDF URL. Add a viewer with the PressFlip Gutenberg block or the <code>[pressflip_pdf]<\/code> shortcode. The interface is responsive and supports multiple independent PDF viewers on the same page.<\/p>\n\n<h4>Main Features<\/h4>\n\n<ul>\n<li>Responsive PDF viewer with vertical page scrolling.<\/li>\n<li>WordPress Media Library and external PDF URL support.<\/li>\n<li>Gutenberg PDF viewer block and flexible shortcode.<\/li>\n<li>Previous and next page navigation with current and total page numbers.<\/li>\n<li>Zoom in, zoom out, reset, Fit to Page, and Fit to Width controls.<\/li>\n<li>Optional PDF download and print buttons.<\/li>\n<li>Mobile-friendly toolbar and keyboard navigation.<\/li>\n<li>Multiple PDF viewers can run independently on one page.<\/li>\n<li>Saved viewer settings for consistent document embeds.<\/li>\n<li>No page-flip animation, tracking, paid service, or iframe-based primary renderer.<\/li>\n<\/ul>\n\n<h4>Shortcode Examples<\/h4>\n\n<p>Embed a saved viewer:<\/p>\n\n<pre><code>[pressflip_pdf id=\"123\"]\n<\/code><\/pre>\n\n<p>Embed a public PDF URL directly:<\/p>\n\n<pre><code>[pressflip_pdf url=\"https:\/\/example.com\/document.pdf\"]\n<\/code><\/pre>\n\n<p>Override selected viewer settings:<\/p>\n\n<pre><code>[pressflip_pdf id=\"123\" width=\"100%\" height=\"750px\" zoom=\"110\" download=\"yes\" print=\"yes\"]\n<\/code><\/pre>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>PressFlip PDF Viewer includes Mozilla PDF.js version 3.2.146.<\/p>\n\n<ul>\n<li>Library: PDF.js<\/li>\n<li>Copyright: Mozilla and PDF.js contributors<\/li>\n<li>License: Apache License 2.0<\/li>\n<li>Runtime files: <code>assets\/pdfjs\/pdf.min.js<\/code> and <code>assets\/pdfjs\/pdf.worker.min.js<\/code><\/li>\n<li>Human-readable upstream source: https:\/\/github.com\/mozilla\/pdf.js\/tree\/v3.2.146<\/li>\n<li>Upstream build instructions: https:\/\/github.com\/mozilla\/pdf.js\/tree\/v3.2.146#building-pdfjs<\/li>\n<\/ul>\n\n<p>The PDF.js display library and worker are bundled locally. No executable PDF viewer code is loaded from a third-party CDN.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>PressFlip's own JavaScript and CSS are distributed in human-readable form and require no build step:<\/p>\n\n<ul>\n<li><code>admin\/js\/pressflip-admin.js<\/code><\/li>\n<li><code>public\/js\/pressflip-viewer.js<\/code><\/li>\n<li><code>blocks\/pdf-viewer\/index.js<\/code><\/li>\n<li><code>admin\/css\/pressflip-admin.css<\/code><\/li>\n<li><code>public\/css\/pressflip-viewer.css<\/code><\/li>\n<li><code>blocks\/pdf-viewer\/editor.css<\/code><\/li>\n<li><code>blocks\/pdf-viewer\/style.css<\/code><\/li>\n<\/ul>\n\n<p>The minified third-party PDF.js runtime files are generated by the upstream Mozilla PDF.js project. Their maintained source code and build instructions are linked in the Third-Party Libraries section above.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>PDFs render in the visitor's browser. PressFlip PDF Viewer does not collect viewing analytics or send document data to a tracking service. In external URL mode, the visitor's browser connects directly to the third-party host serving the PDF.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP from <strong>Plugins &gt; Add New Plugin &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>PressFlip PDF Viewer<\/strong>.<\/li>\n<li>Open <strong>PressFlip PDF Viewer &gt; Add New Viewer<\/strong>.<\/li>\n<li>Select a PDF from the Media Library or enter a direct public PDF URL.<\/li>\n<li>Publish the viewer and copy its generated shortcode, or insert the PressFlip block in the WordPress editor.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20embed%20pdfs%20uploaded%20to%20the%20wordpress%20media%20library%3F\"><h3>Can I embed PDFs uploaded to the WordPress Media Library?<\/h3><\/dt>\n<dd><p>Yes. Create a viewer, select <strong>Media Library<\/strong> as the source, and choose a PDF file.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20a%20pdf%20from%20another%20website%3F\"><h3>Can I embed a PDF from another website?<\/h3><\/dt>\n<dd><p>Yes, provided the URL points directly to a publicly accessible PDF and the remote server permits browser CORS requests. When the remote host blocks CORS, upload the file to the WordPress Media Library instead.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20elementor%3F\"><h3>Does the plugin support Elementor?<\/h3><\/dt>\n<dd><p>Yes. Add the generated <code>[pressflip_pdf]<\/code> shortcode with Elementor's Shortcode widget.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20print%20or%20download%3F\"><h3>Can I disable print or download?<\/h3><\/dt>\n<dd><p>Yes. Print, download, navigation, zoom, and toolbar controls can be enabled or disabled in viewer settings or shortcode attributes.<\/p><\/dd>\n<dt id=\"does%20the%20viewer%20use%20a%20page-flip%20animation%3F\"><h3>Does the viewer use a page-flip animation?<\/h3><\/dt>\n<dd><p>No. PDF pages are displayed with normal vertical scrolling for a familiar document-reading experience.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Added responsive PDF.js rendering with vertical scrolling.<\/li>\n<li>Added Media Library and external PDF URL sources.<\/li>\n<li>Added shortcode and Gutenberg block support.<\/li>\n<li>Added page navigation, zoom, Fit to Page, and Fit to Width controls.<\/li>\n<li>Added optional print and download controls.<\/li>\n<li>Added responsive toolbar compatibility for Elementor and WordPress themes.<\/li>\n<\/ul>","raw_excerpt":"Embed responsive PDF documents with vertical scrolling, zoom, navigation, print, download, shortcodes, and a Gutenberg block.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=349225"}],"author":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/habibnoori"}],"wp:attachment":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349225"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349225"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349225"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349225"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349225"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}