字节笔记本字节笔记本

Ghostscript 命令行改写PDF文件的尺寸

2023-12-20

本文介绍了如何在Mac上安装Ghostscript并通过命令行使用它来改变PDF文件的尺寸,提供了通过官方网站和Homebrew两种安装方法,并详细说明了改写PDF尺寸的命令行参数。

在 Mac 上安装 Ghostscript 的步骤如下:

  1. 前往 Ghostscript 的官方网站:https://ghostscript.com/download/gsdnld.html
  2. 在“Stable Releases”部分下,找到适用于 macOS 的最新稳定版本。
  3. 单击相应的链接以下载 .pkg 安装程序文件。
  4. 双击下载的 .pkg 文件以启动安装程序。
  5. 按照屏幕上的说明完成安装过程。

安装完成后,你可以在终端中输入以下命令来验证 Ghostscript 是否已正确安装:

gs --version

你应该会看到类似以下内容的输出:

GPL Ghostscript 9.54.0

这表明 Ghostscript 已成功安装。

你还可以使用 Homebrew 来安装 Ghostscript。Homebrew 是一个流行的包管理器,可以轻松地在 Mac 上安装各种软件。要使用 Homebrew 安装 Ghostscript,请按照以下步骤操作:

  1. 安装 Homebrew。
  2. 在终端中输入以下命令:
brew install ghostscript

这将安装 Ghostscript 及其依赖项。

安装完成后,你可以在终端中输入以下命令来验证 Ghostscript 是否已正确安装:

gs --version

你应该会看到类似以下内容的输出:

GPL Ghostscript 9.54.0

这表明 Ghostscript 已成功安装。

无论你使用哪种方法安装 Ghostscript,都可以在终端中使用 gs 命令来运行它。例如,要将 PDF 文件 input.pdf 转换为 PostScript 文件 output.ps,你可以输入以下命令:

gs -sDEVICE=pswrite -o output.ps input.pdf

有关 Ghostscript 的更多信息,请参阅其官方手册:https://ghostscript.com/doc/current/Use.htm

接下来就可以使用如下的命令对PDF的尺寸进行改写:

gs \
-o output.pdf \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dPDFSETTINGS=/printer \
-dNOPAUSE \
-dQUIET \
-dBATCH \
-sPAPERSIZE=a2 \
-dPDFFitPage \
-dAutoRotatePages=/None \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f input.pdf
  • gs:这是 Ghostscript 的可执行文件的名称,它是一个用于处理 PostScript 和 PDF 文档的命令行工具。
  • -o output.pdf:此选项指定输出 PDF 文件的名称,在本例中为 output.pdf
  • -sDEVICE=pdfwrite:此选项指定输出设备为 PDF 写入器。
  • -dCompatibilityLevel=1.4:此选项将 PDF 输出的兼容性级别设置为 1.4,这与 Adobe Acrobat Reader 5.0 和更高版本兼容。
  • -dPDFSETTINGS=/printer:此选项使用打印机默认的 PDF 设置。
  • -dNOPAUSE:此选项禁用暂停提示,以便 Ghostscript 在遇到错误时不暂停。
  • -dQUIET:此选项禁用大多数警告和错误消息。
  • -dBATCH:此选项将 Ghostscript 置于批处理模式,以便它不显示图形用户界面。
  • -sPAPERSIZE=a2:此选项将纸张尺寸设置为 A2。
  • -dPDFFitPage:此选项将 PDF 页面大小调整为适合所选纸张尺寸。
  • -dAutoRotatePages=/None:此选项禁用自动旋转页面。
  • -c "<</PageOffset [0 0]>> setpagedevice":此命令将页面偏移量设置为 [0, 0],这对于某些打印机是必要的。
  • -f input.pdf:此选项指定要处理的输入 PDF 文件的名称,在本例中为 input.pdf

此命令将使用 A2 纸张大小和打印机默认的 PDF 设置将 input.pdf 转换为 output.pdf。它将在没有图形用户界面、不暂停错误和不显示大多数警告和错误消息的情况下执行此操作。