PDFから画像を抽出する
PDFファイルから画像を抽出する必要があるとき
PDFファイルから画像をスクリーンショットやレンダリングせずに保存する必要がある場合があります。
pdfimages
はそのような状況で役立ちます。
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.ppm
、image-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
パラメータを使用して希望する解像度を指定できます:
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から): 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に存在するまま保存されるように保証します。
pdfimagesのコマンドラインオプション
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> : 画像を変換する最初のページ
-l <int> : 画像を変換する最後のページ
-png : デフォルトの出力形式をPNGに変更
-tiff : デフォルトの出力形式をTIFFに変更
-j : JPEG画像をJPEGファイルとして出力
-jp2 : JPEG2000画像をJP2ファイルとして出力
-jbig2 : JBIG2画像をJBIG2ファイルとして出力
-ccitt : CCITT画像をCCITTファイルとして出力
-all : -png -tiff -j -jp2 -jbig2 -ccittと同等
-list : 画像リストを出力し、保存しない
-opw <string> : 暗号化されたファイルの所有者パスワード
-upw <string> : 暗号化されたファイルのユーザーパスワード
-p : 出力ファイル名にページ番号を含める
-q : どんなメッセージやエラーも表示しない
-v : 著作権とバージョン情報を表示
-h : 使用方法情報を表示
-help : 使用方法情報を表示
--help : 使用方法情報を表示
-? : 使用方法情報を表示