我試圖運行LPR命令來打印PDF。我正在使用的代碼是在Windows窗體應用程序中單擊按鈕執行的。C# - 用於打印PDF文件的LPR命令
代碼:
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();
程序運行時爲64位程序,所以它可以找到在C LPR程序:\ windows \ system32目錄。
當代碼執行錯誤字符串是空的,而輸出字符串包含以下(相同的輸出,如果該命令運行一直lpr /?
)
輸出:
發送一個打印作業到網絡打印機
用法:LPR -S服務器-P打印機[-C類] [-J作業] [-o選項] [-x] [-d]的文件名
個選項: -S服務器名稱或主機的ip地址提供LPD服務 打印隊列 -C級職位分類對突發頁 -J工作職位名稱使用-P打印機名稱打印 突發頁-o選項指示文件的類型(默認假定一個文本文件) 用的SunOS 4.1.x的和現有 -x兼容性-d發送數據文件的第
如果我複製並粘貼準確命令,因爲它出現在代碼中並粘貼到命令窗口中,即使它是應用程序打開的SAME命令窗口,它也能正常工作。
有沒有人有任何洞察,爲什麼會發生這種情況?提前致謝!
替換由LPR cmd並把參數的其餘部分進入proc.Parameters屬性 – Bestter
我試圖調用LPR直接而不是通過CMD,如@Bestter建議,但得到完全相同的輸出。 –