PDFから画像を抽出するにはpopplerを使用します。

PDFファイルから画像を抽出する必要があるとき

目次

PDFファイルから画像を保存する必要がある場合、スクリーンショットを撮ったり、PDFを画面にレンダリングしたりすることなく、画像を抽出する必要があります。pdfimagesはそのような状況で役立ちます。本ガイドは、2026年のドキュメンテーションツール: Markdown、LaTeX、PDF、および印刷ワークフロー ハブの一部です。

マンが画面に表示された図を写真に撮っているコミック画像

LinuxでPDFファイルから画像を抽出するための最も一般的で効果的なツールは、コマンドラインユーティリティ pdfimages です。 これは poppler-utils パッケージの一部です。

Linuxでpdfimagesユーティリティを使用するステップバイステップの手順

1. pdfimagesをインストールする(まだインストールされていない場合):

ほとんどのLinuxディストリビューションはpdfimagesをデフォルトで含んでいます。必要に応じて、パッケージマネージャーを使用してインストールしてください:

sudo apt-get install poppler-utils

またはFedoraの場合:

sudo dnf install poppler-utils

2. テルミナルを開く:

Ctrl + Alt + Tを押してテルミナルウィンドウを開きます。

3. pdfimagesを使用して画像を抽出する:

基本的な構文:

pdfimages  

例:

pdfimages /path/to/file.pdf /path/to/output/image
  • これにより、file.pdfからすべての画像が抽出され、指定された出力ディレクトリにimage-000.ppmimage-001.ppmなどのファイルとして保存されます。

4. JPEG形式で画像を抽出する(希望する場合):

JPEG形式で画像を抽出するには(可能であれば)、-jオプションを使用してください:

pdfimages -j /path/to/file.pdf /path/to/output/image
  • これにより、JPEG画像は.jpgファイルとして保存されます。

5. 特定のページから画像を抽出する:

  • 特定のページ範囲から画像を抽出するには、-f(最初のページ)と-l(最後のページ)を使用してください:
pdfimages -f 2 -l 5 -j /path/to/file.pdf /path/to/output/image
  • これにより、ページ2から5までの画像が抽出されます。

6. その他のオプション:

  • PNG形式で画像を抽出するには、-pngを使用してください(あなたのバージョンがサポートしている場合)。
  • パスワード付きのPDFから画像を抽出するには、-opw 'ownerpassword'または-upw 'userpassword'を使用してください。

注意事項

  • デフォルトの出力形式はPPM(カラー)またはPBM(モノクロ)です。JPEG形式にしたい場合は-jを使用してください。必要に応じて、ImageMagickのconvertなどのツールを使ってPPM/PBMファイルを他の形式に変換してください。
  • 出力ファイルは自動的に番号付けされ、指定されたディレクトリに保存されます。

サマリーテーブル

コマンド例 説明
pdfimages input.pdf image デフォルトのPPM/PBM形式ですべての画像を抽出
pdfimages -j input.pdf image 可能な限りJPEG形式で画像を抽出
pdfimages -f 3 -l 5 input.pdf image ページ3から5までの画像を抽出
pdfimages -opw 'password' -j input.pdf image オーナーパスワード付きのPDFから画像を抽出

この方法は効率的で、ほとんどのPDFに組み込まれた画像を処理できます。ただし:

  • pdfimagesは画像を元の解像度のみで抽出します。
  • 出力解像度を制御したい場合は、PyMuPDFなどのPDFレンダラを使用し、画像を作成するときに必要なDPIを指定してください。

PDFから特定の解像度で画像を保存する方法

pdfimagesを使用する際、抽出された画像の解像度を指定することはできません。このツールは、リサンプリングや品質の変更なしに、元の形式と解像度で埋め込まれた画像を抽出します。解像度は、画像がPDFに保存された方法によって決まり、pdfimagesは抽出中に解像度をアップスケールまたはダウンスケールするオプションを提供していません。

特定の解像度(たとえば、ページまたはページの一部を指定されたDPIで画像としてレンダリング)で画像を抽出したい場合は、PyMuPDF(fitz)などのPDFレンダリングライブラリまたはツールを使用してください。PyMuPDFでは、ページを画像にレンダリングするときにdpiパラメータを使用して、必要なDPIを指定できます:

import fitz  # PyMuPDF
doc = fitz.open("input.pdf")
page = doc.load_page(0)  # 最初のページ
pix = page.get_pixmap(dpi=300)  # 300 DPIでレンダリング
pix.save("output.png")

このアプローチでは、指定されたDPIでページのラスタ画像を作成し、元の埋め込まれた画像を抽出するのではなく、ページをレンダリングします。

PDFから画像を抽出する他のツール

画像を抽出する際、解像度を失うことなく最も優れたソフトウェアは、レンダリングやリサンプリングせずに 元の埋め込まれた画像 を直接抽出するツールです。上位の選択肢には以下が含まれます:

  • Adobe Acrobat Pro: 専用の「すべての画像をエクスポート」機能を提供し、画像を元の品質とフォーマットでスタンドアロンファイルとして抽出します。この方法は非常に信頼性が高く、PDFに保存された画像の正確な解像度と品質を保持します。

  • pdfimages([XPDF/Poppler suite](https://www.glukhov.org/ja/documentation-tools/pdf/ubuntu-poppler/ “UbuntuでのPDF操作ツール - Poppler”)から): Linuxおよびその他のプラットフォームで利用可能な無料でオープンソースのコマンドラインツールです。pdfimagesは、JPEG、JPEG2000、その他のフォーマットを含むPDFからすべての画像をネイティブフォーマットと解像度で抽出します。これは、コストをかけずに高品質な抽出プロセスを求めるユーザーに広く推奨されています。

  • オンラインツール(例: PDF24 Tools、PDFCandy、pdfforge): これらのサービスは、PDFをアップロードし、抽出された画像をダウンロードすることができ、元の解像度を保持します。これは、簡単なタスクには便利ですが、インストールを必要とせず、ただし機密性の高いドキュメントではプライバシーの懸念が生じる可能性があります。

サマリーテーブル

ソフトウェア/ツール プラットフォーム 元の解像度を保持 メモ
Adobe Acrobat Pro Windows/Mac はい 有料、プロフェッショナルグレード、非常に信頼性が高い
pdfimages (Poppler) Linux/Windows はい 無料、オープンソース、コマンドラインユーティリティ
PDF24 Tools、PDFCandy ウェブベース はい 無料、使いやすい、プライバシーの考慮が必要

重要なポイント:
画像を抽出するためのツールは、画像を 抽出(レンダリングやスクリーンショットではなく)するものを使うべきです。Adobe Acrobat Proとpdfimagesは、この目的のために業界標準であり、画像がPDFに存在する通りに保存され、解像度の損失がありません。

pdfutilsコマンドラインオプション

pdfimages /helpを実行すると、以下のような出力が表示されます:

$ pdfimages /help
pdfimages version 24.02.0
Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011, 2022 Glyph & Cog, LLC
Usage: pdfimages [options] <PDF-file> <image-root>
  -f <int>       : first page to convert
  -l <int>       : last page to convert
  -png           : change the default output format to PNG
  -tiff          : change the default output format to TIFF
  -j             : write JPEG images as JPEG files
  -jp2           : write JPEG2000 images as JP2 files
  -jbig2         : write JBIG2 images as JBIG2 files
  -ccitt         : write CCITT images as CCITT files
  -all           : equivalent to -png -tiff -j -jp2 -jbig2 -ccitt
  -list          : print list of images instead of saving
  -opw <string>  : owner password (for encrypted files)
  -upw <string>  : user password (for encrypted files)
  -p             : include page numbers in output file names
  -q             : don't print any messages or errors
  -v             : print copyright and version info
  -h             : print usage information
  -help          : print usage information
  --help         : print usage information
  -?             : print usage information

有用なリンク