如何通过Linux/macOS命令行将单页长幅PDF转换为多页A4规格PDF?
如何通过Linux/macOS命令行将单页长幅PDF转换为多页A4规格PDF?
嘿,我来给你分享几个在Linux/macOS命令行上搞定这个需求的实用法子,亲测靠谱!
方法一:用pdfposter(最简便的专用工具)
这工具就是专门干PDF分页切割的,操作起来超省心:
- 先安装它:
- Linux Debian/Ubuntu系:
sudo apt install pdfposter - Linux RHEL/CentOS系:
sudo dnf install pdfposter - macOS:用Homebrew装
brew install pdfposter
- Linux Debian/Ubuntu系:
- 直接跑转换命令就行:
它会自动识别原长页的尺寸,把内容分割成若干张A4页面,排版也会自动对齐,完全不会乱。要是遇到原页面尺寸识别有问题的情况,加个pdfposter -p A4 input.pdf output.pdf-m auto参数强制自动检测就行:pdfposter -m auto -p A4 input.pdf output.pdf
方法二:用Ghostscript(系统大概率自带)
要是不想装新工具,Ghostscript很多Linux/macOS系统默认就预装了,用它也能搞定:
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sPAPERSIZE=a4 -dFIXEDMEDIA -dPDFFitPage=false -dAutoRotatePages=/None -o output.pdf input.pdf
给你解释下关键参数:
-sPAPERSIZE=a4:明确指定目标纸张是A4-dFIXEDMEDIA:强制锁定纸张尺寸,不会跟着内容乱改-dPDFFitPage=false:禁止把整个长页缩到单张A4上,而是按A4大小分页切割-dAutoRotatePages=/None:避免页面自动旋转,保持原内容的方向
方法三:用qpdf配合其他工具(如果你坚持用qpdf)
qpdf本身没有直接的分页功能,但可以绕个弯实现:先把PDF转成图片,切割后再转回PDF,步骤稍繁琐但能用:
- 用qpdf把单页PDF转成图片(这里用PNG格式):
qpdf --to-image input.pdf temp.png - 用ImageMagick的
convert工具把长图片切割成A4大小的小图:
这里595x842是72dpi下A4的像素尺寸,convert temp.png -crop 595x842@ +repage temp_%02d.png+repage用来重置图片的页码信息,避免排版混乱 - 把切割后的图片重新合并成PDF:
最后别忘了清理临时文件:convert temp_*.png output.pdfrm temp*.png
个人最推荐用pdfposter,一步到位,完全不用操心细节!
备注:内容来源于stack exchange,提问作者halloleo




