Tag: ghostscriptsharp

是什么导致Ghostscript返回-100的错误?

所以,我使用的是Matthew Ephraim的GhostscriptSharp ,它是我的ASP.Net MVC项目中非托管Win32 Ghostscript DLL的简单C#包装器。 一些背景: 我试图做的是让用户上传PDF,然后将该文档转换为图像,然后我可以保存到我选择的任何目录中(以及做一些其他OOP以将新图像绑定到我的网站) 。 我决定使用Ephraim先生的包装类(GhostscriptSharp)因为它很简单易用,它让我可以相对干净地访问DLL的API。 为了测试它,我创建了一个虚拟的C#控制台应用程序,以确保我可以加载DLL,访问它,在本地磁盘上传送PDF文件,然后让它将JPG写入同一本地磁盘。 经过一些学习经历,我获得了成功。 我会把它交给C:\ INPUT.pdf,它会递给我C:\ OUTPUT.jpg。 但是,在将我在控制台应用程序中使用的GhostScriptSharp代码集成到我的ASP.NET MVC项目中到我使用P / invoke调用DLL的位置之后,Ghostscript将返回int /错误代码-100 ,这是致命错误(在GhostScript源代码中称为E_Fatal )。 我通过HTML表单上传的文件得到了相同的结果,如果我把它与我在工作控制台应用程序中使用的完全相同的硬编码路径。 作为参考,抛出exception的行在GhostScriptSharp.cs中是93-97(在CallApi函数中): int result = InitAPI(gsInstancePtr, args.Length, args); if (result < 0) { throw new ExternalException("Ghostscript conversion error", result); } 显然抛出了exception,因为result是-100 。 当调用InitAPI时,实例ptr是一个有效的int (虽然我不知道GS的实例是否正确),args的长度为20(是一个string[] )的有效GhostScript选项(包括正确转义到我的输入和输出文件的路径)。 长话短说,我做错了什么? 错误代码-100似乎是一个全能,因为没有文档说明这里可能出错的地方。 非常感谢任何帮助,谢谢你提前。