shellスクリプトで複数のpdfの最初のページにハンコを押す
概要
複数のPDFの最初のページにハンコを押して行き最後に一つのファイルにまとめる。
前提条件
- MAC
- homebrew が入っている
事前準備
ghostscript(PDF対応のため)とimagemagick(画像操作アプリ)をインストールしておく。
brew install ghostscript
brew install imagemagick
フォルダ構造
./
./hanko.png < ハンコpngファイル
./pdfin/ < PDFたちを置く場所
./pdfout/pdfin/ < 出来上がったpdfが入る場所
./pdfout/omatome.pdf < おまとめPDF
./work/ < 作業スペース
使い方
- ダウンロードした請求書PDF(結合前)たちを入手する
- どこかに作業フォルダを作ってそこに cd する
- 「pdfin」ディレクトリを作る
- hanko.pngを「./」におく
- ./pdfin に請求書PDFたちを置く
- 下にあるShellScriptをコピペする。(+enter)
- ./pdfout/pdfin/ にハンコが押されたファイルができる
- いつものように結合する
カスタマイズ
- +400+750 の部分を変えれば画像が重なる場所が変わる
- hanko.pngを変えれば画像が変わる
ShellScript
コピペする
echo
echo "PDFにハンコを押します"
mkdir ./work
rm -rf ./pdfout/pdfin
mkdir ./pdfout/pdfin
for FILE in ./pdfin/* ; do
echo "$FILE の処理をしています"
rm -rf ./work
mkdir ./work
convert -define png:color-type=6 -density 300 "${FILE}" ./work/page.png
FIRSTFILE=$(ls ./work/page*.png|head -n1)
composite -density 300 -gravity northwest -geometry +400+750 -compose over ./hanko.png "$FIRSTFILE" "$FIRSTFILE"
convert -define png:color-type=6 ./work/page*.png ./pdfout/"${FILE}"
done
echo "PDFを一つにまとめています"
convert -density 300 ./pdfout/pdfin/* ./pdfout/omatome.pdf
echo "./pdfout/omatome.pdf"