在LANDSCAPE中使用GhostScript打印PDF

时间:2015-07-01 10:34:31

标签: c# pdf printing landscape ghostscript

我正在打印PDF文件,如下所示:

using (GhostscriptProcessor processor = new GhostscriptProcessor())
{
    List<string> switches = new List<string>();
    switches.Add("-empty");
    switches.Add("-dPrinted");
    switches.Add("-dBATCH");
    switches.Add("-dNOPAUSE");
    switches.Add("-dNOSAFER");
    switches.Add("-dNumCopies=1");
    switches.Add("-sDEVICE=mswinpr2");
    switches.Add("-sOutputFile=%printer%" + printerName);
    switches.Add("-f");
    switches.Add(inputFile);
    processor.StartProcessing(switches.ToArray(), null);
}

它工作得很漂亮,但我有一个问题。我不能(并且真的尝试)在横向打印任何PDF文件。我尝试使用Orientation,调整大小,更改打印机的系统首选项。我做的任何事都是徒劳的,因为它总是以人像印刷。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你想解决什么问题?如果您试图让打印机在横向介质上打印,并且这不是默认设置,那么mswinpr2设备无法正常工作,无法更改托盘选择。

答案 1 :(得分:0)

尝试类似:

using (GhostscriptProcessor processor = new GhostscriptProcessor())
{
    List<string> switches = new List<string>();
    switches.Add("-empty");
    switches.Add("-dPrinted");
    switches.Add("-dBATCH");
    switches.Add("-dNOPAUSE");
    switches.Add("-dNOSAFER");
    switches.Add("-dNumCopies=1");
    switches.Add("-sDEVICE=mswinpr2");
    switches.Add("-sOutputFile=%printer%" + printerName);
    switches.Add("-c");
    switches.Add("<</Orientation 3>> setpagedevice");
    switches.Add("-f");
    switches.Add(inputFile);
    processor.StartProcessing(switches.ToArray(), null);
}