549 文字
3 分
[Ghostscript] PDFを圧縮する
やりたいこと
昨今、PDFのファイルサイズを小さくする様々なオンラインサービスがあります。
しかし、個人情報の含まれるPDFだったりを小さくしたい場合、オンライン上にファイルをアップロードするのには抵抗があります。
なので、オフラインでPDFファイルサイズを縮小できる方法を探すと、Ghostscriptを使うとできそうなことが分かったので試してみました。
環境
以下の環境で実施しました。
- Windows 10
- WSL2 Ubuntu-20.04
手順
Ghostscriptをインストール
WSL2上のUbuntuにGhostscriptをインストールします。
$ sudo apt install ghostscriptGhostscript 9.50がインストールされました。
$ gs --version9.50PDFのファイルサイズを小さくする
いよいよファイルサイズを縮小します。以下のコマンドでファイルサイズを小さくできます。
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<出力先のファイルパス> <小さくしたいPDFのファイルパス>試しにこちらの3.9Mあるinput.pdfというPDFのファイルサイズの縮小を試みてみます。
$ ls -lh input.pdf-rwxr-xr-x 1 user user 3.9M Sep 17 02:15 input.pdf縮小実行
$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf2.5kまでファイルサイズを圧縮できました。
$ ls -lh output.pdf-rw-r--r-- 1 user user 2.5K Sep 17 02:20 output.pdfコマンドの解説
| オプション | 説明 |
|---|---|
| -sDEVICE=pdfwrite | PDF形式で出力します。 |
| -dCompatibilityLevel=1.4 | PDFのバージョンを指定します。 |
| -dPDFSETTINGS=/ebook | PDFの解像度を指定します。 以下4つの値を指定できて、下に行くほど品質が高くなります。 ・/screen ・/ebook ・/printer ・/prepress 指定しない場合は次の値を指定したときと同じ挙動になります。 ・/default なお、入力したPDFから品質をなるべく落としたくない場合は、/prepressではなく/defaultを使用するべきらしいです。 |
| -dNOPAUSE | 各ファイルを処理するたびに一時停止しないようになります。 |
| -dQUIET | 標準出力への出力を抑制します。 |
| -dBATCH | 対話形式に入るのではなく、コマンド実行完了後に処理を終了します。 |
| -sOutputFile=<出力先のファイルパス> | 縮小後のPDFの出力先のファイルパスを指定します。 |
参考: