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

Pdf 如何使用Ghostscript设置自定义页面大小,pdf,ghostscript,Pdf,Ghostscript,我以600 dpi,~9.36x12.67英寸的速度扫描了一些材料,并以PostScript(PS)格式准备 现在,当我尝试使用Ghostscript(GS)将PS转换为PDF时,我得到了剪裁输出,因为我假设GS的默认页面大小设置为A4。我在这里找到了可用的GS模板:但没有一个模板与我的PS文件的维度非常匹配,因此: 我可以指示GS输出自定义尺寸吗?如果可以,如何输出 -sPAPERSIZE指令似乎只接受预定义的模板名称,如链接文档中所示。您可以使用-gnnnxmmm设置使用的页面大小,其中NN

我以600 dpi,~9.36x12.67英寸的速度扫描了一些材料,并以PostScript(PS)格式准备

现在,当我尝试使用Ghostscript(GS)将PS转换为PDF时,我得到了剪裁输出,因为我假设GS的默认页面大小设置为A4。我在这里找到了可用的GS模板:但没有一个模板与我的PS文件的维度非常匹配,因此:

我可以指示GS输出自定义尺寸吗?如果可以,如何输出


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

您可以使用
-gnnnxmmm
设置使用的页面大小,其中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-sDEVICE=pdfwrite-r720-g4308x6066-dPDFFitPage-o out.pdf in.pdf

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


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

我使用的是GhostPDL9.10。虽然我的纸张大小8.5x13列在“flsa”中“-sPAPERSIZE=flsa”开关无效,但纸张大小仍为字母。正确的单位为
-g5100x7800交换机与my-r600(非720)匹配-g工作。

我发现
gs
正在剪切我的输出,尽管我已将页面强制为最大的标准大小A0

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


解决方案是给
groff
命令行标志
-p-P48i,48i
-p
告诉
groff
将其余选项传递给
grops
-P48i,48i
to
grops
将纸张大小设置为48英寸乘48英寸。

我想您希望使用
-r720
实现720dpi。不管怎样,谢谢你的回答我有一个使用Ghostscriptsharp(C#实现)的应用程序。它只是一个.dll,没有自定义页面大小的所有命令行选项(我可以找到)。有没有关于如何在这个包装器中实现这个的想法?rasterizer.CustomSwitches.Add(“-dMySwitch”);链接断了。固定链接:
gs                   \
   -o output.pdf     \
   -sDEVICE=pdfwrite \
   -r600             \
   -g8112x7596       \
   -dPDFFitPage      \
    input.ps