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 处理需求。