使用 Ghostscript 指定 PDF 页面大小

Specifying PDF page size with 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 -dDEVICEHEIGHTPOINTS=475.2 -dFIXEDMEDIA

您知道如何更改 PDF 的页面大小和方向吗?我对其他工具持开放态度,特别是如果它们可以与 Python 脚本一起使用。

最终我想在 Python 脚本中 运行 这段代码,如下所示,但我收到错误 Unrecoverable error: 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。您提供的 width/height 设置本质上是默认设置;在输入请求其他内容之前使用它们。如果您设置 FIXEDMEDIA 然后它变成固定的,不可更改的。

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

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