首先,请注意,并非多页 PostScript 文件中的每一页都会显示完全相同的“边界框”值(事实上,这种情况很少见)。因此,您可能想找出所有可能的边界框(包括所有边界框)的共同点。
其次,您在运行时在控制台窗口中看到的是标准输入和标准输出输出通道gs -sDEVICE=bbox
的混合。但是,您要获取的信息将发送到stderr。如果将命令输出重定向到文件,则捕获的是stdout,而不是stderr!要禁止将某些版本和调试信息转到stderr ,请添加到命令行。-q
因此,为了获得所有页面边界框的“干净*”输出,您必须首先重定向 stderr通道,然后将其捕获到文件info.txt中。所以运行这样的命令(或类似的):
gs \
-dBATCH \
-dNOPAUSE \
-q \
-sDEVICE=bbox \
example.ps \
2>&1 \
| tee info.txt
甚至这个,如果您不需要有关以下内容的信息HiResBoundingBox
:
gs \
-dBATCH \
-dNOPAUSE \
-q \
-sDEVICE=bbox \
example.ps \
2>&1 \
| grep ^%%Bound \
| tee info.txt
另外,顺便说一句,请注意,可以确定 PostScript 以及 PDF 输入文件的边界框。
这应该为您提供如下输出,其中每一行代表输入文件的一个页面,从第一行的第 1 页开始:
%%BoundingBox: 36 18 553 802
%%BoundingBox: 37 18 553 804
%%BoundingBox: 36 18 553 802
%%BoundingBox: 37 668 552 803
%%BoundingBox: 40 68 532 757
最后,您可能需要阅读以下答案,了解有关 Ghostscriptbbox
设备的一些背景信息。您还可以在那里找到一些用于裁剪作业的替代 PostScript 代码: