Python 2.7 使用Ghostscript指定PDF页面大小

Python 2.7 使用Ghostscript指定PDF页面大小,python-2.7,pdf,ghostscript,Python 2.7,Pdf,Ghostscript,我想在指定页面大小和方向的同时,使用Ghostscript将EPS文件转换为PDF。我可以将EPS文件转换为PDF文件: C:\Program Files (x86)\gs\gs9.19\lib>ps2pdf D:\temp\Dmap-396.eps D:\temp\result.pdf 但我无法更改页面大小或方向。我试着: ps2pdf D:\temp\Dmap-396.eps D:\temp\result.pdf -dDEVICEWIDTHPOINTS=734.4 -dDEVICEH

我想在指定页面大小和方向的同时,使用Ghostscript将EPS文件转换为PDF。我可以将EPS文件转换为PDF文件:

C:\Program Files (x86)\gs\gs9.19\lib>ps2pdf D:\temp\Dmap-396.eps D:\temp\result.pdf
但我无法更改页面大小或方向。我试着:

ps2pdf D:\temp\Dmap-396.eps D:\temp\result.pdf -dDEVICEWIDTHPOINTS=734.4 -dDEVICEHEIGHTPOINTS=475.2 -dFIXEDMEDIA
你知道如何更改PDF的页面大小和方向吗?我对其他工具持开放态度,特别是如果它们可以与Python脚本一起使用的话

最终,我想在Python脚本中运行这段代码,如下所示,但我得到了错误
无法恢复的错误:typecheck-in.putdeviceprops

from subprocess import check_output
from subprocess import call
from time import sleep

somecommand = "ps2pdf -dDEVICEWIDTHPOINTS=734.4 
    -dDEVICEHEIGHTPOINTS=475.2 -dFIXEDMEDIA -dPDFFitPage 
    D:\\temp\\Dmap-396-3-9.eps D:\\temp\\result.pdf".split(" ")

call(somecommand, shell=True)
~~~~~~~~~~~~~~~~~~~~~~~ 以下是我的工作Python脚本:

from subprocess import check_output
from subprocess import call
from time import sleep
import ghostscript

somecommand = "gswin32c -o D:\\temp\\output.pdf -dDEVICEWIDTHPOINTS=734.4 
-dDEVICEHEIGHTPOINTS=475.2 -sDEVICE=pdfwrite -f D:\\temp\\Dmap.eps".split(" ")
call(somecommand, shell=True)

使用-dDEVICEHEIGHTPOINTS和-dDEVICEHEIGHTPOINTS设置所需的介质,并设置-dFIXEDMEDIA。您提供的宽度/高度设置基本上是默认设置;它们会一直使用,直到输入请求其他内容。如果设置了FIXEDMEDIA,则它将成为固定的、不可更改的

您几乎可以肯定还需要设置-dPDFFitPage来缩放内容,以便原始媒体适合新媒体。否则,部分内容将从新尺寸的媒体上脱落


哦,开关的顺序很重要,它们必须在输入之前,在输入文件之后。不要使用ps2pdf shell脚本,而是使用Ghostscript本身。

我更改了选项的顺序,使其成为
ps2pdf-dDEVICEWIDTHPOINTS=734.4-ddeviceheighttpoints=475.2-dfexedmedia D:\temp\Dmap.eps D:\temp\result.pdf
但我得到了错误
无法恢复的错误:typecheck in.putdeviceprops
。我在Windows 7上遇到这个错误,当我在Ubuntu 14.04上输入它时,它运行得很好。我在我的问题中添加了Python脚本,我想开始工作,以便运行PDF创建。最好只使用Ghostscript,而不是ps2pdf shell脚本。如果没有其他原因,您可以确切地看到命令是什么。我认为你的问题是-d…点期望是整数,你不能有分数点。因此出现了打字错误。很酷,谢谢!我终于让它工作了。这是我的最后一个命令:
gswin32c-o output.pdf-dDEVICEWIDTHPOINTS=734.4-dDEVICEHEIGHTPOINTS=475.2-sDEVICE=pdfwrite-f Dmap.eps