PDFをJPGに変換
PDFからJPGへの変換は、ドキュメントの全ページを、好きなサイズの画像として保存します。描画はpdf.js——Mozilla自身のPDFエンジンで、FirefoxがPDFを表示するのに使うのと同じコード——が行うため、各ページは、簡略化したパーサが推測する形ではなく、本物のリーダーが描く通りの見た目になります。
ここにPDFをドロップ
ページのどこにでもドロップできます · ファイルを選択 · 100 MB
対応形式: PDF
PDFをJPGに変換はどう動きますか?
PDFページを画像に変換するとは、レンダリングすることです。ページのコンテンツストリーム——テキスト描画オペレータ、ベクターパス、埋め込み画像、透明グループ——を実行し、その結果をcanvasに描きます。これは大規模なソフトウェアであり、二流の実装を書くと、フォントが違うページが出てくることになります。
レンダラーはFirefoxのもの
pdf.jsはMozillaによるPDFの実装で、Firefoxが開いたPDFをすべて表示するのに使っているものです。これを使うということは、手に入るページが本物のリーダーが描くページだということです。間違えやすい部分——埋め込みフォントサブセット、Type 3フォント、ブレンドモード、クリッピングパス、CJKテキスト——も含めてです。
DPIは実数であって、品質スライダーではない
PDFページの寸法はポイント——1/72インチ——で測られるため、目標解像度に対するスケール係数は正確にDPI/72です。72 DPIではA4ページは595 × 842ピクセル、150では1240 × 1754で印刷して読める大きさ、300では2480 × 3508になり、メモリは150の4倍です。最後の点が実用上の天井です。300 DPIではA4の1ページが圧縮前で約34メガバイトのピクセルデータになり、ブラウザのcanvasには、黙って超えようとしない最大サイズがあるのです。
各canvasは、画像のエンコードが終わり次第解放されます。50ページのドキュメントでも、タブを殺されることなく300 DPIで変換できるのはこのためです。
JPEG出力に、先に白いページを描く必要がある理由
PDFページには背景がありません。見えている白は、リーダーが描いているものです。新しく作ったcanvasは透明で、JPEGにはアルファチャンネルがないため、塗っていないcanvasは黒としてエンコードされます。“変換したページが真っ黒になった”という報告のほぼすべての原因がこれで、対策はレンダリング前のfillRect 1回です。ここではJPEGとWebPに対して実行し、PNGに対しては意図的に行いません。PNGが選ばれる理由は、たいてい透過が必要だからです。
フォーマットの選び方
スキャンページや写真ページにはJPEG。非可逆圧縮が効率的で、圧縮ノイズも目立ちません。文字や図が中心のページにはPNG。可逆圧縮なので文字はくっきり保たれ、大きな白い平面の多いページではJPEGより小さくなることもよくあります。WebPは同じ見た目の品質で、どちらよりも通常25–35%小さく、今では重要な場所ならどこでも対応されています。
避けられない損失
ページの画像はページではありません。テキストは選択も検索もスクリーンリーダーでの読み上げもできなくなり、リンクは機能せず、ファイルは通常数倍の大きさになります。これはラスタライズに固有のことであり、このツールの限界ではありません。画像が必要なら画像に変換し、ドキュメントが必要ならPDFを保持してください。
入力
report.pdf (12 pages) format: JPEG, 150 DPI, quality 0.9
出力
report-1.jpg … report-12.jpg 1240 × 1754 each white painted before render, canvas released per page
PDFをJPGに変換が対応するオプションとエッジケースは?
| パラメータ | 型 | デフォルト | 動作とエッジケース |
|---|---|---|---|
| JPEG | 形式 | デフォルト | 非可逆圧縮で、スキャンや写真に効率的。アルファチャネルがないため、レンダリング前にページが白で塗りつぶされます。 |
| PNG | 形式 | — | 可逆圧縮で、テキストがシャープなまま保たれ、ページがほとんど白の場合はJPEGより小さくなることが多い。透明性が保持されます。 |
| WebP | 形式 | — | 同じ視覚品質で、JPEGより通常25–35%小さくなります。 |
| 72 DPI | 解像度 | — | スクリーンサイズ:A4ページは595 × 842ピクセル。サムネールやプレビュー用。 |
| 150 DPI | 解像度 | デフォルト | A4用に1240 × 1754。印刷して読める sensible default(適切な既定値)。 |
| 300 DPI | 解像度 | — | A4用に2480 × 3508、圧縮前のページあたり約34MBのピクセルデータ。印刷品質で、ブラウザでの実用的な上限。 |
| 品質 | 0.1 – 1.0 | 0.9 | JPEGとWebPのみ。0.95以上ではファイルサイズが大きくなりますが、視覚的な改善はほとんどありません。0.7以下ではテキストの周りにアーティファクトが現れます。 |
| ページ範囲 | 1-3, 7 | 全ページ | 印刷ダイアログの構文。空のままにすると、ドキュメント全体が変換されます。 |
| メモリ | ページごとに解放 | — | 各キャンバスは、画像がエンコードされるとすぐに解放されるため、長いドキュメントを高DPIで変換できます。 |
よくある質問
変換したページが真っ黒になるのはなぜですか?
ツールが透明なcanvasに描画し、アルファチャンネルを持たないJPEGとしてエンコードすると、そうなります。透明は黒になるのです。PDFページには固有の背景がなく、見えている白はリーダーが描いているものです。このツールは、JPEGとWebPではレンダリング前にcanvasを白で塗りつぶします。PNGでは意図的に行いません。PNGを選んだのは、おそらく透過が欲しかったからでしょう。
どのDPIを使うべきですか?
ほとんどの場面では150です。印刷して読める大きさで、ファイルサイズも扱いやすい。サムネイルやWebプレビューには72。300は、その実力を引き出せるプリンタに出すときだけにしてください。300 DPIではA4の1ページが約34メガバイトのピクセルデータになるため、この設定での長いドキュメントは、ブラウザのタブが保持できる量に本当に迫ることに注意してください。
JPGとPNGのどちらにすべきですか?
スキャンページと写真全般にはJPGです。圧縮は階調の連続性のために設計されており、圧縮ノイズはざらつきの中に紛れます。文字、表、線画が中心のページにはPNG。可逆圧縮なので文字の輪郭がシャープに保たれ、白が大部分のページではJPEGより小さくなることもよくあります。受け手が対応しているなら、サイズではWebPが両方に勝ります。
画像からテキストを取り戻せますか?
OCRなしでは不可能ですし、その工程に頼る状況自体が避けるべきものです。ラスタライズはテキストレイヤーを完全に捨てます。結果は言葉の画像であって、言葉ではありません。テキストが必要なら、元のドキュメントにPDFテキスト抽出ツールを使ってください。テキストレイヤーを直接読むため、正確で、瞬時に終わります。
画像ファイルがPDF全体より大きくなるのはなぜですか?
PDFは命令を保存し、画像はピクセルを保存するからです。テキストのページは、ドキュメント全体で1度だけ埋め込まれるフォントを参照する、数キロバイトの描画コマンドです。同じページを150 DPIの画像にすると、1つずつ圧縮しなければならない200万ピクセルになります。200 KBのPDFが8 MBの画像になるのはまったく普通のことで、PDFを保持しておくべき良い理由です。
ドキュメントはアップロードされますか?
いいえ。pdf.jsはこのタブの中で動作します。FirefoxがPDFの表示に使うのと同じエンジンが、JavaScriptとしてあなたのマシン上で動いているのです。描画はブラウザ内のcanvasで行われ、画像はローカルで生成されます。このページのContent-Security-Policyはconnect-src 'self'を設定しているため、アップロードはブラウザによってブロックされます。