
UNIX Cafe | 第22回
ユニ先生のカウンター。
ミナちゃんが PDF を手にして興味津々な表情で話しかけてきます。
ミナちゃんユニ先生〜!
PDF に入ってる写真だけ取り出したいんだけど…
どうすればいいのかな?



ふむ、それならpdfimages というコマンドを使うのがカンタン☕
PDF の中の画像をそのままの品質で取り出してくれるよ。
目次
必要なツール:pdfimages
① インストール(macOS)
bash
$ brew install poppler


Homebrew なら簡単だね〜!
② 画像の抽出
bash
$ pdfimages -all input.pdf outputinput.pdf… 元のPDFoutput… 出力ファイル名のプレフィックス
例:
bash
$ pdfimages -all textbook.pdf img→ 出力
bash
$ img-000.png
img-001.jpg
img-002.jpeg
…


画像は PDF に保存されている形式でそのまま抽出されるんだ。
品質が劣化しないのが嬉しいところだね☕
オプション説明
| オプション | 説明 |
|---|---|
-all | すべての画像をそのまま抽出 |
-png | PNGで出力(再圧縮あり) |
-j | JPEGのみ出力 |
-list | PDF内画像の一覧表示 |
抽出画像の保存先
コマンドを実行したカレントディレクトリにそのまま保存されます。
ファイル名例:
bash
$ img-000.jpg
img-001.png③ PDF 内の画像一覧だけ確認したい
bash
$ pdfimages -list input.pdf出力例:
page num type width height color comp bpc enc interp object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
1 0 image 1365 2048 rgb 3 8 jpeg yes 15 0 300 300 200K 1.0
2 1 image 1200 1600 rgb 3 8 jpeg yes 23 0 300 300 150K 1.0



どんな画像が入ってるか見れるんだ!
便利〜!
④ 注意点
- PDF内の画像が埋め込み形式でない場合は 抽出できないことがあります(例:ベクター描画、テキスト、透明レイヤー)
- スキャンPDFは 1ページ=1画像として抽出されることがあります
使い方のまとめ
| 操作 | コマンド |
|---|---|
| 画像抽出 | pdfimages -all input.pdf output |
| 画像一覧 | pdfimages -list input.pdf |
| brewインストール | brew install poppler |



PDFから画像を取り出すって難しいと思ってたけど…
ターミナルならすごく簡単だね☕!



PDFは書類の“宝箱”みたいなもの。これで画像の宝探しもバッチリだね!
PDF → 画像 を一括抽出するスクリプト



PDFの画像だけまとめて取り出したいんだけど、
ひとつひとつ手作業は大変だよ〜😢



このスクリプトを使えば、複数のPDFから一気に画像を抜き出して
フォルダごとに整理してくれるよ。
#!/bin/bash
# ==========================================
# PDF から画像を一括抽出するスクリプト
# 使い方:
# ./pdf_extract_img.sh file1.pdf file2.pdf ...
# ./pdf_extract_img.sh *.pdf ←複数OK
# ==========================================
# 引数チェック
if [ $# -eq 0 ]; then
echo "使い方: $0 <pdfファイル> ..."
exit 1
fi
# poppler が必要
if ! command -v pdfimages >/dev/null 2>&1; then
echo "⚠ 'pdfimages' が見つかりません。"
echo " macOS: brew install poppler"
exit 1
fi
# 1ファイルずつ処理
for file in "$@"; do
if [ ! -f "$file" ]; then
echo "⚠ ファイルがありません: $file"
continue
fi
base=$(basename "$file" .pdf)
outdir="${base}_images"
echo "📦 抽出中: $file → $outdir"
mkdir -p "$outdir"
# -all → 全ての画像を抽出
pdfimages -all "$file" "$outdir"/img
# 抽出されたか確認
if ls "$outdir"/* >/dev/null 2>&1; then
echo "✅ 完了!画像を $outdir/ に保存しました"
else
echo "⚠ 画像が見つかりませんでした: $file"
fi
done
使い方
スクリプトの保存
bash
$ pdf_extract_img.sh実行権限を付ける
bash
$ chmod +x pdf_extract_img.sh単一ファイルを処理
bash
$ ./pdf_extract_img.sh sample.pdf複数ファイルもOK
bash
$ ./pdf_extract_img.sh *.pdf抽出結果
sample.pdf
↓
sample_images/
├ img-000.jpg
├ img-001.png
├ ...



sample_images/ って、ちゃんと名前別に分かれて保存されてる!
便利〜!



ターミナルは“仕分け職人”でもあるんだ。
うまく使えば、作業がぐっと楽になるよ☕
事前準備 — Popplerインストール
bash
$ brew install poppler※ pdfimages コマンドが使えるようになります。
まとめ
| 操作 | コマンド |
|---|---|
| インストール | brew install poppler |
| 抽出 | pdfimages -all input.pdf output |
| スクリプト一括処理 | ./pdf_extract_img.sh *.pdf |
→ PDF から画像だけ取り出すならpdfimages が最速で高品質!



次は、画像をまとめてリサイズできたら便利かも!



あ!それも良いメニューだね。次のレッスンに追加しよう☕




