たくさんの JPG を PDF にする #
まぁ、いわゆる自炊なんだけれども、Kinoppy で PDF も書影画像表示されるようになった ことだし、自炊モノは全部 PDF にしてみようかな、と
これで、わざわざ PDF から jpg 抽出 する日々からおさらばというか、元通りに戻るというか
- Kinoppy
- zip も pdf も OK。ファイル名が書籍名として表示される (拡張子は表示されない)。PDF のメタデータは無視
- Sony Reader
- pdf のみ可。PDF のメタデータ「Title」が入っていればそれを書籍名として利用。なければファイル名が書籍名になる (拡張子も表示される)
という感じなので、「Title が入った PDF」がどちらでもうまく表示できそうなんだけど、その際に面倒なのが
- 書籍名をファイル名にすると、日本語ファイル名、場合によって空白文字含む、って感じになる
- ImageMagick の convert で PDF 作ると、メタデータのタイトルにファイル名が入って、ascii 以外は化ける
つうことで、自動処理するスクリプトを
- bash の IFS (Internal Field Separater) を改行のみにする
- convert で PDF 作った後、pdftk でメタデータだけ入れ直す
- 今のところ不要だけど、ひょっとしたら使うこともあるかのぉと思って、ついでに (1) とかの括弧付数字も Finder みたいに数字と扱ってソートするようにした
- nsort とか natural sort とかいう名前でなんかコマンドあるかと思ったが、見つからなかったので、perl でやった
という感じに修正
- nsort とか natural sort とかいう名前でなんかコマンドあるかと思ったが、見つからなかったので、perl でやった
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
_DIR="$1"; | |
_NAME=`basename $_{DIR}` | |
_OIFS=${IFS} | |
IFS=" | |
" | |
cd "$_{DIR}"; | |
for file in `ls|perl -MSort::Naturally -e 'print nsort <>'`;do | |
convert -density 72x72 -resize x754 $file $(printf %04d $i).jpg | |
rm $file; | |
done; | |
convert *.jpg dummy.pdf | |
echo "InfoKey: Title | |
InfoValue: ${_NAME}" > dummy.info | |
pdftk dummy.pdf update_info_utf8 dummy.info output "${_NAME}.pdf" | |
rm dummy.info dummy.pdf | |
IFS=${_OIFS} |