PDFを画像に変換する方法
PDFのページをPNG・JPG・WEBPにしたい場面はよくあります。スライドには画像が必要で、課題管理ツールは画像なら正しくプレビューし、印刷所によっては画像以外を受け付けないこともあります。この記事では、その手順と、多くの人がつまずく箇所をまとめて説明します。
そもそもなぜ変換するのか
PDFはページの「絵」ではなく「記述」です。文字は文字コードとして、図形は曲線として、フォントは埋め込まれたプログラムとして保存され、それらを描画するのは閲覧側の役目になっています。どれだけ拡大してもPDFが鮮明なのはそのおかげですが、同時に他の文書へ埋め込みにくい理由でもあります。PDFをプレゼン資料に貼り付けると、そのアプリケーションがたまたま使っている描画エンジンの挙動に結果が左右されてしまいます。
画像にはそうした曖昧さがありません。いったんラスタライズしてしまえば、どの環境で開いても同じピクセルが表示されます。多くの人が変換するのは、画像のほうが優れているからではなく、持ち運びに強いからです。
変換の手順
まず変換ツールを開き、描画エンジンの読み込みを少し待ちます。初回アクセス時にはブラウザが数メガバイトのWebAssemblyモジュールをダウンロードしますが、以降はキャッシュされます。読み込み表示が消えてアップロード領域が現れたら準備完了です。
PDFをアップロード領域にドラッグするか、クリックしてファイルを選びます。最初の数ページがサムネイルとして描画されるので、意図した書類かどうかを確認できます。この時点でも、そして最後まで、ファイルがアップロードされることはありません。
次に設定を選びます。出力形式を選び、用途に合ったスケールを指定し、JPGまたはWEBPを選んだ場合は画質を調整します。「画像に変換」を押すと各ページが順に描画され、ZIPアーカイブにまとめられて、ブラウザにダウンロードとして渡されます。
アーカイブ内の各ファイルには元の書類名とページ番号が付けられるため、OSのソート順に関係なく展開後もページの順序がわかります。
出力がぼやける場合
ぼやけの原因は、ほぼ必ずスケールにあります。PDFのページはポイント単位で記述され、1ポイントは1/72インチなので、スケール1xで描画するとおよそ72ピクセル毎インチになります。サムネイルには十分ですが、じっくり見る用途にはあまりに粗い解像度です。
スケールを上げれば解決します。2xでおよそ144dpi、画面で見るには十分な鮮明さです。4xで288dpi前後となり、本文の印刷にも耐えます。小さな文字や細かい線画が中心のページであれば、さらに上げる価値があります。
ただし1点だけ注意があります。スケールは幅と高さの両方に効くため、ピクセル数は2乗で増えます。2xから4xにするとサイズは2倍ではなく、おおよそ4倍です。いきなり10xにするのではなく、実際に十分に見える最小のスケールを選んでください。
アーカイブが大きすぎる場合
ZIPが想定より大きくなった場合、原因はたいてい高いスケールでのPNG出力です。PNGは可逆圧縮なので、文字の詰まった300dpiのページは1枚で数メガバイトに達することがあり、100ページの書類ともなればすぐに膨らみます。
画質0.85程度のJPGまたはWEBPに切り替えると、見た目の違いがないまま合計サイズが大きく下がります。同じ画質ならWEBPのほうがJPGより有利なことが多いです。もう一つの手段はスケールを1段階下げることで、多くの場合こちらのほうが効果は大きくなります。
一方でZIP圧縮率のスライダーを上げても、たいして効果はありません。PNG・JPG・WEBPはいずれもすでに圧縮された形式であり、deflateが取り除ける冗長性がほとんど残っていないからです。増えるのは主に処理時間です。
大きな書類とブラウザのメモリ
すべての処理がブラウザ内で行われるため、実質的な上限はアップロード制限ではなく、お使いの端末で使えるメモリ量になります。各ページは符号化される前に原寸のビットマップとして描画されるので、非常に長い書類を非常に高いスケールで処理すると、ブラウザが確保できる量を超えてしまうことがあります。
大きなファイルで処理が止まったりタブが応答しなくなったりした場合は、まずスケールを下げてください。加えて、変換前にPDFを分割することも検討してください。重い他のタブを閉じるだけでも余裕が生まれます。
まとめ
文字をピクセル単位で正確に保ちたいならPNG、サイズが重要ならJPGかWEBP。スケールは選べる最大値からではなく、実際に必要なDPIから逆算する。ZIP圧縮率は触らない。これだけで、変換のほとんどの場面はうまくいきます。