这段代码如何在ghostscript中导致-100错误

时间:2016-05-31 10:51:02

标签: vb.net ghostscript


我正在使用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位。对此问题的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

-empty不是Ghostscript选项(虽然它可能与.NET代码有关,但我不知道)。

我要做的第一件事是尝试从命令行使用Ghostscript和完全相同的命令行参数,我建议这更有可能告诉你是否有任何错误。您还应该检查Ghostscript是否向stderr或stdout发送了任何内容(几乎可以肯定 已经发送了一些东西,而且您还没有引用输出)

如果确实失败了,请通过逐个删除一个参数直到它工作,或者通过减少到最小值并一次添加一个参数来简化命令行,直到它没有。

请注意,您提供的许多选项(例如-dTumble和-dDuplex)对mswinpr2设备无效。

答案 1 :(得分:0)

供将来参考。这是IIS权限。我将这些更改为可以访问打印机的帐户后,一切正常。