1

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

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

4

1 回答 1

2

启动后尝试调用Process.WaitForExit 。

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

于 2013-10-03T12:39:01.903 回答