【macOS】PDFをコマンドラインで圧縮する方法【GhostScript】

macOSでPDFをコマンドラインで圧縮する方法をご紹介いたします。とくに自炊などで電子書籍化したPDFデータの容量を圧縮したい時におすすめの方法です。

【macOS】PDFをコマンドラインで圧縮する方法【GhostScript】

GhostScriptのインストール

GhostScript というソフトウェアを使ってPDFを圧縮します。macOSの場合は brew を使ってインストールできるので簡単です。

$ brew install ghostscript
...

$ gs --version
10.01.2

GhostScriptでPDFを圧縮してみる。

圧縮したいPDF in.pdf を次のコマンドで圧縮して out.pdf として書き出すことができます。

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

試してみたところ、138MBあったPDFが76MBへ削減できました!およそ50%の圧縮です! PDFSETTINGS オプションを変更することで圧縮率を高める方法もありますが、電子書籍だと文字が読めない状態になってしまいましたのでここでは紹介しません。

モノによっては大して圧縮されなかったり、圧縮自体がエラーになってうまく書き出せなかったりしますのでご注意ください。圧縮エラーになるファイルが結構ありました。

シェルスクリプト

先ほどのコマンドを毎回入力するのは大変ですから、圧縮作業が少しラクになるように次のようなシェルスクリプトを作ってみました。

#!/bin/bash

input=$1

output=${input%.*}_min.pdf

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$output $input
echo $output

シェルへ圧縮したいPDFを渡せば、サフィックスに _min を付与して圧縮したファイルを生成してくれます。一括でPDFを圧縮したい場合は、このスクリプトを少し改造すれば実現できますのでやってみてください。

▶︎ 類似した記事を探す #MacBook #macOS

この記事が参考になりましたら
シェアをよろしくお願いします!

関連記事