0

I tried below ghostscript command to print pdf with landscape orientation over network printer but got portrait printout. Please help me to find out solution.

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);   
4

1 回答 1

0

PDFFitPage 将定向输出以使其最适合媒体,因此如果您选择了纵向纸张,则 PDFFitPage 会将内容(忽略其他说明)旋转为纵向。

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

于 2016-06-06T15:48:10.847 回答