Ghostscript.net 打印 pdf 页面方向

Ghostscript.net print pdf page orientation

我在 ghostscript 命令下尝试通过网络打印机以 横向 方向打印 pdf,但得到纵向打印输出。请帮我找出解决办法。

GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(new Version(0, 0, 0), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "gsdll32.dll"), string.Empty, GhostscriptLicense.GPL);
Ghostscript.NET.Processor.GhostscriptProcessor processor = new Ghostscript.NET.Processor.GhostscriptProcessor(gvi, true);
List<string> switches = new List<string>();
switches.Add("-empty");
switches.Add("-dPrinted");
switches.Add("-dBATCH");
switches.Add("-dNOPAUSE");
switches.Add("-dNOSAFER");
switches.Add("-dNOPROMPT");               
switches.Add("-dPDFFitPage");  
switches.Add("-dNumCopies=" + copies.ToString());
switches.Add("-sDEVICE=mswinpr2");
switches.Add(Convert.ToString("-sOutputFile=%printer%") + printer);
switches.Add("-c");
switches.Add("<</Orientation 3>> setpagedevice");
switches.Add("-f");
switches.Add(pdfFileName);

processor.StartProcessing(switches.ToArray(), null);   

PDFFitPage 将调整输出方向使其最适合介质,因此如果您选择了纵向纸张,PDFFitPage 会将内容(忽略其他说明)旋转为纵向。

处理此问题的一种方法是使用 -dFIXEDMEDIA 和 -dDEVICEHIGHTPOINTS 以及 -dDEVICEWIDTHPOINTS 来设置媒体大小,以设置特定的固定媒体大小。然后执行 PDFFitPage 将使内容适合该纸张大小