最初と最後のページ以外のPDFをグレースケールにするコマンドを作成しました

ScanSnap S1500を使用して自炊したPDFを沢山所有しているのですが、このSacnSnapに付属しているソフトの設定で最初と最後だけカラーみたいな設定ができないので、カラーでスキャンして後から最初と最後だけカラーにするという方法で容量を減らそうと思ってこのコマンドを作ってみました。

ちなみに、付属のソフトでカラーかグレーかを自動判別するというオプションはあるのですが、白黒のページでもカラーと判別されてしまって読みにくいなと思っていました。

特徴

OCRしていても文字情報は削らず最初と最後のページ以外グレースケールにすることができます。

用意するもの

  • Docker
  • 変換したいPDF

使い方

  1. コンテナをpull

    docker pull gkmr/daido
    
  2. 入力と出力用のフォルダを作成

    mkdir -p pdf/input
    mkdir pdf/output
    
  3. pdf/input フォルダ内に変換したいPDFを置く

  4. 変換

    docker run -v $PWD/pdf:/pdf gkmr/daido
    
  5. pdf/output フォルダ内に変換されたPDFが作成されます

変換後のサイズ

今回は主に変換後のサイズを減らすことが目的だったのでサイズをいくつか測ってみました。

タイトル 変換前 変換後 変換後割合
マスタリングTCP/IP 応用編 312.4MB 125.7MB 40.2%
ネットワークコマンドポケットリファレンス 67.1MB 25.9MB 38.6%
ネットワーク現場の教科書 237.5MB 80.6MB 33.9%
青春を山に賭けて 植村直己 194.3MB 62.7MB 32.3%
第4版 RailsによるアジャイルWebアプリケーション開発 208.1MB 85.1MB 40.9%

平均すると約37.3%程度にサイズを減らすことができていました。