All Tools / Blog / 如何将图片转换为 PDF(免费)

如何将图片转换为 PDF(免费)

1 min read

将图片转换为 PDF 可以固定打印布局、满足文件格式要求,并将多页内容打包为一个文件。这一切都不需要付费软件。

在浏览器中操作

将图片拖入图片转 PDF 工具,根据需要调整页面顺序,然后下载 PDF。工具在客户端运行——文件不会离开您的设备。支持格式:JPEG、PNG、WebP、GIF。

img2pdf(命令行,无损转换)

img2pdf 将图片放入 PDF 容器时不会重新编码。JPEG 输入在 PDF 内部仍保持 JPEG——不会因压缩而损失质量。

pip install img2pdf

# 单张图片
img2pdf image.jpg -o output.pdf

# 多张图片(每张成为一页)
img2pdf page1.jpg page2.jpg page3.jpg -o output.pdf

# 文件夹中所有 JPG,按名称排序
img2pdf $(ls *.jpg | sort) -o combined.pdf

# 设置页面尺寸为 A4
img2pdf image.jpg --pagesize A4 -o output.pdf

与 ImageMagick 或 Ghostscript 不同,img2pdf 不会解压再重新压缩图像数据,输出 PDF 的图片质量与输入完全相同。

ImageMagick(命令行)

# 单张图片
convert image.jpg output.pdf

# 多张图片合并为一个 PDF
convert page1.jpg page2.jpg page3.jpg output.pdf

# 设置 DPI 以正确控制物理尺寸
convert -density 150 image.jpg output.pdf

# 带透明度的 PNG——转换前先铺白色背景
convert image.png -background white -flatten output.pdf

在 Ubuntu 上,ImageMagick 默认通常会阻止 PDF 输出。如果遇到"not authorized"错误:

sudo nano /etc/ImageMagick-6/policy.xml
# 找到:<policy domain="coder" rights="none" pattern="PDF" />
# 改为:<policy domain="coder" rights="read|write" pattern="PDF" />

Python:Pillow

from PIL import Image

# 单张图片转 PDF
with Image.open('image.jpg') as img:
    img.convert('RGB').save('output.pdf')

# 多张图片合并为一个 PDF
images = [Image.open(f).convert('RGB') for f in ['page1.jpg', 'page2.jpg', 'page3.jpg']]
images[0].save('output.pdf', save_all=True, append_images=images[1:])

Python:img2pdf(无损)

import img2pdf

# 单张图片
with open('output.pdf', 'wb') as f:
    f.write(img2pdf.convert('image.jpg'))

# 多张图片
with open('output.pdf', 'wb') as f:
    f.write(img2pdf.convert(['page1.jpg', 'page2.jpg', 'page3.jpg']))

合并一个文件夹中的扫描页面

import img2pdf
from pathlib import Path

pages = sorted(Path('scans/').glob('*.jpg'))
with open('document.pdf', 'wb') as f:
    f.write(img2pdf.convert([str(p) for p in pages]))
print(f'已将 {len(pages)} 页合并为 document.pdf')

按文件名排序可保持页面顺序。如果扫描仪以日期或序列号命名文件,sorted() 会自动处理。

页面尺寸与 DPI

大多数转换工具默认将 PDF 页面尺寸设为与图片尺寸一致。如需标准纸张尺寸:

# img2pdf:将图片适配到 A4 页面
img2pdf image.jpg --pagesize A4 -o output.pdf

# ImageMagick:A4,150 DPI
convert -density 150 -page A4 image.jpg output.pdf

扫描文档的 DPI 建议:

用途 DPI 说明
屏幕阅读 96–150 文件小,可读性好
标准打印 150–200 质量好,文件大小适中
存档 / 法律用途 300 文件较大;保留精细细节

要点总结

  • img2pdf 是无损转换的最佳命令行工具——不会重新编码 JPEG 数据。
  • Pillow 的 save('output.pdf', save_all=True, append_images=...) 可将多张图片合并为一个 PDF。
  • 带透明度的 PNG 转换前需铺白色背景。
  • 合并扫描页面前先对文件名排序,否则页面顺序可能错乱。
  • 仅用于屏幕的文档用 150 DPI;打印或存档用 300 DPI。