我正在尝试运行 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:\Windows\System32 文件夹中找到 lpr 程序。
当代码执行时,错误字符串为空,输出字符串包含以下内容(与命令运行时相同的输出lpr /?
)
输出:
将打印作业发送到网络打印机
用法:lpr -S 服务器 -P 打印机 [-C 类] [-J 作业] [-o 选项] [-x] [-d] 文件名
选项: -S 服务器 提供 lpd 服务的主机的名称或 IP 地址 -P 打印机 打印队列的名称 -C 类 用于突发页面的作业分类 -J 作业 用于在突发页面上打印的作业名称 -o 选项 表示类型文件(默认为文本文件) -x 与 SunOS 4.1.x 及之前的兼容性 -d 先发送数据文件
如果我完全按照代码中显示的方式复制和粘贴命令并将其粘贴到命令窗口中,即使它是应用程序打开的相同命令窗口,它也可以正常工作。
有没有人知道为什么会发生这种情况?提前致谢!