[工具總結] img2pdf:無損圖像轉PDF轉換工具
img2pdf是Linux環境下將圖片轉換為PDF最快速、最有效率的工具之一。它針對將多張圖片合併成單一PDF文件,或將單一圖片轉換為PDF的應用情境進行了優化,並且基於Python開發。
在這篇文章中,我將介紹一個我自己偶爾會用到,但每次使用都覺得「這工具真棒!」的工具。它憑藉著卓越的速度、Linux特有的輕量化,以及方便的管道(pipe)連接能力,讓我愛不不釋手。

1. 運作原理 (Working Principle)
它最大的特色是「無重新編碼合併 (No Re-encoding)」。 * 傳統方式 (例如:ImageMagick): 讀取圖片並分析像素資料,然後根據PDF格式重新壓縮(有損壓縮)。這個過程會消耗大量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檔案合併成一個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。
- 範例:可能會依照
- 管道(Pipe)應用: 顯而易見地,善用管道是Linux最方便的特點之一。您可以接收其他指令的輸出結果,並立即將其轉換為PDF。
find . -name "*.png" | sort | xargs img2pdf -o output.pdf
一句話總結: 「當您想在不損失畫質的情況下,以最快速度、最符合Linux風格的方式建立PDF時,這就是最佳工具。」
目前沒有評論。