Linux 命令速查
文本处理 man gs

gs

Ghostscript 的 PostScript/PDF 处理命令

返回

补充说明

gs 是 Ghostscript 的主程序,一个 PostScript 与 PDF 解释器。它能把 PS/PDF 渲染成位图,也能在格式之间转换、合并拆分页面、压缩 PDF、嵌入字体,是许多打印与文档工具(如 ps2pdf、CUPS 过滤链)的底层依赖。

常见用途包括:把 PDF 转成 PNG/JPEG 预览图、压缩扫描版 PDF、提取或重排页面、修复损坏的 PDF、把 EPS 转成 PDF。它通过 -sDEVICE= 选择输出设备,用 -o 指定输出文件。

注意:Ghostscript 历史上多次出现与 -dSAFER 相关的安全漏洞。现代版本默认启用 SAFER 沙箱,不要为了“兼容”随意加 -dNOSAFER 处理来路不明的文件。压缩 PDF 会重新编码图像,可能损失清晰度或丢失部分交互特性。

语法

gs [选项] 输入文件...

选项

  • -sDEVICE=设备:输出设备,如 pdfwrite、png16m、jpeg、tiff24nc
  • -o 文件 / -sOutputFile=文件:输出文件,-o 隐含 -dBATCH -dNOPAUSE
  • -dBATCH:处理完所有文件后退出
  • -dNOPAUSE:每页不暂停等待按键
  • -dSAFER:启用安全沙箱(新版本默认)
  • -q:安静模式,减少提示输出
  • -r 分辨率:渲染分辨率,如 -r300
  • -dFirstPage=N -dLastPage=M:只处理指定页范围
  • -dPDFSETTINGS=/screen|/ebook|/printer|/prepress:PDF 压缩预设
  • -dCompatibilityLevel=1.5:指定输出 PDF 版本
  • -sPAPERSIZE=a4:指定纸张尺寸
  • -dNOSAFER:关闭沙箱(危险,仅在可信文件上使用)

实例

# PDF 转 300 DPI PNG(单页)
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300 \
   -dFirstPage=1 -dLastPage=1 -sOutputFile=page1.png input.pdf

# 每页导出一张 PNG
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r150 \
   -sOutputFile=page-%03d.png input.pdf

# 压缩 PDF(电子书质量)
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 \
   -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH -dSAFER \
   -sOutputFile=out.pdf input.pdf

# 提取第 3 到第 5 页
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
   -dFirstPage=3 -dLastPage=5 -sOutputFile=part.pdf input.pdf

# EPS 转 PDF
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
   -sOutputFile=figure.pdf figure.eps

ps2pdf、pdf2ps、eps2eps 等脚本都是 gs 的薄封装,处理常见转换时可以直接用它们。

参考链接