macOS 下用命令行处理 PDF:ImageMagick 与 pdfunite

在日常工作中,我们经常会遇到以下需求:

  • 把多张图片转成一个 PDF(例如照片、扫描件打包)
  • 把多个 PDF 合并成一个文档

在 macOS 下,这些操作可以通过命令行工具 ImageMagick (magick) 和 pdfunite 来完成,非常高效。下面就一步步介绍。

1. 安装工具

Homebrew 安装 ImageMagick

1
brew install imagemagick

Homebrew 安装 pdfunite(属于 poppler 工具集)

1
brew install poppler

安装完成后,命令 magick 和 pdfunite 就可以使用了。

2. 图片转 PDF

单张图片转 PDF

1
magick input.jpg output.pdf

多张图片合并成一个 PDF

1
magick image1.jpg image2.png image3.tif output.pdf

批量转换当前目录下所有图片

1
magick *.jpg output.pdf

这样,所有图片会按文件名顺序合并为多页 PDF。

💡 如果需要控制清晰度或文件大小,可以加参数:

1
magick -quality 85 -resize 1024x1024 input.jpg output.pdf

3. 合并 PDF

方法一:用 ImageMagick(适合临时需求)

1
magick file1.pdf file2.pdf merged.pdf

不过要注意:ImageMagick 会把 PDF 渲染为图片后再导出,这意味着:

  • 文本会变成不可复制的图片
  • 文件体积可能变大
  • 清晰度依赖 -density 参数(默认 72 DPI,推荐 150 或 300)

例如:

1
magick -density 150 file1.pdf file2.pdf merged.pdf

方法二:用 pdfunite(推荐,保留文本/矢量)

1
pdfunite file1.pdf file2.pdf file3.pdf merged.pdf

特点:

  • 无损合并,保留原有的文字、链接、矢量图形
  • 速度快,文件大小几乎不变
  • 更适合正式文档处理

4. 总结

图片转 PDF:用 magick,简单高效

PDF 合并:

  • 临时/不在乎文本 → magick
  • 正式/保留可编辑文本 → pdfunite

两者配合,可以解决绝大多数日常 PDF 处理需求。