スポンサーリンク

PDF Image Creator

ITライフハック
この記事は約9分で読めます。
スポンサーリンク
当ページはプロモーションが含まれています
スポンサーリンク

PLUGIN

PDF Image Creatorは、WordPressのメディアライブラリにPDFファイルをアップロードする際に、自動的にサムネイル画像を生成するプラグインです。

ImageMagickまたはGhostScriptを使用してPDFの表紙画像を生成し、アイキャッチ画像として設定したり、エディタに挿入したりすることができます。

ダウンロード:
WordPress.org プラグインページ (準備中)

スポンサーリンク

DEMO

PDFファイルをメディアライブラリにアップロードするだけで、自動的にサムネイル画像が生成されます。

生成されたサムネイルは、デフォルトのPDFアイコンの代わりに表示され、投稿やページに挿入する際にも使用できます。

INSTALLATION

  1. プラグインをダウンロードし、/wp-content/plugins/ディレクトリにアップロードします
  2. WordPress管理画面の「プラグイン」メニューからプラグインを有効化します
  3. 「設定」→「PDF Image Creator」で各種設定を行います
  4. 「ステータス」タブでPDF変換エンジンの利用可能状況を確認します

サーバー要件:
以下のいずれかが必要です:

  • ImageMagick(Imagick PHP拡張)+ PDF対応
  • GhostScript

FEATURES

1. PDFアップロード時にサムネイルを自動生成

PDFファイルをメディアライブラリにアップロードすると、表紙ページの画像が自動的に生成されます。生成される画像は、WordPressで設定されている各サイズ(サムネイル、中、大、フルサイズ)に対応します。

2. アイキャッチ画像として自動設定

生成されたサムネイル画像は、PDFのアイキャッチ画像(post-thumbnail)として自動的に登録されます。設定画面でこの機能のオン/オフを切り替えられます。

3. メディアライブラリでサムネイル表示

管理画面のメディアライブラリで、デフォルトのPDFアイコンの代わりに生成したサムネイル画像を表示できます。

4. 生成画像をメディアライブラリから非表示

自動生成されたサムネイル画像をメディアライブラリの一覧から非表示にできます。PDFを削除すると、関連するサムネイル画像も自動的に削除されます。

5. エディタへの挿入時にサムネイルを使用

PDFをエディタに挿入する際、リンクテキストの代わりにサムネイル画像を使用できます。挿入形式は「画像のみ」「タイトルリンク」「カスタムHTML」から選択できます。

6. 既存PDFの一括サムネイル生成

プラグイン有効化前にアップロードされたPDFファイルに対しても、一括でサムネイルを生成できます。設定画面の「一括生成」タブから実行できます。

SETTINGS

画像設定

設定項目 説明 デフォルト値
最大幅 生成画像の最大幅(px) 1024
最大高さ 生成画像の最大高さ(px) 1024
品質 JPEG/WebP画像の品質(10-100) 90
フォーマット 出力画像形式(JPEG/PNG/WebP) JPEG
背景色 透明PDFの背景色(白/黒/透明)
ページ番号 サムネイルに使用するページ(0始まり) 0(1ページ目)

表示設定

  • サムネイルアイコンを表示 – メディアライブラリでPDFアイコンの代わりにサムネイルを表示
  • 生成画像を非表示 – 生成されたサムネイル画像をメディアライブラリの一覧から非表示
  • アンインストール時に画像を保持 – プラグイン削除時に生成画像を通常の画像として残す

挿入設定

  • 画像 – サムネイル画像のみを挿入
  • タイトル – PDFタイトルのテキストリンクを挿入
  • カスタムHTML – 独自のHTMLテンプレートを使用

カスタムHTMLでは以下のプレースホルダーが使用できます:

  • {thumbnail} – サムネイル画像のimgタグ
  • {pdf_url} – PDFファイルのURL
  • {pdf_title} – PDFのタイトル
  • {thumbnail_url} – サムネイル画像のURL

TEMPLATE

テンプレート関数

テーマファイル内でPDFサムネイルを表示するための関数が用意されています。

// サムネイルURLを取得
  $url = pic_get_thumbnail_url( $pdf_id, 'medium' );

  // サムネイルIDを取得
  $thumbnail_id = pic_get_thumbnail_id( $pdf_id );

  // サムネイル画像のHTMLを取得
  $img = pic_get_thumbnail_image( $pdf_id, 'medium', array( 'class' => 'pdf-thumb' ) );

  // サムネイルがあるか確認
  if ( pic_has_thumbnail( $pdf_id ) ) {
      // 処理
  }

  // サムネイルを生成
  $thumbnail_id = pic_generate_thumbnail( $pdf_id, true ); // true = 強制再生成
  

投稿に添付されたPDFを一覧表示

<?php
  $pdfs = get_posts( array(
      'post_type'      => 'attachment',
      'post_mime_type' => 'application/pdf',
      'post_parent'    => get_the_ID(),
      'posts_per_page' => -1,
  ) );

  if ( $pdfs ) :
      foreach ( $pdfs as $pdf ) :
          if ( pic_has_thumbnail( $pdf->ID ) ) :
  ?>
      <div class="pdf-item">
          <a href="<?php echo wp_get_attachment_url( $pdf->ID ); ?>" target="_blank">
              <?php echo pic_get_thumbnail_image( $pdf->ID, 'medium' ); ?>
          </a>
          <p><?php echo esc_html( $pdf->post_title ); ?></p>
      </div>
  <?php
          endif;
      endforeach;
  endif;
  ?>

ショートコード

投稿やページ内で以下のショートコードが使用できます。

// サムネイル画像を表示
  [pdf_thumbnail id="123" size="medium" class="my-class"]

  // サムネイルURLのみ出力
  [pdf_thumbnail_url id="123" size="medium"]

  // PDFへのリンク付きサムネイル
  [pdf_clickable_thumbnail id="123" size="medium" target="_blank"]

  // ダウンロードリンク(サムネイル+タイトル)
  [pdf_download_link id="123" size="thumbnail" text="ダウンロード"]

FILTERS

プラグインの動作をカスタマイズするためのフィルターフックが用意されています。

サムネイル生成設定の変更

// 2ページ目をサムネイルに使用
  add_filter( 'pdf_image_creator_thumbnail_page', function( $page, $pdf_id ) {
      return 1; // 0始まりなので1 = 2ページ目
  }, 10, 2 );

  // 最大幅を変更
  add_filter( 'pdf_image_creator_thumbnail_max_width', function( $width, $pdf_id ) {
      return 2048;
  }, 10, 2 );

  // 品質を変更
  add_filter( 'pdf_image_creator_thumbnail_quality', function( $quality, $pdf_id ) {
      return 95;
  }, 10, 2 );
  

画像属性のカスタマイズ

add_filter( 'pdf_image_creator_thumbnail_image_attributes', function( $attr, $pdf_id, $thumbnail_id ) {
      $attr['class'] .= ' lazyload pdf-thumbnail';
      $attr['loading'] = 'lazy';
      $attr['decoding'] = 'async';
      return $attr;
  }, 10, 3 );

利用可能なフィルター一覧

  • pdf_image_creator_engines – 変換エンジンの変更
  • pdf_image_creator_thumbnail_page – 使用ページの変更
  • pdf_image_creator_thumbnail_max_width – 最大幅の変更
  • pdf_image_creator_thumbnail_max_height – 最大高さの変更
  • pdf_image_creator_thumbnail_quality – 品質の変更
  • pdf_image_creator_thumbnail_format – フォーマットの変更
  • pdf_image_creator_thumbnail_bgcolor – 背景色の変更
  • pdf_image_creator_thumbnail_image_attributes – 画像属性の変更
  • pdf_image_creator_custom_insert_html – 挿入HTMLのカスタマイズ
  • pdf_image_creator_hide_thumbnails_in_library – ライブラリ非表示の制御
  • pdf_image_creator_before_generate – 生成前アクション
  • pdf_image_creator_after_generate – 生成後アクション
  • pdf_image_creator_generation_failed – 生成失敗時アクション

CHANGELOG

1.0.2

WordPress.org プラグインガイドライン準拠のための修正

1.0.1

  • WordPress Plugin Check 互換性問題を修正
  • セキュリティ改善:入力サニタイズとエスケープの追加
  • 非標準ポートでのAJAX CORSエラーを修正
  • フィルターフック名を pdf_image_creator_ プレフィックスに変更
  • 非推奨の load_plugin_textdomain() を削除
  • WordPressコーディング規約に準拠

1.0.0

  • 初回リリース
  • PDFアップロード時の自動サムネイル生成
  • ImageMagick / GhostScript エンジン対応
  • 既存PDFの一括サムネイル生成
  • アイキャッチ画像サポート
  • ブロックエディタ対応
  • ショートコード(4種類)
  • テンプレート関数(5種類)
  • 表示設定(サムネイルアイコン、生成画像非表示)
  • 挿入設定(カスタムHTMLテンプレート対応)
  • 画像設定(サイズ、品質、フォーマット、背景色)
  • 日本語翻訳同梱
タイトルとURLをコピーしました