[工具推荐] img2pdf:无损图像转PDF的实用工具

img2pdf 是 Linux 环境下将图像转换为 PDF 的最快速、最有效的工具之一。它专为将多张图像合并到单个 PDF 文档或将单张图像转换为 PDF 而优化,并且基于 Python 开发。

在这篇文章中,我将向大家介绍一个我个人非常喜欢并经常使用的工具。每次使用它时,我都会感叹它的强大。它拥有卓越的速度、Linux 特有的轻量级,并且能够完美地与管道命令结合,这些都让我对它爱不释手。

图片转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 这样补齐位数。
  • 管道利用: 毋庸置疑,管道是 Linux 最便捷的特性之一。您可以接收其他命令的输出,并立即将其转换为 PDF。
find . -name "*.png" | sort | xargs img2pdf -o output.pdf

一句话总结: “当您想在 Linux 环境下,以最快速度、无损画质地创建 PDF 时,img2pdf 是您的最佳选择!”