首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# - LPR命令打印PDF文件

C# - LPR命令打印PDF文件
EN

Stack Overflow用户
提问于 2017-09-21 20:19:39
回答 1查看 7K关注 0票数 1

我试图运行一个LPR命令打印PDF。我使用的代码是通过在windows窗体应用程序中单击按钮来执行的。

代码:

代码语言:javascript
复制
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 32文件夹中找到lpr程序。

当代码执行时,错误字符串为空,输出字符串包含以下内容(与命令运行时的lpr /?相同)

输出:

向网络打印机发送打印作业 用途: lpr -S server -P打印机-C类-o选项-d文件名 选项:提供lpd服务的主机的-S服务器名称或-P地址,提供lpd服务的-P打印机名称、打印队列中的-C类职务分类以供在突发页上使用的-J作业名称打印在-J页面上-o选项指示文件的类型(默认情况下假定为文本文件) -x与SunOS 4.1.x和以前的-d发送数据文件的兼容性

如果我完全按照代码中显示的那样复制和粘贴命令,并将其粘贴到命令窗口中,即使它是应用程序打开的相同的命令窗口,它也可以正常工作。

有人能洞察为什么会发生这种事吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-09-22 19:05:59

我想出了办法。如果它对其他人有帮助,那么正在工作的代码是

代码语言:javascript
复制
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();

注意,队列名和文件名被引号包围。我的另一个问题是,我最初是从电子邮件中复制命令的,所以破折号是错误的,我必须删除并手动键入命令中的破折号才能识别它。如果你仔细观察原来的问题,你会发现破折号稍微长了一点。

有关确保lpr命令可用的信息,特别是在64位计算机上运行32位应用程序时,请参见以下参考资料。

参考文献1:lpr command not working from my C# program in Win 7

参考文献2:http://www.tomshardware.com/forum/240019-44-error-windows

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46352551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档