LoginSignup
6
6

More than 5 years have passed since last update.

自炊したマンガのPDFをiPad用に調整するシェルスクリプト

Last updated at Posted at 2012-03-20

失敗したらリトライするバージョンを作成
https://github.com/toshinori/scripts/tree/master/pdf

shrink_pdf.sh
#!/bin/sh

# use xpdf, pdftk, imagemagick, poppler

set -e

readonly TARGET=$1

if [ ! -e "${TARGET}" ];
then
    echo "${TARGET} not found."
    exit 1
fi

readonly DIR=`dirname "${TARGET}"`
readonly FILENAME=`basename "${TARGET}"`
readonly BASENAME=`basename "${TARGET}" ".pdf"`

cd "${DIR}"

readonly PRIFIX="work"

echo "${FILENAME}"
echo "PDF to PPM"

readonly RESOLUTION=150
`pdftoppm "${FILENAME}" -r ${RESOLUTION} "${PRIFIX}"`

echo "PPM to JPG"
readonly SIZE=1024
`mogrify -format jpg -geometry ${SIZE}x${SIZE} "${PRIFIX}*.ppm"`

echo "JPG to PDF"
`mogrify -format pdf "${PRIFIX}*.jpg"`

echo "backup target file."
`mv -f "${FILENAME}" "${FILENAME}.bak"`

echo "concat PDF."
`pdftk ${PRIFIX}*.pdf output "${FILENAME}"`

echo "dispose."
`rm -f *.ppm`
`rm -f *.jpg`
`rm -f ${PRIFIX}*.pdf`

使い方。

./shrink_pdf.sh "hoge.pdf"

まとめて実行する。
カレント配下のPDFを抽出してすでに処理済みのファイルはスキップ。

shrink_all.sh
#!/bin/sh

set -e

BACKUP=""

find . -type f -name '*.pdf' | while read PDF 
do
    BACKUP="${PDF}.bak"

    if [ ! -e "${BACKUP}" ]; then
        ./shrink.sh "${PDF}"
    fi

done
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6