PDFファイルの切り出しと圧縮方法

概要

前置き

職場内研修の資料を Re:VIEW - Digital Publishing System for Books and eBooks を使って作成していますが、ページが増えて出力した PDF の容量が職場のメールの容量制限に引っかかるようになりました。そこで PDF の切り出しツールと圧縮ツールを探したら以下のツールが見つかりましたので、備忘録を兼ねてツールの紹介と簡単な使い方をまとめます。

環境

OS
Windows11 Pro 22H2
WSL
1.1.3.0
OS on WSL
Ubuntu-20.04

使用するツール

PDF の切り出しは pdftk-java / pdftk-java · GitLab を使用し、圧縮は Ghostscript を使用しています。それぞれのツールは次のコマンドでインストールしています。

1sudo apt-get --yes install pdftk 
2sudo apt install ghostscript

切り出し方法

次のコマンドで PDF ファイルを切り出します。このコマンドは foo-bar.pdf の1ページから12ページを切り出して foo.pdf ファイルとして保存しています。

1pdftk foo-bar.pdf cat 1-12 output foo.pdf
ここで指定するページ数は、ファイルの1ページ目からの通し番号を指定する必要があります。以下のスクリーンショットにあるページを切り出したい場合、`140` ではなく `148` を指定する必要があります。
PDFファイルのページ数の見本

圧縮方法

次のコマンドを実行して PDF ファイルを圧縮します。このコマンドは input.pdf ファイルを圧縮して output.pdf として出力します。-dPDFSETTINGS=/printerprinter は 300dpi で出力するというオプションで、これを screen にすると 72dpi になります。

1gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

ちなみに、-dPDFSETTINGS=/printer-dPDFSETTINGS=/screen のオプションの違いによるファイルサイズの差は次のとおりです。

元ファイル
10.79 MB
-dPDFSETTINGS=/ptinter
4.46 MB
-dPDFSETTINGS=/screen
1.36 MB

参考にしたサイト