使用Ghostscript指定PDF页面大小

时间:2016-08-30 15:33:49

标签: 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 -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)

1 个答案:

答案 0 :(得分:1)

使用-dDEVICEHEIGHTPOINTS和-dDEVICEHEIGHTPOINTS设置所需的媒体,并设置-dFIXEDMEDIA。您提供的宽度/高度设置基本上是默认值;它们被使用,直到输入请求别的东西。如果你设置了FIXEDMEDIA,它就会变得固定,不可更改。

您几乎肯定想要设置-dPDFFitPage来缩放内容,以便原始媒体适合新媒体。否则,内容的某些部分将从新尺寸的媒体中消失。

哦,并且交换机的顺序很重要,它们必须之前输入,你将它们放在输入文件之后。而不是使用ps2pdf shell脚本,请使用Ghostscript本身。