コマンドラインから使える各種pdfの圧縮Tool

http://www.sejda.org


Java runtime 1.8以上がインストールされていればダウンロード、解凍して

コマンドを叩くだけです。

圧縮例:

$ ./bin/sejda-console compress -f /tmp/file1.pdf --imageDpi 72 --imageQuality 0.8 -o /tmp


※圧縮は問題ありませんが、一部のコマンド"pdftojpeg"で文字化けします。

※圧縮以外にも変換や暗号化など殆どのことはできます。



これを知ったキッカケは、

teratailの質問で良い質問だなぁと思ったものがあったので調べてみました。

バッチコマンドでpdfを軽量化圧縮(WEB用リニアライズではない)する方法は?


このサイトでもオンラインのpdf変換webサービスは色々紹介してきましたが、コマンドラインでバッチ処理できるものはあまり記憶にありません。

調べたところ、回答にあるようにghostscriptでやるのが定番のようです。


$ yum install ghostscript

または

$ apt-get install ghostscript


$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out.pdf in.pdf



上記のhttp://www.sejda.orgはオンラインサービスも展開しています。

http://www.sejda.com/

※pdf→jpg変換で文字化けします。




他にも色々あります。

shrinkpdf.sh ghostscriptのコマンドライン操作をシェル化したもの

$ ./shrinkpdf in.pdf out.pdf


qpdf ($ sudo apt-get install qpdfでインストール)

$ qpdf --linearize input.pdf output.pdf


smpdf (これは商用ライセンス 無料デモもあります。)

$ smpdf in.pdf -o out.pdf


番外編

Compress PDF Nautilusスクリプト (ubuntuのGUIから操作)