[工具總結] img2pdf:無損圖像轉PDF轉換工具

img2pdf是Linux環境下將圖片轉換為PDF最快速、最有效率的工具之一。它針對將多張圖片合併成單一PDF文件,或將單一圖片轉換為PDF的應用情境進行了優化,並且基於Python開發。

在這篇文章中,我將介紹一個我自己偶爾會用到,但每次使用都覺得「這工具真棒!」的工具。它憑藉著卓越的速度、Linux特有的輕量化,以及方便的管道(pipe)連接能力,讓我愛不不釋手。

이미지에서 pdf 로 변환되는 프로세스를 이미지화

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.png10.png2.png 的順序合併。
    • 解決方案: 最安全的做法是將檔案名稱儲存為固定位數,例如 01.png02.png ... 10.png
  • 管道(Pipe)應用: 顯而易見地,善用管道是Linux最方便的特點之一。您可以接收其他指令的輸出結果,並立即將其轉換為PDF。
find . -name "*.png" | sort | xargs img2pdf -o output.pdf

一句話總結: 「當您想在不損失畫質的情況下,以最快速度、最符合Linux風格的方式建立PDF時,這就是最佳工具。」