此代码如何导致 ghostscript 中的 -100 错误




我正在使用GhostScript.NET.Processor dll发送pdf以从Web服务打印。我尝试执行的代码是:

ThreadPool.QueueUserWorkItem(Sub()
       Dim inputFile As String = "C:WebServiceLogchecklist.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 位。关于这个问题的任何帮助将不胜感激。

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

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

如果失败,请简化命令行,方法是一次删除一个参数,直到它起作用,或者减少到最小值并一次添加一个参数,直到它不起作用。

请注意,您提供的许多选项(例如 -dTumble 和 -dDuplex)对 mswinpr2 设备没有任何影响。

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

最新更新