使用 Ghostscript 将 PDF 的第一页转换为图像时,有时我会得到 "extra" space。为什么?

When converting first page of a PDF into an image using Ghostscript, sometimes I get "extra" space. Why?

我正在构建一个简单的脚本,它使用 Ghostscript 将 PDF 的第一页转换为图像。这是我使用的命令:

gs -q -o output.png -sDEVICE=pngalpha -dLastPage=1 input.pdf 

这适用于某些 PDF,例如如果我转换如下所示的 PDF 的第一页:

我实际上将第一页作为图像获取,没有任何问题。

但我注意到其他 PDF 的一些第一页,如下所示:

使用同样的gs命令,转换后的.png图片是这样的:

问题是当我转换该页面时,我在图像左侧得到了这个额外的白色 space,为什么 GhostsScript 会这样做?那多余的空白 space 是从哪里来的?

您的 PDF 很可能不会为 /MediaBox/CropBox 使用相同的值。有关与页面相关的这些技术术语的详细信息,请参阅 this illustration from the German Wikipedia:

换句话说:PDF 页面的 /CropBox 值(如果给定)决定了 PDF 查看器应该查看整个页面信息的哪个(较小)部分(在 /MediaBox 内)对用户(或打印机)可见。

解决方案

要确定图书所有页面的不同值,运行此命令:

pdfinfo -f 1 -l 1000 -box my.pdf

要仅查看第一页的这些值,运行

pdfinfo -l 1 -box my.pdf

要让 Ghostscript 给出您想要的结果,请将 -dUseCropBox 添加到您的命令行:

gs -q -o output.png -sDEVICE=pngalpha -dLastPage=1 -dUseCropBox input.pdf