使用pdfprint.exe命令行工具打印订单

时间:2013-10-03 07:15:37

标签: .net c#-4.0 pdf printing

我在.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);
        }
    }

我的问题是文件的打印顺序与发送到打印机的顺序不同。有没有办法控制这个。我没有找到任何命令行参数。有没有办法将打印机配置为同步?所有的想法和提示都表示赞赏。

1 个答案:

答案 0 :(得分:2)

启动后尝试拨打Process.WaitForExit

如果它不起作用(verypdf在打印机开始打印之前自行关闭),请在启动过程后使用Thread.Sleep命令。尝试根据不同的情况(即份数,首次使用打印机,文件大小)设置超时时间。