我试图运行LPR命令打印PDF文件。 我正在使用的代码正从Windows窗体应用程序的按钮点击执行。
码:
var command = @"lpr –S 192.168.1.245 –P DAILY C:\Test.pdf";
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.RedirectStandardError = true;
procStartInfo.CreateNoWindow = true;
// start process
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
// read process output
string cmdError = proc.StandardError.ReadToEnd();
string cmdOutput = proc.StandardOutput.ReadToEnd();
该程序运行为x64的程序,所以它可以找到在C LPR程序:\ windows \ system32目录。
当代码执行错误字符串是空的,而输出字符串包含以下(相同的输出,如果该命令运行一直lpr /?
输出:
将打印作业发送到网络打印机
用法:LPR -S服务器-P打印机[-C类] [-J作业] [-o选项] [-x] [-d]的文件名
选项:-s服务器名称或主机上突发页-J工作职位名称使用提供打印队列-C级职位分类的LPD服务-P打印机名称打印突发页-o选项上的ip地址指示的类型该文件(默认假定一个文本文件)-x兼容性用的SunOS 4.1.x的和现有-d发送数据文件中的第一
如果我复制和粘贴准确的命令,因为它出现在代码并将其粘贴到一个命令行窗口,即使是相同的命令窗口打开的应用程序,它工作正常。
没有人有任何深入了解为什么这会发生? 提前致谢!