使用ghostscript缩放PDF文件

时间:2016-10-24 16:59:34

标签: pdf ghostscript

我们的系统只需8.5 x 11个PDF文件,并为它们做些事情。有时客户会将我们的文件操作到正确的形状。我们正在努力将非标准大小的PDF文件自动扩展为8.5 x 11。

我们已经能够处理我们用ghostscript测试过的大多数文件,但我们有一个客户提交的文件,我们无法处理。 (不幸的是,我们无法重新创建条件,当然也无法发布客户的数据。)

该文件为PDF v1.7,包含七个8.5x11页面,后面是四页25.5 x 45.33英寸。我不知道它们是如何生成的(每个pdfinfo都是Adobe Acrobat 10.1.2)。

我们已经逐渐向gs命令添加了一系列参数,直到我们到达:

gs -sDEVICE=pdfwrite -sOutputFile=$final_file -dBATCH -dNOPAUSE -sPAPERSIZE=letter -q -r720 -g6120x7920 -dPDFFitPage -dFIXEDMEDIA $files_to_convert

这似乎适用于我们的其他文件,但对于这个ONE文件,25.5 x 45.33页面不会缩放到字母大小。以下是每个pdfinfo的输出文件第7页和第8页的测量值:

Page 7 size: 612 x 792 pts (letter) Page 7 rot: 0 Page 8 size: 1836 x 3264 pts Page 8 rot: 0

我已经读过PostScript有Policy,PageSize选项,但我不知道PDF有这样的事情。如果它存在,我不知道如何使用ghostscript改变它。

如何确保所有页面都缩放到字母?

1 个答案:

答案 0 :(得分:1)

嗯,Ghostscript使用PostScript作为脚本语言,所以你可以在PostScript中做任何你可以做的PDF文件。

确实不会将-g与pdfwrite一起使用,因为-g指定像素,因为pdfwrite是一个效果不佳的矢量设备。请改用DEVICEHEIGHTPOINTS和DEVICEWIDTHPOINTS。

也不要设置-sPAPERSIZE,你不能将媒体设置为一个地方的字母和不同的东西(-g开关)。

在没有看到它的情况下,你真的无法告诉你PDF文件到底发生了什么,你还没有真正解释出错了什么。您暗示页面没有缩放,但您没有说明它们的大小。在Acrobat中查看时,您也没有说明为什么您认为这些页面的大小是“合法的”。

如果你说有问题的网页是“合法的”但是媒体要大得多,那么这完全是可能的,并且会建议网页有一个CropBox。 Ghostscript使用MediaBox来处理页面大小,Acrobat使用了大量不同的框,但通常默认使用CropBox。

如果你想让Ghostscript使用CropBox,那就告诉它reducer.js

或者在某处发布一个例子,我可以看一下。