Linux下如何通过CLI最简单统一所有PDF的纸张尺寸?
Linux下CLI统一PDF纸张尺寸最简方案
首选工具:Ghostscript(gs命令)
这是Linux平台处理PDF的标准命令行工具,绝大多数主流发行版默认预装,无冗余依赖,处理速度快,是满足需求的最优选择。
- 若系统未预装,可直接通过发行版官方源安装:
- Debian/Ubuntu系:
sudo apt install ghostscript - Fedora/RHEL系:
sudo dnf install ghostscript - Arch系:
sudo pacman -S ghostscript
- Debian/Ubuntu系:
基础使用语法
单文件转换(以统一为A4尺寸为例)
gs -sDEVICE=pdfwrite \ -dFIXEDMEDIA \ -dPDFFitPage \ -r300 \ -sPAPERSIZE=a4 \ -dNOPAUSE \ -dQUIET \ -dBATCH \ -sOutputFile=输出结果.pdf 待处理源文件.pdf
关键参数说明:
-dFIXEDMEDIA:强制锁定输出纸张尺寸,覆盖原PDF自带的所有页面尺寸配置-dPDFFitPage:自动缩放原页面内容适配目标纸张,自动居中,不会裁切原有内容-r300:设置输出分辨率为300DPI,满足日常存档、打印的清晰度要求-sPAPERSIZE=a4:指定目标纸张规格,内置支持letter、a3、a5等所有标准纸张尺寸- 若需要自定义非标准尺寸,可替换
-sPAPERSIZE参数为-dDEVICEWIDTHPOINTS=宽度值 -dDEVICEHEIGHTPOINTS=高度值,单位为pt(1pt = 1/72英寸,A4对应尺寸为595pt × 842pt) -dNOPAUSE -dQUIET -dBATCH:关闭交互提示、冗余日志,处理完成后自动退出进程
批量处理当前目录所有PDF
直接执行shell循环即可,处理后的文件统一输出到fixed_size子目录,避免覆盖原文件:
mkdir -p fixed_size for pdf_file in *.pdf; do gs -sDEVICE=pdfwrite -dFIXEDMEDIA -dPDFFitPage -r300 -sPAPERSIZE=a4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile="fixed_size/$pdf_file" "$pdf_file" done
备选工具(非最简,适合特殊排版需求)
如果需要同步调整页边距、多页拼版等复杂操作,可以选择pdfjam,但该工具依赖LaTeX运行环境,安装体积大,仅做简单尺寸统一不推荐使用。基础尺寸转换语法为:
pdfjam --paper a4paper 待处理源文件.pdf -o 输出结果.pdf
注意:Ghostscript会重写PDF结构,原文件内的电子签章、可编辑表单、交互式批注可能在处理后失效,操作前建议备份原文件。
内容的提问来源于stack exchange,提问作者user17227456
相关产品推荐
相关产品推荐

