Ghostscript将Orientation从横向改为肖像

时间:2017-02-21 15:15:02

标签: ghostscript

我有一个PDF文件,我需要使用此命令GS将方向从横向更改为纵向。方向开关不改变方向。我需要添加额外的设置吗?

::Path to your Ghostscript EXE
set GSC="C:\Program Files (x86)\gs\gs9.16\bin\gswin32.exe"

%GSC% -sDEVICE=pdfwrite -sOutputFile="D:\TRANS\PDF\2_ZNOR_00000000000000000070.pdf" -dNOPAUSE -dEPSCrop -c "<</Orientation 3>> setpagedevice" -f "D:\TRANS\PDF\1_ZNOR_00000000000000000070.pdf"

2 个答案:

答案 0 :(得分:1)

它对我有用

List<string> switches = new List<string>
        {
            "-empty",
            "-dQUIET",
            "-dSAFER",
            "-dBATCH",
            "-dNOPAUSE",
            "-dNOPROMPT",
            "-dDEVICEHEIGHTPOINTS=612",
            "-dDEVICEWIDTHPOINTS=792",
            "-dFIXEDMEDIA",
            "-dFitPage",
            "-sDEVICE=pdfwrite",
            "-dAutoRotatePages=/None",
            "-sOutputFile=" + resultFilePath,
            "-c",
            "<</Orientation 1>> setpagedevice",
            "-f"
        };

        switches.Add(this.FilePath);

答案 1 :(得分:0)

您在那里使用的大多数开关都没有任何效果,您也没有做任何事情来旋转PDF文件。

首先要注意的是Ghostscript确实是这项工作的错误工具,它不会修改 PDF文件,它会生成全新的文件。该过程描述为here

如果输入是EPS文件,-dEPSCrop开关只有效果,否则它什么都不做。

setpagedevice的操作数不正确,当setpagedevice需要字典<>时,您传递空的十六进制字符串<<>>。即使这样,一本空字典也什么都不做。

我希望您打算放<</Orientation 1>> setpagedevice,但实际上这只是媒体匹配请求。为了让Ghostscript创建一个旋转的PDF文件,您必须更改媒体大小,将其设置为固定,并设置-dFitPage。您还必须将AutoRotatePages开关设置为None,以防止输出的自动重新定向,以使文本处于水平状态。

由于您尚未提供要查看的PDF文件,也​​未说明其介质尺寸,因此我只能猜测尺寸。但是,像是

gswin32c.exe -sDEVICE=pdfwrite -sOutputFile=new.pdf -dDEVICEHEIGHTPOINTS=612 -dDEVICEWIDTHPOINTS=792 -dFitPage -dAutoRotatePages=/None input.pdf