Python img2pdf 库实现图像批量转换为 PDF 教程
什么是 img2pdf 库?
img2pdf 是一个基于 Python 的开源库,旨在将多种图像格式无损地转换为 PDF 文件。与使用 Pillow 或 ReportLab 等库手动构建 PDF 不同,img2pdf 直接读取图像的原始数据并将其嵌入到 PDF 结构中,从而最大程度保留图像质量。
它支持多种常见图像格式,包括 JPG、PNG、GIF、BMP 等,并且能够自动处理图像的大小和方向,使其适应 PDF 页面的设置。此外,它还支持设置 PDF 的元数据(Metadata),如标题、作者、主题等,这对于文档管理和归档非常重要。
为什么要使用 img2pdf 库?
在实际工作中,经常需要将扫描的文档、照片、漫画或数据可视化图表整理成 PDF 格式,以便于打印、分享或长期存档。使用 img2pdf 库有以下优势:
- 无损转换:保持图像原始分辨率和质量,适合对画质要求高的场景。
- 自动化处理:通过脚本批量处理大量图片,无需人工逐个操作。
- 轻量级依赖:相比安装完整的 Adobe Acrobat 或其他大型 PDF 软件,仅需 Python 环境即可运行。
- 元数据支持:方便为生成的 PDF 添加描述信息,便于检索和管理。
环境准备与安装
1. 安装 Python 环境
确保已安装 Python 3.6 及以上版本。可以通过命令行输入 python --version 检查。
2. 安装 img2pdf
使用 pip 包管理器进行安装:
pip install img2pdf
3. 依赖项说明
img2pdf 主要依赖 Ghostscript 来处理某些特定功能(如页面大小调整)。虽然基础转换通常不需要额外安装 Ghostscript,但为了获得最佳兼容性(特别是涉及页面尺寸修改时),建议系统已安装 Ghostscript。
- Windows: 可从官网下载安装包。
- macOS: 可通过 Homebrew 安装 (
brew install ghostscript)。 - Linux: 可通过包管理器安装 (
sudo apt-get install ghostscript)。
基础用法:单张图片转 PDF
最简单的使用方式是导入库并调用 convert 函数。该函数接受一个图像路径列表,返回包含 PDF 内容的字节流。
import img2pdf
# 定义输入图像列表
images = ["cat.jpg", "dog.jpg"]
output_file = "animals.pdf"
# 将图像转换为 PDF 字节流
pdf_bytes = img2pdf.convert(images)
# 写入文件
with open(output_file, "wb") as f:
f.write(pdf_bytes)
()


