我正在尝试转换使用 xmgrace
制作的 .ps 文件(您可以猜到它是一条数据曲线)但是当我使用 ImageMagick
通过转换命令或带有选项 -format a4 或 -sPAPERSIZE=a4 的 ps2pdf
我最终遇到了同样的问题。
实际上,图像最终出现在我的 .pdf 文件的左上角,而页面的近 3/4 保持空白。我想调整它的大小以占据整个页面。
在 xmgrace 的打印设置中,我同时使用了 A4 格式和自定义默认格式,我有 2262x1729 pix
,两者都得到了相同的结果。
.ps文件头如下:
%!PS-Adobe-3.0
%%BoundingBox: 0 0 415 543
%%LanguageLevel: 2
%%Creator: Grace-5.1.22
%%CreationDate: Wed Dec 9 13:21:52 2015
%%DocumentData: Clean8Bit
%%Orientation: Landscape
%%Pages: 1
我看到触摸边界框限制可能是一种方法,但它似乎有风险并且不能解决问题,因为我必须对每个文件都这样做...... 我们的机器运行在 RedHat 上,实际上,我的主管(编译和使用同一台机器)没有像我这样的问题,也不能告诉我为什么。
我怀疑我的终端设置是问题的一部分,但我不确定。
编辑:感谢 KenS 的回答。我实际上设法使用 gs 来解决关于我得到的输出的问题,但我还发现使用 xmgrace 和 epstopdf 的 .eps 输出(而不是我的主管所做的 .ps 和 ps2pdf)也以另一种方式解决了问题。 由于(在我最初的猜测中)终端配置,xmgrace 的 .ps 输出很难使用,所以我想我不会再使用它们了。
最佳答案
您需要指定(对 Ghostscript)-dEPSFitPage 或者您需要让您的输出请求一个媒体大小(您没有说是否有,而且您没有发布大部分程序所以我无法判断).
更改 BoundingBox 注释不会有任何用处。要么 PostScript 解释器不对它们做任何事情(这是允许的,它们是注释),要么它将使用它们来设置页面大小,但由于您没有更改内容,您最终会遇到同样的问题。
您需要缩放内容(也可能翻译原点),如果程序请求媒体,您仍然可以让 Ghostscript 缩放它,但您需要设置 -dFIXEDMEDIA 和 -dFitPage 选项。 (设置 -dFitPage 可能是最简单的,即使文件是 EPS 而不是 PostScript)。
关于pdf - 将 postscript 转换为 a4 格式 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179436/