Linux(Ubuntu)でDjVu⇒PDFへ一括変換するプログラム(シェルスクリプト)

シェルスクリプト プログラミング
この記事は約3分で読めます。

※当ブログではアフィリエイト広告を利用しています。

前回、WindowsでDjVuファイルをPDFファイルへ一括変換するプログラム(バッチファイル)を作成しました。

今回は、Linux(Ubuntu)バージョンです。

なお、今回のバージョンは以下です。

  • Ubuntu 14.04 LTS(64bit)
  • djvulibre-bin

djvulibre-binのインストール

DjVuLibreのコマンドラインのDjVuデコーダー「ddjvu」は、「djvulibre-bin」に含まれるので、apt-getコマンドでインストールします。

$ apt-cache search djvulibre-bin
djvulibre-bin - DjVu 画像形式用ユーティリティ

$ sudo apt-get install djvulibre-bin

これで、ddjvuが使えるようになりました。

DjVuからPDFへの自動変換プログラム

Windowsの時と同様に、パラメータで特定のディレクトリを与えて、その中のDjVuファイルをPDFファイルへ変換するようにします。

そういうわけで、以下のようなプログラム(シェルスクリプト)を作成しました。

#!/bin/bash

if [ $# -ne 3 ]; then
    echo "パラメータが3つではありませんので、処理を終了します。"
    exit 1
fi

expr $3 + 1 > /dev/null 2>&1
ret=$?

if [ $ret -lt 2 ]; then
    if [ $3 -gt 150 ] || [ $3 -lt 25 ]; then
        echo "第3パラメータの数値が25~150の間ではありませんので、処理を終了します。"
        exit 1
    fi
else
    echo "第3パラメータが数値ではありませんので、処理を終了します。"
    exit 1
fi

djvuPath=$1
pdfPath=$2
q=$3

echo "第1パラメータ(DjVu格納元フォルダ):$djvuPath"
echo "第2パラメータ(PDF格納先フォルダ):$pdfPath"
echo "第3パラメータ(画質(圧縮率)):$q"

for file in `find $djvuPath -maxdepth 1 -name '*.djvu'|sort`; do
    fileDir=$(dirname $file)
    fileBase=$(basename $file)
    fileOnly=${fileBase%.*}
    cmd="ddjvu -format=pdf -quality=$q -verbose $file $pdfPath$fileOnly.pdf"
    $cmd
done

echo "処理が正常終了しました。"
exit 0

これを以下のように実行すれば、指定したフォルダ内のDjVuファイルを一括でPDFファイルへと変換します。

bash ~/djvu2pdf.sh /media/sf_Ubuntu/DjVu/ /media/sf_Ubuntu/PDF/ 100

最後に

無事にLinux(Ubuntu)でも、DjVuファイルをPDFファイルへ一括変換できました。

コメント

タイトルとURLをコピーしました