PDFの1ページ目を画像で一括出力

 PPDFの1ページ目をJPEG画像で一括出力したときの覚書。
Gemini 3 Flash Previewと対話

環境: FreeBSD 14.3-RELEASE-p8

avifencのバージョン確認。
# avifenc --version

Version: 1.3.0 (dav1d [dec]:1.5.3, aom [enc/dec]:3.13.1)
libyuv : available (1903)


1. AVIF変換が失敗する

PDFを開いて画像出力してAVIF変換してみたら下記エラー。
# find . -name "*.jpg" -print0 | xargs -0 -I {} sh -c 'f="{}"; avifenc -q 40 -s 4 -y 420 "$f" ${f%.*}.avif"'

Unsupported color conversion request
Cannot read input file: ./202307.jpg

ImageMagfick(7.1.2-16)をインストールしてAVIF変換してみたら、その画像がWindows 11の画像アプリでは見れるけど、Chromeブラウザで閲覧できない謎現象。


2. PDFから一括で画像出力

問題はJPEG画像にありそうなので、ツールでPDFから画像出力してみる。

pdftoppmコマンドで出来るそうなのでインストール。
# pkg install poppler-utils

試しに変換。
「-f 1」: 開始ページ
「-l 1」: 終了ページ
# pdftoppm -f 1 -l 1 -jpeg "202307.pdf" "202307"

avifencでavif画像変換。
# avifenc -q 40 -s 4 -y 420 202307.jpg 202307.avif

Chromeブラウザでも表示できたので一括変換。
PDFから1ページ目だけJPEG画像出力。
# find . -name "*.pdf" -print0 | xargs -0 -I {} sh -c 'f="{}"; pdftoppm -f 1 -l 1 -jpeg -singlefile "$f" "${f%.*}"'

JPEGからAVIFへ画像変換
# find . -name "*.pdf" -print0 | xargs -0 -I {} sh -c 'f="{}"; pdftoppm -f 1 -l 1 -jpeg -singlefile "$f" "${f%.*}"'


▼ 関連記事