使用 gsprint 打印时如何设置 collate = true
Posted
技术标签:
【中文标题】使用 gsprint 打印时如何设置 collate = true【英文标题】:how set collate = true while printing using gsprint 【发布时间】:2015-10-17 08:30:29 【问题描述】:public void PrinterThread(string printerName, string fileName, bool portrait,string Copies)
string gsArguments, gsLocation;
ProcessStartInfo gsProcessInfo;
Process gsProcess;
if (portrait)
//gsArguments = string.Format("-dAutoRotatePages=/All -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -dFIXEDMEDIA -dPDFFitPage -dEmbedAllFonts=true -dSubsetFonts=true -dPDFSETTINGS=/prepress -dNOPLATFONTS -noquery -dNumCopies=" + Copies + " -all -colour -printer \"0\" \"1\"", printerName, fileName);
gsArguments = string.Format("-dAutoRotatePages=/ALL -dNOPAUSE -dBATCH -dPreserveOverSettings=/false -dNumCopies=" + Copies + " -printer \"0\" \"1\"", printerName, fileName);
// gsArguments = string.Format("-ghostscript \"0\" -copies=2 -all -printer \"0\" \"1\"", printerName, fileName);
// gsArguments = string.Format("-noquery -portrait -printer \"0\" \"1\"",
//printerName, fileName);
gsLocation = @"C:\Users\gokul.das\Desktop\Silent_Print\Silent_Print\bin\Debug\gsview\gsprint.exe";
else
gsArguments = string.Format("-dAutoRotatePages=/All -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -dFIXEDMEDIA -dPDFFitPage -dEmbedAllFonts=true -dSubsetFonts=true -dPDFSETTINGS=/prepress -dNOPLATFONTS -sFONTPATH=\"C:\\Program Files\\gs\\gs9.10\\fonts\" -noquery -dNumCopies==" + Copies + " -all -colour -printer \"0\" \"1\"", printerName, fileName);
//gsArguments = string.Format("-noquery -landscape -printer \"0\" \"1\"",
// printerName, fileName);
gsLocation = @"C:\Users\gokul.das\Desktop\Silent_Print\Silent_Print\bin\Debug\gsview\gsprint.exe";
gsProcessInfo = new ProcessStartInfo();
gsProcessInfo.WindowStyle = ProcessWindowStyle.Hidden;
gsProcessInfo.FileName = gsLocation;
gsProcessInfo.Arguments = gsArguments;
gsProcess = Process.Start(gsProcessInfo);
//gsProcess.WaitForExit();
【问题讨论】:
【参考方案1】:你需要按照你想要的方式设置打印机默认值,你不能(在香草版本中)让 gsprint 设置整理。
当然,您也可以修改 gsprint 以接受新的命令行参数并使用它来控制打印机分页。
NB AutoRotatePages 和 PDFSETTINGS 对 pdfwrite 设备没有影响(因此不适用于任何物理打印机),PreserveOverprint 对任何设备都没有影响。 PDFFitPage 仅在输入为 PDF 文件时才有效。
【讨论】:
你能给我示例如何传递该参数吗? 您需要修改 gsprint C 源以接受新参数,并使用其值在打印结构中设置适当的成员。检查现有的源代码,它已经为其他参数这样做了。 我有同样的问题,我尝试在我的 windows 打印机中设置默认打印机设置中的排序规则,但是当我发送 -dNumCopies 参数的值大于 1 时它不起作用。跨度>以上是关于使用 gsprint 打印时如何设置 collate = true的主要内容,如果未能解决你的问题,请参考以下文章
如何设置数据库的LC_COLLATE, LC_CTYPE, ENCODING, TEMPLATE