如何使用Ghostscript设置自定义页面大小

时间:2012-10-01 14:35:12

标签: pdf ghostscript

我已经扫描了一些600 dpi,~9.36x12.67英寸的材料,并以PostScript(PS)格式编写。

现在,当我尝试使用Ghostscript(GS)将PS转换为PDF时,我得到剪辑输出,因为我假设GS的默认页面大小设置为A4。我在这里找到了GS的可用模板:http://www.ghostscript.com/doc/9.06/Use.htm#Known_paper_sizes但没有一个与我的PS文件的尺寸紧密匹配,所以:

我可以指示GS输出自定义大小,如果是,如何输出?

-sPAPERSIZE指令似乎只接受预定义的模板名称,如链接文档中那样。

4 个答案:

答案 0 :(得分:27)

您可以使用-gNNNNxMMMM设置使用的页面大小,其中NNMN是像素中720 dpi(720像素== 1英寸)的宽度,MMMM是以像素为单位的高度(以像素为单位) 720 dpi。

或者您可以使用-dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h在PostScript (72点== 1英寸)中设置自定义尺寸。

如果我没错, 9.36英寸≈= 674点 12.67英寸≈= 912点

您还必须应用-dPDFFitPage才能使您的输入适合页面。

所以你可以使用

gs                          \
   -o output.pdf            \
   -sDEVICE=pdfwrite        \
   -dDEVICEWIDTHPOINTS=674  \
   -dDEVICEHEIGHTPOINTS=912 \
   -dPDFFitPage             \
    input.ps

gs                   \
   -o output.pdf     \
   -sDEVICE=pdfwrite \
   -r600             \
   -g8112x7596       \
   -dPDFFitPage      \
    input.ps

答案 1 :(得分:3)

对我有用的是什么:

gs -sDEVICE=pdfwrite -r720 -g4308x6066 -dPDFFitPage -o out.pdf in.pdf

4308x6066是像素数,-r720是每英寸像素数。

所以这里我们有720dpi,所以例如5英寸,这将是3600像素。

答案 2 :(得分:1)

我正在使用GhostPDL 9.10。虽然我的纸张尺寸为8.5x13,但在http://ghostscript.com/doc/7.07/Use.htm#Known_paper_sizes列为" flsa" " -sPAPERSIZE = flsa"开关没有效果,纸张尺寸仍然是Letter。正确的单位 -g5100x7800交换机匹配my -r600(不是720); -g工作。

答案 3 :(得分:1)

我发现gs正在削减我的输出,即使我已将页面强制为最大标准尺寸A0。

原因是gs / groff发送给grops的PostScript文档包含一个覆盖Ghostscript选项的%%DocumentMedia规范。

解决方案是给groff命令行标志-p-P48i,48i-p告诉groff将选项的其余部分传递给grops-P48i,48igrops将纸张尺寸设置为48英寸x 48英寸。