Tips & Tricks

Linux コンピューターで PDF を圧縮する方法

PDF を扱う Linux ユーザーは、よくあるフラストレーションに定期的に遭遇します。検索結果の大半を占める圧縮ツールとチュートリアルは Windows と macOS 用に書かれており、Linux 用のコマンドライン代替手段はさまざまなパッケージに散在しており、ドキュメントが一貫していません。 Linux での PDF の圧縮は、無料のオープンソース ツールを使用して完全に実現できます。多くの場合、Linux コマンドライン アプローチでは、他のプラットフォームのグラフィカル ツールよりも圧縮パラメーターを細かく制御できます。このプロセスには、ジョブに適したツールを選択し、ファイル サイズとビジュアル品質のバランスを取る圧縮オプションを理解することが含まれます。

How to Compress a PDF on a Linux Computer

Ghostscript を使用したコマンドライン PDF 圧縮

Ghostscript は、Linux 上で最も強力で広く利用可能な PDF 処理ツールであり、多くのディストリビューションにプレインストールされており、すべてのパッケージ マネージャーから利用できます。出力解像度、画像圧縮設定、PDF 互換性レベルを指定するコマンドライン呼び出しを通じて PDF を圧縮できます。基本的な圧縮コマンドは、gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed.pdf input.pdf です。 PDFSETTINGS パラメータは、Ghostscript が特定のダウンサンプリングとエンコードの選択に解釈する 4 つのプリセット値にわたる圧縮レベルを制御します。

画面プリセットは、画像を 72 DPI にダウンサンプリングすることによって最小のファイルを生成します。これは、印刷品質が要求されない画面上の読み取りにのみ適しています。電子ブックのプリセットは 150 DPI にダウンサンプリングされ、タブレットやラップトップで読まれるドキュメントに適切なバランスを生成します。プリンターのプリセットは 300 DPI にダウンサンプリングし、印刷品質を維持しながら意味のある圧縮を実現します。プリプレス プリセットは可逆圧縮を適用し、プロフェッショナルな印刷用のカラー プロファイルを保存し、プリセットの中で最大のファイルを生成します。 Linux でのほとんどの PDF 圧縮 のニーズに対して、電子ブックまたはプリンターのプリセットは適切なトレードオフを提供します。

WukongPDF

PDFを圧縮してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →

軽量の代替手段として ps2pdf を使用する

ps2pdf スクリプトは、ほとんどの Linux ディストリビューションに Ghostscript パッケージの一部として同梱されており、同じ基本機能に対してより単純なコマンドライン インターフェイスを提供します。 ps2pdf input.pdf out.pdf を実行すると、パラメータ設定を必要とせずに、デフォルトの圧縮最適化セットが適用されます。デフォルト設定は Ghostscript プリンタ プリセットと同等であり、画面表示と印刷の両方に適したファイルを生成します。このゼロ構成アプローチは、出力を微調整する必要がない場合に、迅速な圧縮に役立ちます。

より詳細な制御を行うために、ps2pdf はコマンド ラインを通じて Ghostscript パラメータを受け入れます。 ps2pdf -dPDFSETTINGS=/ebook input.pdf Output.pdf を実行すると、電子ブックのプリセットが Ghostscript に渡されます。 ps2pdf -dPDFSETTINGS=/screen -dDownsampleColorImages=true -dColorImageResolution=100 input.pdf out.pdf を実行すると、カラー イメージのダウンサンプリングが具体的にカスタマイズされます。これらのカスタム パラメータの PDF サイズの縮小 の効果は、どのプリセットよりも強力になる可能性がありますが、カスタム設定をバッチに適用する前に、必ず単一ファイルで出力をテストしてください。

qpdf を使用した構造圧縮

Ghostscript と ps2pdf は、PostScript インタプリタを通じて PDF コンテンツを再レンダリングします。これにより、ロスレス設定でもレンダリングに微妙な変更が生じる可能性があります。 Qpdf は異なるアプローチを採用し、ページ コンテンツを再レンダリングせずに PDF ファイルの構造最適化を実行します。コマンド qpdf --linearize --object-streams=generate --recompress-flate input.pdf Output.pdf は、冗長なオブジェクトを削除し、より良い圧縮率で圧縮ストリームを再生成し、より効率的に読み取るためにファイル構造を再編成します。 Qpdf 圧縮は真にロスレスであり、ページのピクセルはオリジナルと同一です。

Qpdf は、編集セッションごとに未使用のオブジェクトや最適ではないストリーム圧縮が残る可能性があるため、複数回編集された PDF に対して特に効果的です。数回の編集を経た PDF に対して qpdf を実行すると、表示される内容に変更はなく、20 ~ 30% 縮小されたファイルが生成されることがよくあります。 qpdf ツールは、すべての主要な Linux ディストリビューションのパッケージ マネージャーを通じて利用でき、レンダリング ステップを完全にスキップするため、Ghostscript よりも大幅に高速にファイルを処理します。オリジナルに対するピクセル完璧な忠実性が必須であるPDF 圧縮の場合、qpdf が推奨されるツールです。

PDF をバッチ圧縮するためのシェル スクリプトの作成

コマンドラインから単一の PDF を圧縮するのは高速です。 50 個の PDF が含まれるフォルダーを一度に 1 つずつ圧縮するのは面倒です。短いシェル スクリプトは、ディレクトリ内のすべての PDF を処理するループ内に圧縮コマンドをラップします。基本的なスクリプトは for ループです。 for f in *.pdf; do gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile="compressed_$f" "$f";終わり。これにより、ファイル名にプレフィックスが追加された各 PDF の圧縮コピーが作成され、元のファイルはそのまま残ります。

運用環境で使用するスクリプトにエラー チェックを追加します。圧縮を試みる前に、入力ファイルが存在し、読み取り可能であることを確認してください。出力ファイルが正常に作成され、圧縮後のファイル サイズがゼロ以外になっていることを確認します。後で確認できるように、各ファイルの元のファイル サイズ、圧縮ファイル サイズ、圧縮率をテキスト ファイルに記録します。適切に作成されたバッチ圧縮スクリプトは、何時間もの手動コマンドライン作業を節約し、どのファイルがいつ、どの程度圧縮されたかを正確に記録します。 WukongPDF などのツールは、グラフィカル ワークフローを好む Linux ユーザー向けに、ブラウザ インターフェイスを介してバッチ PDF サイズの削減 機能を提供します。

Linux GUI での PDF 圧縮の使用

コマンド ラインよりもグラフィカル インターフェイスを好む Linux ユーザーには、PDF 圧縮のためのいくつかのオプションがあります。 PDF Arranger は、ほとんどのパッケージ マネージャーから利用でき、PDF ページの並べ替え、削除、回転を行うためのビジュアル インターフェイスを提供します。また、そのエクスポート機能には、画像をダウンサンプリングする圧縮オプションが含まれています。 Xournal++ は、ノートブック インターフェイスで PDF を開き、注釈付きドキュメントを圧縮 PDF としてエクスポートできます。 LibreOffice Draw は PDF を開いて、PDF エクスポート ダイアログを通じて適用された圧縮設定を使用してエクスポートできます。

ブラウザベースの PDF 圧縮ツールは、オペレーティング システムに依存せずブラウザ内で実行されるため、Linux、Windows、および macOS 上でも同様に機能します。好みのブラウザベースのツールを開き、PDF をアップロードし、圧縮レベルを選択して、結果をダウンロードします。この OS に依存しないアプローチは、コマンド ライン ツールをインストール、構成、更新したり、パッケージ マネージャーを探して適切な圧縮ユーティリティを探したりする必要がなくなるため、Linux では特に便利です。

Linux での圧縮結果の検証

PDF を圧縮した後、Linux ネイティブ ツールを使用して出力品質を検証します。 Poppler-utils パッケージの一部である pdfinfo コマンドは、元のファイルと圧縮されたファイルの両方のページ数、ページ サイズ、PDF バージョンを表示し、ページ構造が損なわれていないことを確認します。 ImageMagick の識別コマンドを使用すると、個々のページを画像として抽出し、そのピクセル寸法をレポートできるため、ダウンサンプリングによって画像の解像度が予想される量だけ低下したかどうかを確認できます。

視覚的な品質をチェックするには、Evince、Okular、またはお好みの Linux PDF ビューアの 2 つのインスタンスで、元の PDF と圧縮された PDF を並べて開きます。テキストと画像の両方を含むページを少なくとも 200% に拡大します。テキストのエッジの鮮明さと、写真領域における JPEG 圧縮アーティファクトの有無を比較します。圧縮バージョンで目に見える品質の低下が見られる場合は、ダウンサンプリング解像度と JPEG 品質しきい値を増やす、高品質のプリセットまたはカスタム Ghostscript パラメータを使用して圧縮を再実行します。

画像固有の圧縮に ImageMagick を使用する

PDF ファイルのサイズが少数の大きな画像で占められている場合、Ghostscript を使用して PDF 全体を圧縮すると、テキスト部分とベクター部分が過剰になる可能性があります。 ImageMagick は、PDF 内の特定の画像をターゲットにすることができます。 Poppler-utils パッケージの一部である pdfimages を使用して、特大の画像を抽出します。特定の画像タイプに合わせて調整された品質パラメータとサイズ変更パラメータを指定した Convert コマンドを使用して、抽出された各画像を個別に圧縮します。次に、img2pdf ツールを使用して、圧縮された画像を新しい PDF に再構築します。

この外科的圧縮手法では、テキスト レイヤーが再レンダリングされないため、テキストの鮮明さが完全に維持されます。画像のみ修正しております。鮮明なベクター テキストと不必要に高解像度の写真を組み合わせた PDF では、ファイル サイズが大幅に削減される可能性があります。たとえば、テキスト文書に 1200 DPI の写真が埋め込まれた PDF は、テキストをそのままにして写真だけを 300 DPI にダウンサンプリングすることで、80 パーセント以上縮小できます。

圧縮中にグラフィカルなフィードバックを好む Linux ユーザー向けに、Flathub から入手できる GTK ベースのアプリケーションである PDF Compressor を使用すると、元の出力と圧縮された出力を並べてプレビューできる Ghostscript 圧縮のビジュアル インターフェイスが提供されます。バッチ処理をサポートし、再利用のために圧縮プロファイルを保存します。

Linux 上で電子メールで配布される PDF の場合、コマンド mutt はコマンド ラインから直接ファイルを添付することをサポートします。圧縮後、ls -lh を使用して圧縮ファイルのサイズを確認し、受信者の電子メール サーバーの添付ファイルの制限 (ほとんどのプロバイダーでは通常 25 MB) を下回っていることを確認します。それでもファイルが大きすぎる場合は、送信する前に pdftk または qpdf を使用して PDF を小さなセクションに分割することを検討してください。

すべての Linux ディストリビューションで利用可能な Poppler-utils パッケージには、PDF ページを画像形式に変換する pdftoppm が含まれています。これは、再組み立てする前に個々のページに画像固有の圧縮ツールを適用する場合の中間ステップとして役立ちます。

サーバー環境で自動 PDF 圧縮を行う場合は、cron ジョブまたは systemd タイマーから Ghostscript を呼び出して、受信した PDF をスケジュールに従って処理できます。コマンドラインアプローチにより、自動化が簡単になります。

Linux ネイティブ PDF 圧縮ツールは、シェル スクリプトの柔軟性と組み合わされて、おそらくあらゆるオペレーティング システムで利用できる最も強力でカスタマイズ可能な PDF 圧縮環境を提供します。

この柔軟性と制御により、大規模なドキュメント コレクションを定期的に扱う人にとって、PDF 圧縮に対する Linux のアプローチは学ぶ価値があります。

WukongPDF

PDFを圧縮してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →