
The plugin pre-empts the standard WordPress 4.7/4.8 PDF preview production process (which uses the PHP extension Imagick) to call Ghostscript directly to produce the preview.
This means that only Ghostscript is required on the server. Neither the PHP module Imagick nor the server package ImageMagick is needed or used (though it’s fine if they’re installed anyway, and if they are they’ll be used by WP (unless you override it) to produce the intermediate sizes of the preview).
The plugin was prompted by the WP_Image_Editor_Imagick_External demonstration class uploaded to the WP Trac ticket #39262 Fall back to ImageMagick command line when the pecl imagic is not available on the server by Hristo Pandjarov, and by the wish to solve the WP Trac ticket #39216 PDFs with non-opaque alpha channels can result in previews with black backgrounds., which particularly affects PDFs with CMYK color spaces (common in the print world).
The plugin by-passes (as far as PDF previews are concerned) #39216, and also by-passes the related issue #39331 unsharpMaskImage in Imagick’s thumbnail_image is not compatible with CMYK JPEGs., as the preview JPEGs produced directly by Ghostscript use sRGB color spaces.
The plugin requires the PHP function exec to be enabled on your system. So if the PHP ini setting disable_functions includes exec, the plugin won’t work. Neither will it work if the suhosin security extension is installed and exec is either not whitelisted or is blacklisted.
Also, the plugin is incompatible with the PHP ini setting safe_mode, an old (and misnamed) setting that was deprecated in PHP 5.3.0 and removed in PHP 5.4.0.
The plugin uses the PHP function exec to call Ghostscript as a shell command. This has security implications as uncareful use with user supplied data (eg the upload file name or the file itself) could introduce an attack vector.
I believe these concerns are addressed here through screening of the file and its name and escaping of arguments. This belief is backed by a bounty of fifteen hundred thousand intergalactic credits to anyone who spots a security issue. Please disclose responsibly.
Unsurprisingly it’s faster. Crude benchmarking (see the script perf_vs_imagick.php) suggests it’s around 35-40% faster. However the production of the preview is only a part of the overhead of uploading a PDF (and doesn’t include producing the intermediate thumbnail sizes for instance) so any speed-up may not be that noticeable.
On JPEG thumbnail size it appears to be comparable (though it depends on the PDF), maybe a bit larger on average. To mitigate this the default JPEG quality for the PDF preview has been lowered to 70 (from 82), which results in some extra “ringing” (speckles around letters) but the previews tested remain very readable. Note that this only affects the “full” PDF thumbnail – the intermediate-sized thumbnails as produced by Imagick or GD and any other non-PDF images remain at the standard JPEG quality of 82. You can use the WP filter wp_editor_set_quality to override this, for instance to restore the quality to 82 add to your theme’s “functions.php”:
function mytheme_wp_editor_set_quality( $quality, $mime_type ) { if ( 'application/pdf' === $mime_type ) { $quality = 82; } return $quality; } add_filter( 'wp_editor_set_quality', 'mytheme_wp_editor_set_quality', 10, 2 ); Eyeballing based on very limited data, ie anecdotally, the previews seem to be of superior definition with less artifacts (even with the JPEG quality reduced to 70), and more faithful to the original colours.
A basic administration tool to regenerate (or generate, if they previously didn’t have a preview) the previews of all PDFs uploaded to the system is included (any previously generated intermediate preview thumbnails will be removed if their dimensions differ). Note that if you have a lot of PDFs you may experience the White Screen Of Death (WSOD) if the tool exceeds the maximum execution time allowed. Note also that as the file names of the previews don’t (normally) change, you will probably have to refresh your browser to see the updated thumbnails.
As workarounds for the possible WSOD issue above, and as facilities in themselves, a “Regenerate PDF Previews” bulk action is added to the list mode of the Media Library, and a “Regenerate Preview” row action is added to each PDF entry in the list. So previews can be regenerated in batches or individually instead.
As a bonus version 1.0.2+ patches WordPress to allow linking to the preview image in “Add Media” when editing a post (#39618 Insert PDF Thumbnail into Editor). Also patches #39630 PDF Thumbnails in Media Library Don’t Fall Back to Full Size.
A google-cheating schoolboy French translation is supplied.
The plugin runs on WP 4.7.0 to 4.8.0, and requires Ghostscript to be installed on the server. The plugin should run on PHP 5.2.17 to 7.1, and on both Unix and Windows servers.
The project is on github.
Starting from $0 per month.
Rating
Reviewers
8 reviews
Tags
Developed By
bonger
Quick & Easy
Common Ninja has a large selection of powerful Wordpress plugins that are easy to use, fully customizable, mobile-friendly and rich with features — so be sure to check them out!
Testimonial plugins for Wordpress
Contact Form plugins for Wordpress
Maps plugins for Wordpress
Translation plugins for Wordpress
Chat plugins for Wordpress
Slider plugins for Wordpress
Reviews plugins for Wordpress
Contact plugins for Wordpress
Galleries plugins for Wordpress
SEO plugins for Wordpress
Forms plugins for Wordpress
Comments plugins for Wordpress
Backup plugins for Wordpress
Privacy plugins for Wordpress
Optimize plugins for Wordpress
Tabs plugins for Wordpress
Social Sharing plugins for Wordpress
Events Calendar plugins for Wordpress
Comments plugins for Wordpress
Social Feeds plugins for Wordpress
Social Sharing plugins for Wordpress
Portfolio plugins for Wordpress
Video Player plugins for Wordpress
popup plugins for Wordpress
SiteMap plugins for Wordpress
Payment plugins for Wordpress
Coming Soon plugins for Wordpress
Inventory plugins for Wordpress
Testimonials plugins for Wordpress
Portfolio plugins for Wordpress
Membership plugins for Wordpress
Forms plugins for Wordpress
Analytics plugins for Wordpress
Events Calendar plugins for Wordpress
Sliders plugins for Wordpress
Analytics plugins for Wordpress
Reviews plugins for Wordpress
Security plugins for Wordpress
Ads plugins for Wordpress
Music Player plugins for Wordpress
Countdown plugins for Wordpress
Email Marketing plugins for Wordpress
Membership plugins for Wordpress
Ecommerce plugins for Wordpress
Customer Support plugins for Wordpress
Video Player plugins for Wordpress
Tabs plugins for Wordpress
Social Feeds plugins for Wordpress
Common Ninja Apps
Browse our extensive collection of compatible plugins, and easily embed them on any website, blog, online store, e-commerce platform, or site builder.
Present dishes with restaurant menu flip cards that highlight key details, help visitors explore options easily, and support confident ordering decisions.
Add social share buttons so visitors share content to major networks, boost engagement, and drive more referral traffic.
Use a support form that lets customers submit tickets, saves each request, sends notifications, and helps you manage support more efficiently.
Use a contact form so visitors can send messages, submit inquiries, and help you collect leads and improve user experience.
Create interactive video polls that use engaging clips to boost participation, gather insights, and help visitors vote in a more dynamic way.
Create engaging stop motion displays with a stop motion player that turns image sequences into interactive animations to boost creativity and visitor engagement.
Show Threads posts in a live feed that keeps content fresh, builds social proof, and helps visitors engage on your site.
Use a Lottie player to embed lightweight JSON animations that improve visual design, keep pages fast, and create a smoother user experience.
Transform PDFs into interactive flipbooks with a PDF flipbook widget that improves reading and keeps visitors engaged.
Show LinkedIn posts with a LinkedIn feed carousel that auto updates, presents content in a smooth layout, and keeps visitors engaged.
Use a sticky video that stays visible while users scroll to keep content in view, increase watch time, and boost engagement.
Show product updates, new features, and announcements in a What's New popup that keeps users informed and engaged.
More plugins
The Common Ninja Search Engine platform helps website builders find the best site widgets, apps, plugins, tools, add-ons, and extensions! Compatible with all major website building platforms - big or small - and updated regularly, our Search Engine tool provides you with the business tools your site needs!
