{"id":159815,"date":"2022-07-08T21:23:48","date_gmt":"2022-07-08T21:23:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pdf-thumbnail-generator\/"},"modified":"2025-12-01T22:46:00","modified_gmt":"2025-12-01T22:46:00","slug":"pdf-thumbnail-generator","status":"publish","type":"plugin","link":"https:\/\/pap-aw.wordpress.org\/plugins\/pdf-thumbnail-generator\/","author":9548563,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5","stable_tag":"1.5","tested":"6.9.4","requires":"3.0.1","requires_php":"5.6","requires_plugins":null,"header_name":"PDF Thumbnail Generator","header_author":"KubiQ","header_description":"Generates thumbnail for PDF files","assets_banners_color":"c9ad98","last_updated":"2025-12-01 22:46:00","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/jakubnovaksl","header_plugin_uri":"https:\/\/wp-speedup.eu","header_author_uri":"https:\/\/kubiq.sk","rating":4.3,"author_block_rating":0,"active_installs":2000,"downloads":19935,"num_ratings":6,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"kubiq","date":"2022-07-08 21:27:33"},"1.1":{"tag":"1.1","author":"kubiq","date":"2023-10-25 06:59:20"},"1.2":{"tag":"1.2","author":"kubiq","date":"2024-03-22 17:08:00"},"1.3":{"tag":"1.3","author":"kubiq","date":"2024-09-10 07:40:31"},"1.4":{"tag":"1.4","author":"kubiq","date":"2024-09-12 19:03:26"},"1.5":{"tag":"1.5","author":"kubiq","date":"2025-12-01 22:46:00"}},"upgrade_notice":[],"ratings":{"1":1,"2":0,"3":0,"4":0,"5":5},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":2753908,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2753908,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2753908,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1","1.2","1.3","1.4","1.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2753908,"resolution":"1","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[6417,2209,133,1764,1326],"plugin_category":[50],"plugin_contributors":[81042],"plugin_business_model":[],"class_list":["post-159815","plugin","type-plugin","status-publish","hentry","plugin_tags-creator","plugin_tags-generator","plugin_tags-image","plugin_tags-pdf","plugin_tags-thumbnail","plugin_category-media","plugin_contributors-kubiq","plugin_committers-kubiq"],"banners":{"banner":"https:\/\/ps.w.org\/pdf-thumbnail-generator\/assets\/banner-772x250.png?rev=2753908","banner_2x":"https:\/\/ps.w.org\/pdf-thumbnail-generator\/assets\/banner-1544x500.png?rev=2753908","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/pdf-thumbnail-generator\/assets\/icon.svg?rev=2753908","icon":"https:\/\/ps.w.org\/pdf-thumbnail-generator\/assets\/icon.svg?rev=2753908","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pdf-thumbnail-generator\/assets\/screenshot-1.png?rev=2753908","caption":""}],"raw_content":"<!--section=description-->\n<p>Generates thumbnail for PDF file automatically after file is uploaded to the Media library.<\/p>\n\n<p>You can also generate thumbnails for old PDF files that are already in the Media library - you can generate missing thumbnails or regenerate all thumbnails.<\/p>\n\n<p><strong>Imagick library must be installed on your server, otherwise this plugin will not work<\/strong><\/p>\n\n<ul>\n    <li>automated test after plugin activation to make sure it will work on your server<\/li>\n    <li>works with all types of WordPress installations: domain, subdomain, subdirectory, multisite\/network<\/li>\n    <li>works on Apache and NGiNX<\/li>\n    <li>automatically generate thumbnail for new uploaded PDFs<\/li>\n    <li>(re)generate thumbnails for existing PDFs in Media library<\/li>\n    <li>set maximum width of PDF thumbnail<\/li>\n    <li>set maximum height of PDF thumbnail<\/li>\n    <li>set image quality of PDF thumbnail<\/li>\n    <li>set image file type of PDF thumbnail<\/li>\n<\/ul>\n\n<h3>Shortcodes<\/h3>\n\n<h3>pdf_thumbnail<\/h3>\n\n<p>Maybe you want to display PDF thumbnail by using a shortcode<\/p>\n\n<pre><code>[pdf_thumbnail id=\"123\"]\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_url<\/h3>\n\n<p>Maybe you want to display PDF thumbnail url by using a shortcode<\/p>\n\n<pre><code>[pdf_thumbnail_url id=\"123\"]\n<\/code><\/pre>\n\n<h3>pdf_clickable_thumbnail<\/h3>\n\n<p>Maybe you want to display clickable PDF thumbnail that will open PDF in new tab<\/p>\n\n<pre><code>[pdf_clickable_thumbnail id=\"123\"]\n<\/code><\/pre>\n\n<p>\u00a0<\/p>\n\n<h3>Functions<\/h3>\n\n<h3>get_pdf_thumbnail_url<\/h3>\n\n<p>If you want to return PDF thumbnail URL you can use<\/p>\n\n<pre><code>get_pdf_thumbnail_url( $pdf_id )\n<\/code><\/pre>\n\n<p>it works similar to <code>wp_get_attachment_url<\/code> and it will return something like<\/p>\n\n<pre><code>https:\/\/site.com\/wp-content\/uploads\/2022\/01\/example.pdf.png\n<\/code><\/pre>\n\n<h3>get_pdf_thumbnail_path<\/h3>\n\n<p>If you want to return PDF thumbnail URL you can use<\/p>\n\n<pre><code>get_pdf_thumbnail_path( $pdf_id )\n<\/code><\/pre>\n\n<p>it works similar to <code>get_attached_file<\/code> and it will return something like<\/p>\n\n<pre><code>\/www\/site.com\/wp-content\/uploads\/2022\/01\/example.pdf.png\n<\/code><\/pre>\n\n<h3>get_pdf_thumbnail_image_src<\/h3>\n\n<p>If you want to return PDF thumbnail url, width and height you can use<\/p>\n\n<pre><code>get_pdf_thumbnail_image_src( $pdf_id )\n<\/code><\/pre>\n\n<p>it works similar to <code>wp_get_attachment_image_src<\/code> and it will return something like<\/p>\n\n<pre><code>[\n    0 =&gt; 'https:\/\/site.com\/wp-content\/uploads\/2022\/01\/example.pdf.png',\n    1 =&gt; 600,\n    2 =&gt; 800\n]\n<\/code><\/pre>\n\n<h3>get_pdf_thumbnail_image<\/h3>\n\n<p>If you want to return PDF thumbnail image tag you can use<\/p>\n\n<pre><code>get_pdf_thumbnail_image( $pdf_id )\n<\/code><\/pre>\n\n<p>it works similar to <code>wp_get_attachment_image<\/code> and it will return something like<\/p>\n\n<pre><code>&lt;img src=\"https:\/\/site.com\/wp-content\/uploads\/2022\/01\/example.pdf.png\" width=\"600\" height=\"800\" alt=\"example\" loading=\"lazy\"&gt;\n<\/code><\/pre>\n\n<p>\u00a0<\/p>\n\n<h3>Hooks<\/h3>\n\n<h3>pdf_thumbnail_max_width<\/h3>\n\n<p>Maybe you want to change global PDF thumbnail max_width for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_max_width', function( $max_width, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 1024;\n    }\n    return $max_width;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_max_height<\/h3>\n\n<p>Maybe you want to change global PDF thumbnail max_width for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_max_height', function( $max_height, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 768;\n    }\n    return $max_height;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_quality<\/h3>\n\n<p>Maybe you want to change global PDF thumbnail quality for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_quality', function( $quality, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 100;\n    }\n    return $quality;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_type<\/h3>\n\n<p>Maybe you want to change global PDF thumbnail file type for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_type', function( $type, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 'png'; \/\/ or 'jpg'\n    }\n    return $type;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_bgcolor<\/h3>\n\n<p>Maybe you want to change default PDF thumbnail background for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_bgcolor', function( $bgcolor, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 'black'; \/\/ default is 'white'\n    }\n    return $bgcolor;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_page_number<\/h3>\n\n<p>Maybe you want to PDF thumbnail page number for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_page_number', function( $page, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 1; \/\/ default is 0\n    }\n    return $page;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_filename<\/h3>\n\n<p>Maybe you want to PDF thumbnail filename for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_filename', function( $filename, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return str_replace( '.pdf.png', '.png', $filename );\n    }\n    return $filename;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_imagick<\/h3>\n\n<p>Maybe you want to add watermark to PDF thumbnail for a specific PDF file<\/p>\n\n<pre><code>add_filter( 'pdf_thumbnail_imagick', function( $imagick, $pdf_id ){\n    if( $pdf_id == 123 ){\n        \/\/ add your watermark here\n    }\n    return $imagick;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>get_pdf_thumbnail_image_attributes<\/h3>\n\n<p>Maybe you want to change attributes for image tag from <code>get_pdf_thumbnail_image<\/code> function<\/p>\n\n<pre><code>add_filter( 'get_pdf_thumbnail_image_attributes', function( $attr, $pdf_id ){\n    $attr['loading'] = 'eager';\n    return $attr;\n}, 10, 2 );\n<\/code><\/pre>\n\n<h3>pdf_thumbnail_generated<\/h3>\n\n<p>Maybe you want to do something after the thumbnail is generated<\/p>\n\n<pre><code>add_action( 'pdf_thumbnail_generated', function( $thumbnail_path, $pdf_id ){\n    \/\/ do somthing with the local file $thumbnail_path\n}, 10, 2 );\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>pdf-thumbnail-generator<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='plugin%20requirements'><h3>Plugin requirements<\/h3><\/dt>\n<dd><p>PHP 5.6 or higher\nImagick extension<\/p><\/dd>\n<dt id='pdf%20thumbnails%20stored%20location'><h3>PDF thumbnails stored location<\/h3><\/dt>\n<dd><p>PDF thumbnails are generated in the same directory as original PDF file. Example:\npdf file: <code>\/wp-content\/uploads\/2022\/01\/example.pdf<\/code>\nthumbnail: <code>\/wp-content\/uploads\/2022\/01\/example.pdf.png<\/code><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5<\/h4>\n\n<ul>\n<li>tested on WP 6.9<\/li>\n<li>new shortcode [pdf_clickable_thumbnail id=\"123\"] displays clickable PDF thumbnail that will open PDF in new tab on click<\/li>\n<li>csrf security fix<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>fix: more URL escaping<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>tested on WP 6.6<\/li>\n<li>escape URL in admin link to prevent XSS<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>tested on WP 6.5<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>tested on WP 6.4<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>First version<\/li>\n<\/ul>","raw_excerpt":"Generates thumbnail for PDF files","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/159815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=159815"}],"author":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kubiq"}],"wp:attachment":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=159815"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=159815"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=159815"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=159815"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=159815"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=159815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}