[ツール紹介] img2pdf: ロスレス画像-PDF変換ツール
img2pdfは、Linux環境で画像をPDFに変換する際に、最も高速かつ効率的なツールの1つです。 複数の画像を1つのPDFドキュメントに結合したり、単一の画像をPDFに変換したりするのに最適化されており、Pythonベースで動作します。
今回は、個人的に時々必要になるたびに「これは本当に素晴らしい」と毎回感じるツールをご紹介します。圧倒的な速度とLinux特有の軽快さ、さらにパイプ接続の柔軟性も兼ね備えており、非常に気に入っているツールです。

1. 作動原理 (Working Principle)
最大の特長は、「再エンコードなしでの結合(No Re-encoding)」です。 * 従来の方式(例: ImageMagick): 画像を読み込み、ピクセルデータを解析した後、PDF形式に合わせて再圧縮(Lossy)します。この過程でCPUリソースを多く消費し、画質劣化が発生する可能性があります。 * img2pdfの方式: 画像ファイルのバイナリデータをそのまま(Lossless)PDFコンテナに格納します。 * 利点: 処理速度が圧倒的に速く、元の画質が100%維持され、生成されるファイルの容量も経済的です。
2. インストールと削除 (Installation & Removal)
インストール (Ubuntu/Debianの場合)
sudo apt update
sudo apt install img2pdf
削除
# プログラムのみを削除
sudo apt remove img2pdf
# 設定ファイルと依存関係を含め、完全に削除
sudo apt purge img2pdf
sudo apt autoremove
3. 主な使い方 (Usage Guide)
基本的な結合
現在のディレクトリにあるすべてのPNGファイルを1つのPDFに結合する際に使用します。
img2pdf *.png -o output.pdf
特定の順序で結合
ファイル名を直接指定して順序を設定できます。
img2pdf image1.png image2.png image3.png -o output.pdf
ページサイズと余白の設定 (応用)
画像を特定の規格(例: A4)に合わせたり、余白を追加したりする場合に便利です。
# イメージサイズをA4に合わせ、2cmの余白を追加
img2pdf --pagesize A4 --border 2cm *.png -o output.pdf
特定の解像度(DPI)指定
画像の出力解像度を強制したい場合に使用します。
img2pdf --dpi 300 *.png -o output.pdf
4. 開発者向けのヒント (Developer's Note)
- ソートの問題: Linuxターミナルのワイルドカード(
*)は、数字を文字列として認識します。- 例:
1.png,10.png,2.pngの順で結合される可能性があります。 - 解決策: ファイル名を
01.png,02.png...10.pngのように桁数を揃えて保存するのが最も安全です。
- 例:
- パイプの活用: 当然のことながら、パイプの活用はLinuxの最も便利な点の一つです。他のコマンドの結果を受け取って、即座にPDFを作成できます。
find . -name "*.png" | sort | xargs img2pdf -o output.pdf
一言要約: 「画質を損なわずに、最も速く、LinuxらしくPDFを作成したい時に使う最高のツール」
コメントはありません。