我已经创建了打印假脱机应用程序来异步打印pdf。
(应用程序使用veryPDF命令从网络打印机打印)
以下是代码
var procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", " /c" + "E:\pdfprint_cmd\pdfprint.exe -$ 388444444448350FA394 E:\PrintSpoolerApplication\PrintSpoolerApplication\bin\Debug\45940.pdf");
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
procStartInfo.Verb = "runas";
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
var proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
// Some stuff但它并没有等待WaitForExit代码。它确实执行了(这里//一些东西),即使我的文档在打印机队列中。
有没有其他方式可以在打印完成时通知?
发布于 2016-11-23 20:16:05
您的代码等待cmd.exe完成,这(可能)在作为子进程启动pdfprint.exe之后立即终止。我建议你
pdfprint.exe (为什么这里需要Windows命令行?)但是,这两种方法仅在pdfprint.exe实际等待排定的打印作业完成时才有效。我不知道这个工具,所以我不知道它是不是这样的。如果没有,您将不得不访问打印队列,这是不推荐的(正如Hans在他的评论中指出的)。
发布于 2017-03-21 06:08:08
下面是你可能不得不采取的If-Everything-Else-Fails方法(如果pdfprint.exe不等到终止完成)。它很难看,但它会工作的:
就像我说的,它并不漂亮(除非你没有追索权,否则你不应该使用它)……但它可以完成工作。我不得不使用这种方法来处理通过网络复制的传入文件(当文件传入时,您需要对其进行处理,但您需要知道在接触文件之前文件已完成复制,因为PDF一打开就会锁定,然后文件复制将失败)。
发布于 2017-03-21 23:49:48
你试过这个吗?
procStartInfo.LoadUserProfile = true;
https://stackoverflow.com/questions/40764093
复制相似问题