私は画像のディレクトリを持っています:
path/to/directory/
image01.jpg
image02.jpg
...
そしてそれを単一のPDFファイルに変換したい:
path/to/directory.pdf
これは私がこれまでに何とかコーディングしたものです:
#!/bin/bash
echo Directory $1
out=$(echo $1 | sed 's|/$|.pdf|')
echo Output $out
mkdir tmp
for i in $(ls $1)
do
# MAC hates sed with "I" (ignore case) - thanks SO for the perl solution!
# I want to match "jpg, JPG, Jpg, ..."
echo $1$i $(echo "tmp/$i" | perl -C -e 'use utf8;' -pe 's/jpg$/pdf/i')
convert $1$i $(echo "tmp/$i" | perl -C -e 'use utf8;' -pe 's/jpg$/pdf/i')
done
pdftk tmp/*.pdf cat output $out
rm -rf tmp
そのため、各画像をimagemagickを使用してpdfファイルに変換し、pdftkを使用して単一のファイルにマージするというアイデアがありました。ファイルの名前付けのおかげで、順序を気にする必要はありません。
私はこれの初心者なので、できることはたくさんあると確信しています。
- ディレクトリ内の画像ファイルのみを繰り返し処理します(Readme.txtがある場合は...)
- 拡張機能png、jpeg、..を含む
- 末尾の「/」を使用するのはエレガントではありません
- 等
しかし、現在の私の主な問題は、ディレクトリと画像ファイルの名前にスペースが含まれている場合があることです。次に、forループはファイル名のサブ文字列を繰り返し処理し、convertの行も失敗すると思います。私はいくつかのことを試しましたが、今のところ成功していません。誰かがここで私を助けてくれることを願っています。私が上に挙げた問題に対処するためのアイデアを誰かが持っているなら、私もそれらを聞いてとてもうれしいです。