{"id":299120,"date":"2026-04-28T17:14:39","date_gmt":"2026-04-28T17:14:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/continuous-pdf-viewer\/"},"modified":"2026-05-24T22:52:58","modified_gmt":"2026-05-24T22:52:58","slug":"continuous-pdf-viewer","status":"publish","type":"plugin","link":"https:\/\/hu.wordpress.org\/plugins\/continuous-pdf-viewer\/","author":7930915,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.7","stable_tag":"2.1.7","tested":"7.0","requires":"5.8","requires_php":"","requires_plugins":null,"header_name":"Continuous PDF Viewer","header_author":"Jonathan A Eiseman","header_description":"A high-performance PDF viewer based on PDF.js with a shortcode generator and Gutenberg support.","assets_banners_color":"","last_updated":"2026-05-24 22:52:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/mafw.org","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":262,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"2.1.5":{"tag":"2.1.5","author":"joneiseman","date":"2026-04-28 17:19:13"},"2.1.6":{"tag":"2.1.6","author":"joneiseman","date":"2026-05-02 19:26:51"},"2.1.7":{"tag":"2.1.7","author":"joneiseman","date":"2026-05-24 22:52:58"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3517696,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3546713,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"landingPage\":\"\\\/wp-admin\\\/plugins.php\",\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"continuous-pdf-viewer\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":{"cpv\/pdf-viewer":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"cpv\/pdf-viewer","title":"Continuous PDF Viewer","category":"media","icon":"media-document","description":"Embed a continuous scroll PDF viewer.","editorScript":"cpv-block-editor-script","attributes":{"url":{"type":"string","default":""},"title":{"type":"string","default":""},"subtitle":{"type":"string","default":""},"brand":{"type":"string","default":""},"height":{"type":"string","default":"80vh"},"tabletHeight":{"type":"string","default":"70vh"},"mobileHeight":{"type":"string","default":"60vh"},"width":{"type":"string","default":"100%"},"maxWidth":{"type":"string","default":"100%"},"borderRadius":{"type":"string","default":"12"},"theme":{"type":"string","default":"light"},"accent":{"type":"string","default":"#4f7df3"},"bgColor":{"type":"string","default":""},"surfaceColor":{"type":"string","default":""},"textColor":{"type":"string","default":""},"font":{"type":"string","default":"DM Sans"},"fontDisplay":{"type":"string","default":"Instrument Serif"},"downloadDesktop":{"type":"string","default":"yes"},"downloadTablet":{"type":"string","default":"yes"},"downloadMobile":{"type":"string","default":"yes"},"printDesktop":{"type":"string","default":"yes"},"printTablet":{"type":"string","default":"yes"},"printMobile":{"type":"string","default":"yes"},"fullscreenDesktop":{"type":"string","default":"yes"},"fullscreenTablet":{"type":"string","default":"yes"},"fullscreenMobile":{"type":"string","default":"yes"},"searchDesktop":{"type":"string","default":"yes"},"searchTablet":{"type":"string","default":"yes"},"searchMobile":{"type":"string","default":"yes"},"thumbnailsDesktop":{"type":"string","default":"yes"},"thumbnailsTablet":{"type":"string","default":"yes"},"thumbnailsMobile":{"type":"string","default":"yes"},"zoomDesktop":{"type":"string","default":"yes"},"zoomTablet":{"type":"string","default":"yes"},"zoomMobile":{"type":"string","default":"yes"},"themeToggleDesktop":{"type":"string","default":"yes"},"themeToggleTablet":{"type":"string","default":"yes"},"themeToggleMobile":{"type":"string","default":"yes"},"pageNavDesktop":{"type":"string","default":"yes"},"pageNavTablet":{"type":"string","default":"yes"},"pageNavMobile":{"type":"string","default":"yes"},"fitWidthBtnDesktop":{"type":"string","default":"yes"},"fitWidthBtnTablet":{"type":"string","default":"yes"},"fitWidthBtnMobile":{"type":"string","default":"yes"},"fitHeightBtnDesktop":{"type":"string","default":"yes"},"fitHeightBtnTablet":{"type":"string","default":"yes"},"fitHeightBtnMobile":{"type":"string","default":"yes"},"statusBarDesktop":{"type":"string","default":"yes"},"statusBarTablet":{"type":"string","default":"yes"},"statusBarMobile":{"type":"string","default":"yes"},"keyboard":{"type":"string","default":"yes"},"defaultZoom":{"type":"string","default":"fit_width"},"minZoom":{"type":"string","default":"0.3"},"maxZoom":{"type":"string","default":"5"},"zoomStep":{"type":"string","default":"0.2"},"startPage":{"type":"string","default":"1"},"sidebarOpen":{"type":"string","default":"no"},"coverMode":{"type":"string","default":"no"},"coverImage":{"type":"string","default":""},"coverHeight":{"type":"string","default":"80vh"},"coverButton":{"type":"string","default":"yes"},"coverButtonText":{"type":"string","default":"Open PDF"},"coverHint":{"type":"string","default":"Click to open the document viewer"},"coverButtonAlign":{"type":"string","default":"left"},"coverButtonPadding":{"type":"string","default":"12px 18px"},"coverButtonRadius":{"type":"string","default":"10px"},"coverOverlay":{"type":"string","default":"no"},"coverOverlayText":{"type":"string","default":"Click to Open"},"coverOverlayBg":{"type":"string","default":"rgba(0,0,0,0.45)"},"coverOverlayColor":{"type":"string","default":"#ffffff"},"coverOverlayPadding":{"type":"string","default":"18px 24px"},"coverOverlayRadius":{"type":"string","default":"0px"},"coverOverlayFontSize":{"type":"string","default":"18px"},"coverOverlayFontWeight":{"type":"string","default":"700"},"viewerShadow":{"type":"string","default":"yes"},"loadingText":{"type":"string","default":"Loading document..."},"errorText":{"type":"string","default":"Could not load the document. Please check the file URL."}}}},"tagged_versions":["2.1.5","2.1.6","2.1.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3517789,"resolution":"1","location":"assets","locale":"","width":1353,"height":744},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3517789,"resolution":"2","location":"assets","locale":"","width":1894,"height":872}},"screenshots":{"1":"The Continuous PDF Viewer renderibng a document on the frontend","2":"The Gutenberg block for the Continuous PDF Viewer"}},"plugin_section":[],"plugin_tags":[2184,148076,1764,26896,38796],"plugin_category":[50],"plugin_contributors":[261307],"plugin_business_model":[],"class_list":["post-299120","plugin","type-plugin","status-publish","hentry","plugin_tags-document-viewer","plugin_tags-gutenberg","plugin_tags-pdf","plugin_tags-pdf-viewer","plugin_tags-pdf-js","plugin_category-media","plugin_contributors-joneiseman","plugin_committers-joneiseman"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/continuous-pdf-viewer\/assets\/icon-256x256.png?rev=3517696","icon_2x":"https:\/\/ps.w.org\/continuous-pdf-viewer\/assets\/icon-256x256.png?rev=3517696","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/continuous-pdf-viewer\/assets\/screenshot-1.png?rev=3517789","caption":"The Continuous PDF Viewer renderibng a document on the frontend"},{"src":"https:\/\/ps.w.org\/continuous-pdf-viewer\/assets\/screenshot-2.png?rev=3517789","caption":"The Gutenberg block for the Continuous PDF Viewer"}],"raw_content":"<!--section=description-->\n<p>Thanks to Imran Siddiq (https:\/\/www.youtube.com\/@websquadron\/). This code was adapted from his PDF Viewer code.<\/p>\n\n<p>Continuous PDF Viewer is a high-performance, WordPress-native PDF viewer powered by PDF.js. Version 2.1 introduces a completely rebuilt rendering engine optimized for 100% continuous scrolling, bringing a modern, native-app reading experience to your WordPress site.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>Continuous Scroll Engine: Pages stack seamlessly for smooth, vertical reading. Highly optimized sequential rendering prevents browser lag, even on large documents.<\/li>\n<li>Smart Page Tracking: An intelligent viewport observer automatically detects which page you are reading and instantly updates the toolbar and sidebar thumbnails as you scroll.<\/li>\n<li>Advanced Search &amp; Highlight: Pinpoint search functionality that calculates the exact pixel location of your search terms and smoothly scrolls them directly into the center of your screen.<\/li>\n<li>Native Fullscreen Mode: Utilizes the browser's native Fullscreen API for distraction-free reading, featuring \"scroll memory\" to keep your place when entering or exiting fullscreen.<\/li>\n<li>Gutenberg Block Integration: A native WordPress block with a click-to-select placeholder UI and seamless Media Library integration.<\/li>\n<li>Live Shortcode Generator: A dedicated admin tools page (Tools &gt; Continuous PDF Viewer) that lets you visually configure colors, dimensions, and toolbar features while generating a live shortcode.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Using the Gutenberg Block<\/h4>\n\n<ol>\n<li>Open the WordPress Block Editor.<\/li>\n<li>Search for the \"Continuous PDF Viewer\" block.<\/li>\n<li>Click \"Select PDF File\" on the canvas to choose a document from your Media Library.<\/li>\n<li>Use the right-hand Inspector Controls to customize the start page, default zoom, sidebar visibility, and colors.<\/li>\n<\/ol>\n\n<h4>Using the Shortcode<\/h4>\n\n<p>You can place the viewer anywhere using the [continuous_pdf_viewer] shortcode.<\/p>\n\n<p>Basic Example:\n    [continuous_pdf_viewer url=\"https:\/\/yoursite.com\/wp-content\/uploads\/document.pdf\"]<\/p>\n\n<p>Advanced Example:\n    [continuous_pdf_viewer url=\"\/wp-content\/uploads\/document.pdf\" title=\"Annual Report\" start_page=\"3\" theme=\"dark\" accent=\"#4f7df3\"]<\/p>\n\n<p>Note: Generating complex shortcodes is highly recommended via the built-in Shortcode Generator under the Tools menu.<\/p>\n\n<!--section=changelog-->\n<h4>2.1.7<\/h4>\n\n<ul>\n<li>Put the \"Pro Tip\" on a separate line to make the toolbar more responsive<\/li>\n<\/ul>\n\n<h4>2.1.6<\/h4>\n\n<ul>\n<li>Fix the scale number in the toolbar so it matches the actual zoom level<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>Removed the standard_fonts folder<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Change prefix used in the code from cpv to cpdfv<\/li>\n<li>removed unused files<\/li>\n<li>moved inline CSS\/JS to use of wp_add_inline_*<\/li>\n<li>changed shortcode name to continuous_pdf_viewer<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>switch to latest version of PDF.js (v5.6.205)<\/li>\n<li>removed an extra file that didn't belong<\/li>\n<li>removed some !important from the CSS and add a tooltip to the PDF viewer panel<\/li>\n<li>fixed some issues with going full screen<\/li>\n<li>hide the thumbnail button on mobile<\/li>\n<li>hide the sidebar when going fullscreen<\/li>\n<li>make the tool tip text into a PDF Viewer setting which can be changed by the user<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Changed the default height from 600px to 80vh<\/li>\n<li>Recalculate the width for each tab when in a page when different pdf viewer blocks are in different tabs.`<\/li>\n<li>Set the default heights to 80vh for desktop, 70vh for tablet, and 60vh for mobile rather than a specific px value.<\/li>\n<li>wrapped some output in escape_* functions<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>New: Highly-optimized Continuous Scroll engine replaces the legacy single-page view.<\/li>\n<li>New: Pressing the Enter key inside the search bar now accurately loops through highlighted results.<\/li>\n<li>New: High-DPI (Retina) screen support added to the canvas rendering loop for crystal-clear text.<\/li>\n<li>Fix: Replaced legacy CSS flexbox centering to eliminate the \"cut-off top\" bug on tall pages.<\/li>\n<li>Tweak: Search navigation buttons now visually disable when reaching the first or last search result.<\/li>\n<li>Deprecated: The legacy view_mode setting (Single Page vs. Continuous) has been removed.<\/li>\n<\/ul>","raw_excerpt":"A high-performance, WordPress-native PDF viewer powered by PDF.js with a shortcode generator and Gutenberg block integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299120"}],"author":[{"embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joneiseman"}],"wp:attachment":[{"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299120"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299120"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299120"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299120"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299120"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hu.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}