0

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

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:好的,我说有一个特定的问题文件是错误的。似乎命令行中包含的最后一个文件的页面大小设置了所有结果页面的最大页面大小。

4

1 回答 1

1

只要每个 PostScript 文件(或实际上是每个页面)实际请求不同的媒体大小,那么生成的 PDF 文件就会接受这些请求。我知道这至少曾经有效,我已经测试过了。

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

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

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

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

我的猜测是您的 PostScript 文件不要求媒体大小,因此使用默认媒体。当然,我不能不看一个例子来判断。

注意你也没有说你使用的是什么版本的 Ghostscript。

于 2013-01-24T08:37:29.607 回答