這個外掛並未在最新的 3 個 WordPress 主要版本上進行測試。開發者可能不再對這個外掛進行維護或提供技術支援,並可能會與更新版本的 WordPress 產生使用上的相容性問題。

PDF Thumbnails

外掛說明

This plugin hooks into the media manager and generates a thumbnail everytime a
PDF is uploaded. Generated thumbnail is an image of the first page in the
uploaded document and is named PDFNAME-thumbnail, where PDFNAME is replaced
by uploaded document filename.

Generated thumbnails are equivalent to featured
images
so that common thumbnail
functions like get_post_thumbnail_id() can be used for PDF attachments. See
Post Thumbnails for information
on how you can use thumbnails efficiently.

Integration with the javascript media API is not yet implemented, therefore, you
may need to reload the page before you can see generated thumbnail after an
upload.

Shortcodes

It is possible to display a thumbnail linking to an uploaded PDF using the [pdf_thumbnails_link]
shortcode. The following attributes are supported:

Example 1: Display link to PDF with ID = 172 using default thumbnail size

[pdf_thumbnails_link id="172"]

Example 2: Display link to PDF with ID = 172 using thumbnail size (default 150×150)

[pdf_thumbnails_link id="172" size="thumbnail"]

Thanks to mirgcire for providing the first
version of the [pdf_thumbnails_link] shortcode.

Developer API

In most cases it should be sufficient to use built-in thumbnail functions from
the WordPress API (get_post_thumbnail and similar). If you need to modify the
way thumbnails are generated, you can override image generation with
the pdf_thumbnails_generate_image_blob filter.

Example 1: Increase resolution for all generated PDF thumbnails

// $blob is the current image blob (defaults to null, can be used for chaining)
// $filename is the PDF filename
add_action('pdf_thumbnails_generate_image_blob', function ($blob, $filename) {
    $imagick = new Imagick();
    $imagick->setResolution(200,200);
    $imagick->readImage($filename);
    $imagick->setIteratorIndex(0);
    $imagick->setImageFormat('jpg');
    return $imagick->getImageBlob();
}, 10, 2);

It is possible to modify generated thumbnail links using the pdf_thumbnails_link_shortcode
filter. The following attributes are available:

  • $html – Generated HTML code to be displayed
  • $attachmentId – Sanitized ID of the PDF attachment
  • $size – Sanitized thumbnail size
  • $attsShortcode attributes (not sanitized)
  • $content – Shortcode content (not sanitized)

Example 2: Wrap thumbnail link in figure and append caption

add_filter('pdf_thumbnails_link_shortcode', function ($html, $attachmentId, $size, $atts, $content) {
    return "<figure>$html <caption>Click to open image $attachmentId</caption></figure>";
}, 10, 5);

TODO

Add generated image to media browser after upload.

Outline of an implementation based on the javascript media API:

// New uploads
wp.Uploader.queue.on('add', function (attachment) {

    if (attachment.subtype !== 'pdf') {
        return;
    }

    findThumbnailFor(attachment.ID).then(function (data) {

        // Add attachment thumbnail to browser
        var attachment = wp.media.model.Attachment.get(id)
        attachment.fetch().done(function () {
            wp.media.editor.open().state().get('library').add(generated attachment)
        });

    });
});

Filter: ajax_query_attachments_args

安裝方式

PDF Thumbnails requires ImageMagick with GhostScript support. If you are lucky,
this is already installed on your system, otherwise, installation can be done
with the following steps:

  1. Install ghostscript
  2. Install imagemagick with ghostscript support
  3. Install PHP extension for imagemagick (can use pecl)
  4. Restart web server for changes to take effect

Details may differ based on which operating system you are running, see
Support for
more resources and tips on how this can be done in Windows, Linux and OSX.

Debian / Ubuntu

sudo apt-get install ghostscript php5-imagick
sudo service apache2 restart

使用者評論

2019 年 6 月 17 日 2 則留言
As of June 2019, this plug-in does not seem to be functioning on our site. It has not been updated for 3 years. We are using WordPress 5.2.1.
2019 年 2 月 21 日
thank you so much! i just needed to enable imagik and ask my host to speed up the php libraries' updating process, it already had pdf support.
2018 年 6 月 28 日
Works just like it should. Can't believe this functionality isn't in the WP core. Thanks!
2016 年 9 月 3 日 1 則留言
The plugin does just what it says and the author is very helpful. My only suggestion would be to add a short code that would insert a clickable thumbnail into a webpage. Clicking on that would open the PDF in a viewer. For example: [pdf-thumbnail id="1234" size="medium"] ... naturally this functionality would require host support for imagick.
閱讀全部 9 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈PDF Thumbnails〉的開發相關工作。

參與者

將〈PDF Thumbnails〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

This plugin use semantic versioning, i.e. breaking changes
increase the MAJOR version.

2.2.0

  • Support title, target, and download attributes in pdf_thumbnails_link shortcode

2.1.0

  • Support thumbnail links with the pdf_thumbnails_link shortcode
  • Support link customization using the pdf_thumbnails_link_shortcode filter

2.0.0

  • Replaced pdf_thumbnails_before_get_image_blob hook with pdf_thumbnails_generate_image_blob filter

1.0.2

  • Introduced pdf_thumbnails_before_get_image_blob hook