# [工具總結] img2pdf:無損圖像轉PDF轉換工具 > `img2pdf`是Linux環境下將圖片轉換為PDF最快速、最有效率的工具之一。它針對將多張圖片合併成單一PDF文件,或將單一圖片轉換為PDF的應用情境進行了優化,並且基於Python開發。 在這篇文章中,我將介紹一個我自己偶爾會用到,但每次使用都覺得「這工具真棒!」的工具。它憑藉著卓越的速度、Linux特有的輕量化,以及方便的管道(pipe)連接能力,讓我愛不不釋手。 ![이미지에서 pdf 로 변환되는 프로세스를 이미지화](/media/whitedec/blog_img/2ab5b1e13c8247bc98d6174c12c0c5c2.webp) ## 1. 運作原理 (Working Principle) {#sec-f8af2ee385bf} 它最大的特色是**「無重新編碼合併 (No Re-encoding)」**。 * **傳統方式 (例如:ImageMagick):** 讀取圖片並分析像素資料,然後根據PDF格式重新壓縮(有損壓縮)。這個過程會消耗大量CPU資源,並可能導致畫質下降。 * **img2pdf 方式:** 將圖片檔案的二進位資料**原封不動地 (Lossless)** 放入PDF容器中。 * **優點:** 速度極快,100%保留原始畫質,並且輸出檔案大小更為經濟。 ## 2. 安裝與移除 (Installation & Removal) {#sec-aa06551b507} ### 安裝 (以 Ubuntu/Debian 為例) {#sec-0dfc74ad579f} ```bash sudo apt update sudo apt install img2pdf ``` ### 移除 {#sec-17fc6056a949} ```bash # 僅移除程式 sudo apt remove img2pdf # 徹底移除設定檔及相關依賴 sudo apt purge img2pdf sudo apt autoremove ``` --- ## 3. 主要用法 (Usage Guide) {#sec-02dae59f6008} ### 基本合併 {#sec-002951a3397c} 用於將目前目錄中的所有PNG檔案合併成一個PDF。 ```bash img2pdf *.png -o output.pdf ``` ### 按特定順序合併 {#sec-3136d0efa9f4} 您可以直接列出檔案名稱來指定合併順序。 ```bash img2pdf image1.png image2.png image3.png -o output.pdf ``` ### 設定頁面尺寸與邊界 (進階) {#sec-8dfce1207c34} 當您希望將圖片調整為特定規格(例如:A4)或增加邊界時非常有用。 ```bash # 將圖片尺寸調整為A4並增加2cm邊界 img2pdf --pagesize A4 --border 2cm *.png -o output.pdf ``` ### 指定特定解析度 (DPI) {#sec-231f83e819d7} 當您希望強制指定圖片的輸出解析度時使用。 ```bash img2pdf --dpi 300 *.png -o output.pdf ``` --- ## 4. 開發者提示 (Developer's Note) {#sec-34c448091f29} * **排序問題:** Linux終端機的萬用字元(`*`)會將數字視為字串。 * 範例:可能會依照 `1.png`、`10.png`、`2.png` 的順序合併。 * **解決方案:** 最安全的做法是將檔案名稱儲存為固定位數,例如 `01.png`、`02.png` ... `10.png`。 * **管道(Pipe)應用:** 顯而易見地,善用管道是Linux最方便的特點之一。您可以接收其他指令的輸出結果,並立即將其轉換為PDF。 ```bash find . -name "*.png" | sort | xargs img2pdf -o output.pdf ``` --- > **一句話總結:** 「當您想在不損失畫質的情況下,以最快速度、最符合Linux風格的方式建立PDF時,這就是最佳工具。」