我在.NET应用程序中使用pdfprint.exe(http://www.verypdf.com/app/pdf-print-cmd/index.html)。我正在循环中打印几个pdf文件和每个文件的几个副本。代码如下所示,这个方法在循环中调用:
private bool PrintFile(string file, string printer, short copies)
{
try
{
this.log.Debug("Send command to verypdf...");
var info = new ProcessStartInfo
{
FileName = this.veryPdfExe,
Arguments = string.Format(@"-printer ""{0}"" -printermargins -mergeprintjobs -copies {1} ""{2}""", printer, copies, file),
CreateNoWindow = true
};
this.log.Debug(info.Arguments);
var process = new Process { StartInfo = info };
process.Start();
return true;
}
catch (Exception ex)
{
this.log.Error(ex);
throw new LabelMakerException("Failed to print file: " + file);
}
}
我的问题是文件的打印顺序与发送到打印机的顺序不同。有没有办法控制这个。我没有找到任何命令行参数。有没有办法将打印机配置为同步?所有的想法和提示都表示赞赏。
答案 0 :(得分:2)
启动后尝试拨打Process.WaitForExit。
如果它不起作用(verypdf在打印机开始打印之前自行关闭),请在启动过程后使用Thread.Sleep命令。尝试根据不同的情况(即份数,首次使用打印机,文件大小)设置超时时间。