我一直在尝试将PDF文件发送到我的打印机,以便在C#中使用GhostscriptProcessor进行打印。一切进展顺利,文件正在打印,但正在应用轻微缩放(大约1.1x - 1.05x),我无法找到指定顶边距或更改渲染PDF的最终尺寸的方法。 / p>
看起来打印机的页面大小与我渲染的页面大小不同。有没有办法规避这个?
这就是我所拥有的:
string printerName = "MIAUMIAUMIAU";
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("-dDuplex");
switches.Add("-dTumble=0");
switches.Add("-dNumCopies=1");
switches.Add("-sDEVICE=mswinpr2");
switches.Add("-sOutputFile=%printer%" + printerName);
switches.Add("-f");
switches.Add(inputFile);
processor.StartProcessing(switches.ToArray(), null);
}
答案 0 :(得分:1)
听起来像打印机的可打印区域,PDF文件的MediaBox略有不同。当渲染到位图(这是mswinpr2的工作方式)时,Ghostscript将缩放PDF,直到其声明的MediaBox与声明的打印机介质尺寸相匹配。