GhostScript PS 到带图像的 PDF 仅在 Visual Studio 中的调试模式下有效

GhostScript PS to PDF with images only work during debug mode in Visual Studio

我正在尝试使用 Ghostscript 将 ps 文件(带图像的 word 文件)转换为 pdf。

当我调试我的代码并单步执行它时一切正常,它生成带有文本、图像和诸如此类的 pdf。但是当我使用 Visual Studio 安装项目部署应用程序时,它不起作用并给我这个错误 "An error occured when call to 'gsapi_new_instance' is made: -100."

这是我的命令行参数

var args = string.Format("-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=\"{1}\" -c save pop -f \"{0}\"",输入文件,@"C:\MedirefPrinter\converted\out.pdf");

知道为什么这不起作用吗?谢谢

实际代码:

File Changed Handler

ShellCommand

请原谅我的笨拙:)

移至答案以允许更多文字。

错误的可能原因有以下三种:

1) 'instance' 指针为 NULL。我看不出我们的可执行文件是如何实现的,因为它是一个全局定义的变量,可执行文件传递了它的地址。这是针对 Ghostscript API.

编写代码的人员的完整性检查

2) 应用程序无法为某些内部结构分配足够的内存。同样,这似乎不太可能,因为您的系统内存不足。

3) DLL 实例数已经是 1 或更大。如果 DLL 在多个进程之间共享,就会发生这种情况。除非您使用 GS_THREADSAFE 构建库,否则它不是线程安全的,因此您不能让多个进程使用同一个 DLL 实例。我猜这是你的问题,但显然你没有提供完整的代码集,所以我不知道。如果您尝试从同一目录同时 运行 多个 Ghostscript 副本,那么您将收到此错误。

error -100 表示“很早就发生了非常糟糕的事情,我什至无法告诉你它是什么”。

我非常怀疑 PostScript 中图像的存在会产生任何实际影响,除非它可能会减慢解释速度,导致您尝试启动两个进程。