検証環境:WordPress 6.9.4 / PHP 8.3.21 / Rapls PDF Image Creator v1.0.9.2 / Cocoon 2.9.1.1 / Xserver スタンダードプラン / Illustrator 28.6
WordPress.org:Rapls PDF Image Creator(無料 / GPLv2 / 日本語対応)
WordPressのメディアライブラリでPDFがすべて同じアイコンで表示され、どれがどのファイルか分からない——この問題を解決するために作ったプラグインです。PDFをアップロードした瞬間に表紙(1ページ目)の画像を自動生成し、メディアライブラリでサムネイルとして表示します。
クライアントのWordPressサイト保守で同じ問題を抱えていましたが、代替を探しても機能過多で設定が複雑なものばかり。「PDFをアップしたら表紙画像を自動生成する」——ただそれだけのシンプルなプラグインがなかったので、自分で作りました。
このプラグインが解決する問題
PDFアイコンだらけのメディアライブラリが、表紙画像付きの一覧に変わります。「あの赤い表紙のやつ」と視覚的にファイルを探せるようになります。
Before:すべて同じPDFアイコン → After:表紙サムネイルが表示されている
なぜ「サムネイル自動生成」だけに絞ったか
PDFビューアーや埋め込み表示は専用プラグインに任せ、「アップしたらサムネイルができる」という一点だけに集中しました。結果、インストールして有効化するだけで動くプラグインになりました。
アップロードしたら勝手にサムネイルができること(手動作業ゼロ)、生成した画像をアイキャッチや投稿に使えること(WordPress標準の画像として扱える)、余計な機能がないこと(ビューアーは別プラグインでいい)——この3点だけに絞りました。
インストール方法
WordPress管理画面から検索してインストールできます。FTPやZIPファイルのアップロードは不要です。
ステップ1〜2:プラグインを検索する
管理画面の「プラグイン」→「新規プラグインを追加」を開き、検索欄に「Rapls PDF Image Creator」と入力します。作者名が「rapls」であることを確認してください。
ステップ3〜4:インストールして有効化する
「今すぐインストール」→「有効化」をクリックします。
ステップ5:動作確認
「メディア」→「新しいメディアファイルを追加」から任意のPDFをアップロードしてください。表紙画像が自動的にサムネイルとして生成されます。
動く環境・動かない環境
このプラグインはImageMagick(Imagick PHP拡張)を使ってPDFを画像に変換します。Xserver、ConoHa WING、さくら、mixhost、wpX Speedでは標準で動作します。
ステータスタブ。「ImageMagickが利用可能です」「PDF変換がサポートされています」の2つが表示されていればOK
「PDF変換がサポートされていません」と表示される場合は、サーバーのImageMagickポリシーでPDFが禁止されている可能性があります。ホスティング会社に問い合わせてください。
おすすめ設定(用途別)
デフォルト設定でも動きますが、用途によって画像サイズ・品質・フォーマットを調整すると効率的です。
一般的なブログ・コーポレートサイト:最大幅/高さ 1024px、品質 80〜85、フォーマット WebP(軽量)またはJPEG。「生成画像を非表示」をONにするとメディアライブラリの肥大化を防げます。
デザイン・印刷系(高画質が必要):最大幅/高さ 2048px、品質 95、フォーマット PNG(劣化なし)。
PDF大量アップロード:最大幅/高さ 800px、品質 70〜75、フォーマット WebP。ファイルサイズを最小にしてサーバー負荷を抑えます。
実務での活用パターン
サムネイル自動生成は「資料ダウンロードページ」「不動産の間取り図」「教育機関の配布物管理」で特に効果的です。
資料ダウンロードページ:企業サイトでホワイトペーパーやカタログを配布する場合、ショートコードでサムネイル付きダウンロードリンクを簡単に設置できます。不動産・物件情報:間取り図PDFをアップロードすると自動で間取り画像がサムネイルになります。学校・教育機関:配布プリントや時間割PDFの管理に。教員がPDFをアップロードするだけで、保護者向けページに表紙付きで一覧表示できます。
サムネイルが真っ黒になる問題——原因と解決策
印刷用PDF(PDF/X形式)でサムネイルが真っ黒になる原因は「RGBにしていない」ではなく「PDF/X形式で保存している」ことです。Illustratorの「準拠する規格:なし」への変更が即効の解決策、プラグイン側のCMYK→sRGB自動変換(v1.0.9以降)が根本的な解決策です。
自作プラグインでイベントチラシのPDFをアップロードしたところ、サムネイルが完全な真っ黒。最初にCMYKカラーモードを疑い、IllustratorでRGBに変換して保存し直しましたが、結果は同じでした。
PDF/X-1形式で保存したPDF(左:真っ黒)と、「準拠する規格:なし」で保存し直したPDF(右:正常)
真犯人はPDF/X-1:2001
pdfinfoコマンドでPDFのメタデータを確認したところ、「PDF subtype: PDF/X-1:2001」が見つかりました。PDF/X-1:2001は印刷業界の国際規格で、「CMYKまたはグレースケール、特色のみ使用可能(RGBは使用不可)」という制約があります。Illustrator上でRGBモードに変更しても、PDF/X形式で保存すると内部的にCMYKが使われるのです。
pdfinfoの実行結果。「PDF subtype: PDF/X-1:2001」が原因の決め手
ImageMagickはRGBを前提としているため、CMYKの「インク量」の数値を「光の強さ」として解釈してしまい、画像全体がほぼ真っ黒に見えます。
解決策1:Illustratorの保存設定を変更する(即効)
「別名で保存」→「Adobe PDFを保存」ダイアログで「準拠する規格」を「なし」に変更するだけです。Web用なら「最小ファイルサイズ」プリセットを選べば自動的に「なし」になります。
「準拠する規格」を「なし」に変更する。Web用途ならこれだけで解決
解決策2:プラグイン側のCMYK自動変換(v1.0.9以降で対応済み)
印刷用PDFをPDF/X形式で保存するのは正しい選択です。変換する側——つまりプラグインが対応すべきと考え、CMYK自動変換機能を実装しました。
最も重要なのは処理順序です。CMYKのままflatten(平坦化)すると、その時点で色が壊れます。flatten後にいくらsRGBに変換しても手遅れです。正しい順序は「PDFを読み込む → カラースペースをチェック → CMYKならsRGBに変換 → flattenする」です。
|
1 2 3 4 5 6 7 |
// カラースペースをチェック(PDF/X-1:2001対応) $colorspace = $imagick->getImageColorspace(); if ($colorspace === \Imagick::COLORSPACE_CMYK) { // CMYKからsRGBに変換(flatten前に実行することが重要) $imagick->transformImageColorspace(\Imagick::COLORSPACE_SRGB); } // この後にflatten・リサイズ・保存 |
プラグインをv1.0.9以降に更新するだけで、PDF/X形式のPDFも自動的に正しく処理されます。既存のPDFでサムネイルが真っ黒だった場合は「設定」→「一括生成」から再生成してください。
その他のよくあるトラブル
サムネイルが生成されない場合はImageMagickの有効化状態とPHPメモリ制限を確認し、一括生成が途中で止まる場合はサーバーのタイムアウトが原因です。
サムネイルが生成されない:ステータスタブで「利用不可」ならサーバー側の問題です。パスワード保護されたPDFは変換不可。大きなPDF(数十MB)ならwp-config.phpにdefine( 'WP_MEMORY_LIMIT', '256M' );を追加してください。
一括生成が途中で止まる:サーバーのタイムアウトが原因です。深夜など負荷の低い時間帯に実行し、ブラウザを閉じない(Ajax処理なので閉じると中断される)ようにしてください。
一括生成タブ。プラグイン導入前のPDFにもまとめてサムネイルを生成できる
FAQ
開発者として最も多く受ける質問をまとめました。
Q. 2ページ目をサムネイルにできますか? はい。設定画面の「ページ番号」を変更するか、フィルターフックで制御できます。
Q. 既存のPDFにもサムネイルを付けられますか? はい。「設定」→「一括生成」タブから一括でサムネイルを生成できます。
Q. プラグインを削除したら画像はどうなりますか? デフォルトでは削除されます。「アンインストール時に画像を保持」をONにしておけば残ります。
Q. 他のPDFプラグインと併用できますか? はい。サムネイル生成に特化しているので、ビューアー系プラグインとは競合しません。
Q. 手元のPDFがPDF/X形式か確認する方法は? コマンドラインならpdfinfo ファイル名.pdf | grep -i subtypeで「PDF/X」の表記があればPDF/X形式です。Adobe Acrobatなら「ファイル」→「プロパティ」→「概要」タブの「詳細情報」で確認できます。macOSのプレビューでは「ツール」→「インスペクタを表示」→「一般情報」パネルですが、PDF/X規格の詳細が表示されないことがあるので確実に知りたい場合はpdfinfoを使ってください。
Q. CMYKとRGBの違いは何ですか? RGBは「光の三原色」で値が大きいほど明るく(R:255, G:255, B:255 = 白)、CMYKは「インクの量」で値が大きいほど暗くなります(C:100, M:100, Y:100, K:100 = 真っ黒)。ImageMagickがCMYKの数値をRGBとして解釈するため、色が反転して真っ黒に見えるのが「真っ黒問題」の正体です。
開発者向け:テンプレート関数とショートコード
テーマやプラグインからPDFサムネイルを制御したい場合は、テンプレート関数4種・ショートコード4種・フィルターフック10種以上が用意されています。詳細はWordPress.orgのプラグインページを参照してください。
|
1 2 3 4 5 6 7 8 |
// サムネイルがあるか確認して表示 if ( rapls_pic_has_thumbnail( $pdf_id ) ) { echo rapls_pic_get_thumbnail_image( $pdf_id, 'medium' ); } // ショートコード例 [rapls_pdf_thumbnail id="123" size="medium"] [rapls_pdf_download_link id="123" text="ダウンロード"] |
フィルターフック(サムネイルページ番号・最大幅・品質・フォーマット・背景色の変更等)やアクションフック(生成前後・失敗時のイベント)の一覧はWordPress.orgのプラグインページを参照してください。
まとめ
Rapls PDF Image Creatorは「PDFをアップしたら表紙画像を自動生成する」という一点に集中したプラグインです。印刷用PDF(PDF/X形式)でサムネイルが真っ黒になる問題もv1.0.9でCMYK→sRGB自動変換で対応済み。Illustratorユーザーは「準拠する規格:なし」、開発者は「flatten前にカラースペース変換」を覚えておいてください。
バグ報告や機能リクエストはWordPress.orgのサポートフォーラムからお願いします。



















コメント