如何将多个不同大小的PostScript文件转换为单个PDF?

时间:2013-01-24 00:31:08

标签: ghostscript

我正在使用类似于此的命令:

gswin32c.exe -dNOPAUSE -dBATCH -q -dSAFER -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="path/output.pdf" <PSfiles>

这给了我一个pdf文档,每个PS文档都表示为一个页面。但是,页面大小不能很好地转换。原始的PS文件都是不同的大小,每个得到的pdf页面都被切割成相同的大小,看起来像风景A4。

当我使用完全相同的命令转换单个PS文件时,将保留页面大小。因此,似乎因为所有PS文件都被发送到相同的pdf,所以它们必须具有相同的页面大小并且我丢失了内容。无论如何仍然使用单个命令来保留文档大小?

更新:我最初使用的是GS 8.63,但是我下载了9.06并且遇到了同样的问题。 另外,我把问题缩小了。似乎有一个特定的PS文件(称之为problemFile.ps)导致问题,因为只要我排除problemFile.ps,我就可以成功运行命令。如果它是命令行中包含的最后一个文件,它只会导致问题。我无法发布整个文件,但是我应该看看有哪些潜在的问题吗?

Update2:好吧我说有一个特定的问题文件是错误的。看来,命令行中包含的最后一个文件的页面大小设置了所有结果页面的最大页面大小。

1 个答案:

答案 0 :(得分:1)

只要每个PostScript文件(或实际上每个页面)实际请求不同的媒体大小,生成的PDF文件就会满足请求。我知道这至少用于工作,我已经测试过了。

但是,您的命令行中有一些内容可能需要重新考虑:

1)在调查GS的问题时,使用-q,这将阻止Ghostscript告诉您可能有用的东西。

2)不要使用-dPDFSETTINGS,除非您已阅读相关文档并了解每个参数设置的含义。

3)您可能想要关闭AutoRotatePages,或者至少将其设置为/ PageByPage

我的猜测是你的PostScript文件不会请求媒体大小,因此使用默认媒体。当然,如果没有看到一个例子,我无法分辨。

请注意,您也没有说明您使用的是什么版本的Ghostscript。