●指定したディレクトリからPDFファイルを検索して表紙(1ページ目)の縮小画像(PNG)をPNGディレクトリを作成してそこに生成する。
requires ImageMagick
※追記 convertコマンドはPDF/AI/EPSなどGhostscriptライブラリを使用する形式はセキュリティー強化のためデフォルトでブロックされ、エラーが出ると思います。その場合は、policy.xml(ubuntu16だと /etc/ImageMagick-6/policy.xml 等) を編集する必要があります。詳しくは「ImageMagick policy.xml」でググれば情報が得られると思います。
※追記 Windows用のImageMagickを使う場合は、あらかじめ Windows用のGhostscriptが必要です。Windows10 21H1以降であれば コマンドコンソールから、”winget install ArtifexSoftware.GhostScript” を叩くといいでしょう。
#!/bin/sh #usage: pdf2png.sh <pdf search path> if [ -z "$1" -o ! -d $1 ]; then dir=. else dir=$1 fi for file in `find $dir -type f -name '*.pdf'` do odir=`dirname $file`/png if [ ! -d $odir ]; then mkdir ${odir} > /dev/null 2>&1 fi convert ${file}[0] -monitor -alpha remove -resize 300x300 PNG8:${odir}/`basename $file .pdf`.png done exit 0
※ 注意しなければならないのが一つ。PDFから大きいサイズ(例えば300DPIとか)の画像に変換する場合、入力ファイルより前に指定する必要があります。
> convert hogehoge.pdf[0] -density 300 output.jpg
とかやっても思ったような結果はでません。
正しくは・・・
> convert -density 300 hogehoge.pdf[0] output.jpg