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

Posted

技术标签:

【中文标题】此代码如何在 ghostscript 中导致 -100 错误【英文标题】:How does this code cause a -100 error in ghostscript 【发布时间】:2016-05-31 10:51:02 【问题描述】:

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

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

【问题讨论】:

What is causing Ghostscript to return an error of -100?的可能重复 【参考方案1】:

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

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

如果确实失败了,可以通过一次删除一个参数直到它起作用,或者通过减少到最小值并一次添加一个直到它不起作用来简化命令行。

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于此代码如何在 ghostscript 中导致 -100 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ghostscript 在 Postscript 中导入 png 文件?

O2 中导致未定义符号的 gcc 优化标志

在调试时如何知道哪些代码在xv6中导致陷阱?

Angularfire2 在 Angular2 中导致 SystemJS 错误

为啥 Excel 中的自动调整行 VBA 代码不断在我的公式中导致 #value 错误?

UISearchDisplayController autorelease 如何在不同的视图控制器中导致崩溃?