PDF Thumbnail Generator
PDF Thumbnail Generator
Description
Generates thumbnail for PDF file automatically after file is uploaded to the Media library.
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.
Imagick library must be installed on your server, otherwise this plugin will not work
- automated test after plugin activation to make sure it will work on your server
- works with all types of WordPress installations: domain, subdomain, subdirectory, multisite/network
- works on Apache and NGiNX
- automatically generate thumbnail for new uploaded PDFs
- (re)generate thumbnails for existing PDFs in Media library
- set maximum width of PDF thumbnail
- set maximum height of PDF thumbnail
- set image quality of PDF thumbnail
- set image file type of PDF thumbnail
Shortcodes
pdf_thumbnail
Maybe you want to display PDF thumbnail by using a shortcode
[pdf_thumbnail id="123"]
pdf_thumbnail_url
Maybe you want to display PDF thumbnail url by using a shortcode
[pdf_thumbnail_url id="123"]
Functions
get_pdf_thumbnail_url
If you want to return PDF thumbnail URL you can use
get_pdf_thumbnail_url( $pdf_id )
it works similar to wp_get_attachment_url and it will return something like
https://site.com/wp-content/uploads/2022/01/example.pdf.png
get_pdf_thumbnail_path
If you want to return PDF thumbnail URL you can use
get_pdf_thumbnail_path( $pdf_id )
it works similar to get_attached_file and it will return something like
/www/site.com/wp-content/uploads/2022/01/example.pdf.png
get_pdf_thumbnail_image_src
If you want to return PDF thumbnail url, width and height you can use
get_pdf_thumbnail_image_src( $pdf_id )
it works similar to wp_get_attachment_image_src and it will return something like
[
0 => 'https://site.com/wp-content/uploads/2022/01/example.pdf.png',
1 => 600,
2 => 800
]
get_pdf_thumbnail_image
If you want to return PDF thumbnail image tag you can use
get_pdf_thumbnail_image( $pdf_id )
it works similar to wp_get_attachment_image and it will return something like
<img src="https://site.com/wp-content/uploads/2022/01/example.pdf.png" width="600" height="800" alt="example" loading="lazy">
Hooks
pdf_thumbnail_max_width
Maybe you want to change global PDF thumbnail max_width for a specific PDF file
add_filter( 'pdf_thumbnail_max_width', function( $max_width, $pdf_id ){
if( $pdf_id == 123 ){
return 1024;
}
return $max_width;
}, 10, 2 );
pdf_thumbnail_max_height
Maybe you want to change global PDF thumbnail max_width for a specific PDF file
add_filter( 'pdf_thumbnail_max_height', function( $max_height, $pdf_id ){
if( $pdf_id == 123 ){
return 768;
}
return $max_height;
}, 10, 2 );
pdf_thumbnail_quality
Maybe you want to change global PDF thumbnail quality for a specific PDF file
add_filter( 'pdf_thumbnail_quality', function( $quality, $pdf_id ){
if( $pdf_id == 123 ){
return 100;
}
return $quality;
}, 10, 2 );
pdf_thumbnail_type
Maybe you want to change global PDF thumbnail file type for a specific PDF file
add_filter( 'pdf_thumbnail_type', function( $type, $pdf_id ){
if( $pdf_id == 123 ){
return 'png'; // or 'jpg'
}
return $type;
}, 10, 2 );
pdf_thumbnail_bgcolor
Maybe you want to change default PDF thumbnail background for a specific PDF file
add_filter( 'pdf_thumbnail_bgcolor', function( $bgcolor, $pdf_id ){
if( $pdf_id == 123 ){
return 'black'; // default is 'white'
}
return $bgcolor;
}, 10, 2 );
pdf_thumbnail_page_number
Maybe you want to PDF thumbnail page number for a specific PDF file
add_filter( 'pdf_thumbnail_page_number', function( $page, $pdf_id ){
if( $pdf_id == 123 ){
return 1; // default is 0
}
return $page;
}, 10, 2 );
pdf_thumbnail_filename
Maybe you want to PDF thumbnail filename for a specific PDF file
add_filter( 'pdf_thumbnail_filename', function( $filename, $pdf_id ){
if( $pdf_id == 123 ){
return str_replace( '.pdf.png', '.png', $filename );
}
return $filename;
}, 10, 2 );
pdf_thumbnail_imagick
Maybe you want to add watermark to PDF thumbnail for a specific PDF file
add_filter( 'pdf_thumbnail_imagick', function( $imagick, $pdf_id ){
if( $pdf_id == 123 ){
// add your watermark here
}
return $imagick;
}, 10, 2 );
get_pdf_thumbnail_image_attributes
Maybe you want to change attributes for image tag from get_pdf_thumbnail_image function
add_filter( 'get_pdf_thumbnail_image_attributes', function( $attr, $pdf_id ){
$attr['loading'] = 'eager';
return $attr;
}, 10, 2 );
pdf_thumbnail_generated
Maybe you want to do something after the thumbnail is generated
add_action( 'pdf_thumbnail_generated', function( $thumbnail_path, $pdf_id ){
// do somthing with the local file $thumbnail_path
}, 10, 2 );
Installation
- Upload
pdf-thumbnail-generatordirectory to the/wp-content/plugins/directory - Activate the plugin through the ‘Plugins’ menu in WordPress
Faq
PHP 5.6 or higher
Imagick extension
PDF thumbnails are generated in the same directory as original PDF file. Example:
pdf file: /wp-content/uploads/2022/01/example.pdf
thumbnail: /wp-content/uploads/2022/01/example.pdf.png
Reviews
Great Little Plugin
By DarkLight Digital (darklightlaser) on February 17, 2025
Does what it says on the tin! Generates a thumbnail which can be used however you need to.
Great for building a library of pdfs - wrap the shortcode in a link and BANG, you're done!
Invaluable for building document libraries and the like
By Jeremy Varnham (jvarn13) on August 1, 2024
I've used this on multiple sites and have found it invaluable.
While I've struggled with getting the required ImageMagick set up and working on a few servers – each one requiring a slightly different approach owing to different OS and security settings – this is not the fault of the plugin or plugin author.
I'm not sure what one reviewer means by this being built-in to WordPress; to the best of my knowledge that is incorrect.
Very Helpful, Simple Yet Customizable
By hommealone on July 19, 2024
In certain situations, this can be a very handy plugin. It works as advertised. It is simple to use, and allows developers many options of how to implement it and customize it when needed.
Using custom fields for file uploads, I've built this into template files, so my customers can simply upload their PDF files and have them presented nicely with no further effort required.
In the right situation, it can save many tedious and repetitive steps. It allows my clients to easily and automatically present their PDF files in an attractive way without having to fire up Photoshop or some other image creation method each time. No more need to upload a PDF file and a separate image file. This plugin takes care of it all in one easy step.
p.s. - the developer seems to be excellent at responding to questions in the plugin's forum page too!
Possible data security issue
By Hanno (bsoftde) on February 13, 2024
This plugin does not work with ImageMagick's current default settings. In order to make it work you have to change IM's settings and thus open a possible security hole (cf. "ImageMagick security policy 'PDF' blocking conversion" on StackOverflow).
But if you do so, you don't need that plugin at all, because WordPress then does the thumbnail generation out of the box, and those image files only have 10 percent the size of those generated by this plugin.
High level of customization
By cvladan on December 28, 2022
This plugin exceeded my expectations by allowing me to dynamically preview a PDF file without any links to it or similar.
One of the standout features of this plugin is its high level of extensibility. With numerous hooks provided, it is easy to customize and tailor the plugin to meet specific needs and requirements.
Very Useful Plugin
By hilmon on October 10, 2022
Changelog
1.4
- fix: more URL escaping
1.3
- tested on WP 6.6
- escape URL in admin link to prevent XSS
1.2
- tested on WP 6.5
1.1
- tested on WP 6.4
1.0
- First version