LinuxでPDFファイルのサイズを縮小する。

私たちのLinuxシステムには、大きなPDFファイルがある場合、そのサイズを縮小したいことがあります。このチュートリアルでは、LinuxでPDFのサイズを縮小したり、PDFファイルを圧縮するさまざまな方法を見ていきます。

この問題を解決するためのコマンドラインおよびGUIの方法を見つけましょう。


LinuxにおけるPDFファイルサイズを縮小するためのコマンドラインユーティリティ

1. GhostScriptを使用する

私たちはLinuxでghostscriptコマンドラインユーティリティを使用してPDFを圧縮することができます。

もしコマンドがあなたのマシンにない場合、パッケージマネージャーを使用してインストールすることができます。

例えば、Ubuntuではaptを使うことができます。

sudo apt install ghostscript

読みやすい品質にPDFを圧縮するためには、この魔法のコマンドを使用できます。

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

こちらでは、適切にoutput.pdfとinput.pdfを置き換えてください。

以下の表には、-dPDFSETTINGSオプションへのさまざまな微調整が提供されています。必要に応じて使用してください。

-dPDFSETTINGS Option Description
-dPDFSETTINGS=/screen Has a lower quality and smaller size. (72 dpi)
-dPDFSETTINGS=/ebook Has a better quality, but has a slightly larger size (150 dpi)
-dPDFSETTINGS=/prepress Output is of a higher size and quality (300 dpi)
-dPDFSETTINGS=/printer Output is of a printer type quality (300 dpi)
-dPDFSETTINGS=/default Selects the output which is useful for multiple purposes. Can cause large PDFS.

上記のコマンドを使用して、73MBから14MBまでの圧縮を実現しました!

Ghostscript Reduce Pdf Size

2. ps2pdfを利用する

以下のコマンド「ps2pdf」は、PDFをPSに変換し、効率的な圧縮を行った後、再びPDFに戻します。

必ずしも常に成功するわけではありませんが、非常に良い結果を生むこともあります。

以下の文章を日本語で自然に言い換えてください。一つのオプションだけで構いません:

Format:
I am planning to travel to Japan next month during the summer break.

ps2pdf input.pdf output.pdf

読みやすさとサイズの両方で最適なパフォーマンスを得るために、-dPDFSETTINGS=/ebooksの設定を使用することをおすすめします。ebooks形式は読みやすさに優れ、またサイズも小さいため、最適です。

ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf

私はこの方法を73MBのPDFに試しましたが、Ghostscriptコマンドと同じ結果で、圧縮されたPDFはわずか14MBでした。

Ps2pdf Reduce Pdf Size

LinuxでPDFファイルのサイズを軽減するためのGUIユーティリティ

コマンドラインツールが使いづらい場合は、GUIの代替手段もあります。

集約化

これはGhostscriptのGUIフロントエンドです。Python3とGTKモジュールを使用しており、Linuxディストリビューションにインストールできます。

このパッケージはDensifyと呼ばれており、こちらから利用できます(GitHubへのリンク)。

必要な作業をすべて行うために、私はシンプルなBashスクリプトを作成しました。このBashスクリプトをルートとして実行して、必要なファイルをリンクしダウンロードしてください。

#!/bin/bash
#- HELPER SCRIPT FOR DENSIFY
#-    original package         https://github.com/hkdb/Densify
#-    script author            Vijay Ramachandran
#-    site                     https://scdev.com
#- 

# Go to your home directory (preferred)
cd $HOME

# Download the package
git clone https://github.com/hkdb/Densify
cd Densify

# Queue must be changed to queue in the file.
# Will not work otherwise
sed -i 's/Queue/queue/g' $PWD/densify

# Create the symlink to /opt
sudo ln -s $PWD /opt/Densify

# Perform the install
cd /opt/Densify
sudo chmod 755 install.sh
sudo ./install.sh

# Export to PATH
if [ $SHELL == "/bin/zsh" ]; then
    if test -f $HOME/.zshrc; then
        echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.zshrc
        source $HOME/.zshrc
    else
        echo "No zshrc Found! Please create a zsh config file and try again"
    fi
else
    if [ $SHELL == "/bin/bash" ]; then
        if test -f $HOME/.bashrc; then
            echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.bashrc
            source $HOME/.bashrc
        else
            if test -f $HOME/.bash_profile; then
                echo 'export PATH=/opt/Densify:$PATH' >> $HOME/.bash_profile
                source $HOME/.bash_profile
            else
                echo "No bashrc Found! Please create a bash config file and try again"
            fi
        fi
    else
        echo "Default Shell is not zsh or bash. Please add /opt/Densify to your PATH"
    fi
fi

エラーがなければ、進む準備ができています! opt/densify から以下のコマンドを入力してGUIを起動するか、ダッシュボードから開いてください。

densify
Densify Gui Utility

GUIを使って、必要なだけのPDFファイルを圧縮できるようになりました。


参考文献

  • StackOverflow question on reducing PDF size

コメントを残す 0

Your email address will not be published. Required fields are marked *