【问题标题】:Process.StartInfo.Arguments "Network Printer Name" not workingProcess.StartInfo.Arguments“网络打印机名称”不起作用
【发布时间】:2014-01-02 19:51:58
【问题描述】:

我想在我的打印服务器上放置的网络打印机上打印 PDF 文件。 我编写了下面的代码,它仅适用于本地打印机。当我使用网络打印机名称时,它不起作用。

 Dim ProcessoImp As New Process
    Dim VerToUse As String
    VerToUse = "PrintTo"
    ProcessoImp.StartInfo.CreateNoWindow = False
    ProcessoImp.StartInfo.Verb = VerToUse
    ProcessoImp.StartInfo.FileName = PrintFileList(i)
    ProcessoImp.StartInfo.Arguments = "\\PrintServerMachine\samsung laser"
    ProcessoImp.Start()
    ProcessoImp.WaitForExit(10000)
    ProcessoImp.CloseMainWindow()
    ProcessoImp.Close()

请记住,如果我使用本地打印机,它可以完美工作,但如果它是网络打印机,它就无法工作!

我能做些什么来解决这个问题?

【问题讨论】:

  • 如果你把它放在引号里,它是否有效,例如:Arguments = """\\PrintServerMachine\samsung laser"""
  • 我按照@StevenDoggart 说的做了,但是没有用...
  • 会出现任何错误吗?
  • 不,它只是不打印。
  • 我也试过了:“PrintServerMachine 上的三星激光”就像出现在我的 Windows 打印机中一样,但它不起作用...

标签: vb.net printing network-printers


【解决方案1】:

很可能,您没有足够的权限通过 Visual Studio 打印到该网络打印机。您可以尝试冒充其他用户或提升当前用户访问级别以允许在该网络打印机上打印。

或者,您应该尝试使用 printing.PrintDocument 类。

这是一个重复的问题:Printing from ASP.NET to a network printer

【讨论】:

  • 您好,我已经解决了这个问题:我删除了行:ProcessoImp.StartInfo.Arguments = "\\PrintServerMachine\samsung laser" 然后,添加了行:Shell(String.Format ("rundll32 printui.dll,PrintUIEntry /y /n ""{0}""", "\\printermachine\samsung laser")) 将此打印机设置为windows上的默认打印机,效果很好!
猜你喜欢
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 2011-04-12
  • 2013-01-22
相关资源
最近更新 更多