#!/bin/bash
#
#= pdftopng.sh -- PDF 講演資料から PNG 画像を作成する(GFD seminar 用).
#
MAINTAINERS="Taichi KITAMORI, Yasuhiro MORIKAWA"
PACKAGE_NAME="dcreal"
URL='http://www.gfd-dennou.org/library/cc-env/dcreal'
CVSTAGNAME='$Name: dcreal-0_3_5-1 $'
CVSDATE='$Date: 2006/03/30 09:30:45 $'
CVSREVISION='$Revision: 1.4 $'
#
#
#== 概要
#
# このコマンドによって PDF から作成された PNG 画像は ./img-web (デフォ
# ルト: 幅 700) に作成される. (オプション指定で ./img-real (320x240)
# にも作成する). これらのディレクトリがない場合は作成する. PNG 画像の
# ファイル名は 001.png から通し番号でついており, dcreal に対応した名前
# になっている.
#
#
#== 使用法
#
# $ ./pdftopng.sh pdffile
#
# -h, --help print this message
#
#== DEPENDANCE
#
# このスクリプトは pdftoppm, convert コマンドがないと動きません. これ
# らのコマンドを利用するには, 以下のソフトウェアをインストールする必要
# があります.
#
# * Xpdf (())
# * ImageMagick (())
#
#== NOTE
#
# このスクリプトは PDF → PPM → PNG と 2 段階の画像変換を
# 行っている. PDF → PPM の変換には Xpdf の pdftoppm を, PPM → PNG
# の変換には ImageMagick の convert を用いている.
#
#
#== HISTORY
#
#These entries is generated by CVS automatically.
#So don't add new information manually.
#(But please adjust old log format to latest log format manually,
#if format gap between them causes).
#
#$Log: dcreal-pdftopng.sh,v $
#Revision 1.4 2006/03/30 09:30:45 morikawa
#* ちょっとだけ無駄を排除.
#
#Revision 1.3 2006/03/30 03:49:41 morikawa
#* 依存プログラムの動作チェック機構を追加.
#* バージョンナンバーを表記するよう修正.
#
#Revision 1.2 2006/03/29 16:22:39 morikawa
#* ヘルプメッセージに URL と CVS のタグ名も出力するように変更.
#
#Revision 1.1 2006/03/29 15:56:09 morikawa
#* PDF から PNG 画像 (001.png, 002.png, ...) を簡単に作成する
# 北守太一氏作成シェルスクリプト. PDF の講演資料をビデオと合わせて
# Web 上に公開するための画像変換ツール.
#
#Original Version 2005/11/28 21:08:33 kitamo
#* 北守君によって作成
#
######################################################################
#
#== Settings
#
#=== User Settings
IMGWEBDIR='./img-web'
IMGREALDIR=''
#IMGREALDIR='./img-real'
IMGWEBSIZE='700x1200'
IMGREALSIZE=''
#IMGREALSIZE='700x1200'
# End Settings
######################################################################
######################################################################
#== Replace CVS keywords
UPDATE=`echo ${CVSDATE} | sed 's/\$\w\+: //' | sed 's/\$$//'`
VERSION=`echo ${CVSREVISION} | sed 's/\$\w\+: //' | sed 's/\$$//'`
PACKAGE_VERSION=`echo ${CVSTAGNAME} | sed 's/\$\w\+: //' | sed 's/\$$//'`
PACKAGE_VERSION=`echo ${PACKAGE_VERSION} | sed "s/${PACKAGE_NAME}-//"`
PACKAGE_VERSION=`echo ${PACKAGE_VERSION} | sed 's/_/./g'`
if [ X"${PACKAGE_VERSION}" = X"" ]; then
PACKAGE_VERSION='(Latest CVS version)'
fi
######################################################################
pdftopnghelp(){
cat <
Copyright: Copyright (C) 2001-2006 GFD Dennou Club
`basename $0` makes PNG files from a PDF file (for GFD seminar).
Created PNG files are located in
EOF
if [ ! X"${IMGWEBDIR}" = X"" ]; then
cat < /dev/null 2>&1 ; then
cat <
EOF
exit 1
fi
if ! which convert > /dev/null 2>&1 ; then
cat <
EOF
exit 1
fi
# PDF から ppm ファイルを作成 (pdftoppm コマンド利用)
echo "convert pdf to ppm"
pdftoppm $1 tmp
# ディレクトリのチェック. ない場合は作る.
dirs=${IMGWEBDIR} ${IMGREALDIR}
for dir in ${dirs}
do
until test -d $dir
do
echo "create directory $dir"
mkdir $dir
done
done
i=1
for fname in `ls tmp-??????.ppm`
do
newname="`printf \%03d $i`.png"
echo "convert $fname $newname"
if [ ! X"${IMGWEBDIR}" = X"" ] &&
[ ! X"${IMGWEBSIZE}" = X"" ] ; then
convert -resize ${IMGWEBSIZE} $fname ${IMGWEBDIR}/$newname
fi
if [ ! X"${IMGREALDIR}" = X"" ] &&
[ ! X"${IMGREALSIZE}" = X"" ]; then
convert -resize ${IMGREALSIZE} $fname ${IMGREALDIR}/$newname
fi
i=`expr $i + 1`
done
echo "rm tmp-*.ppm"
rm tmp-*.ppm