我正在使用GhostScript.NET.Processor dll发送pdf以从Web服务打印。我试图执行的代码是:
ThreadPool.QueueUserWorkItem(Sub()
Dim inputFile As String = "C:\WebServiceLog\checklist.pdf"
Dim printerName As String = "MIAUMIAUMIAU"
Using processor As New GhostscriptProcessor()
Dim switches As New List(Of String)()
switches.Add("-empty")
switches.Add("-dPrinted")
switches.Add("-dBATCH")
switches.Add("-dNOPAUSE")
switches.Add("-dNOSAFER")
switches.Add("-dDuplex")
switches.Add("-dTumble=0")
switches.Add("-dNumCopies=1")
switches.Add("-sDEVICE=mswinpr2")
switches.Add(Convert.ToString("-sOutputFile=%printer%") & printerName)
switches.Add("-f")
switches.Add(inputFile)
processor.StartProcessing(switches.ToArray(), Nothing)
End Using
End Sub)
我一直收到的错误是 调用'gsapi_new_instance'时发生错误:-100
我正在运行64位。对此问题的任何帮助将不胜感激。
答案 0 :(得分:0)
-empty不是Ghostscript选项(虽然它可能与.NET代码有关,但我不知道)。
我要做的第一件事是尝试从命令行使用Ghostscript和完全相同的命令行参数,我建议这更有可能告诉你是否有任何错误。您还应该检查Ghostscript是否向stderr或stdout发送了任何内容(几乎可以肯定 已经发送了一些东西,而且您还没有引用输出)
如果确实失败了,请通过逐个删除一个参数直到它工作,或者通过减少到最小值并一次添加一个参数来简化命令行,直到它没有。
请注意,您提供的许多选项(例如-dTumble和-dDuplex)对mswinpr2设备无效。
答案 1 :(得分:0)
供将来参考。这是IIS权限。我将这些更改为可以访问打印机的帐户后,一切正常。