【问题标题】:GhostScript PS to PDF with images only work during debug mode in Visual StudioGhostScript PS to PDF with images 仅在 Visual Studio 的调试模式下工作
【发布时间】:2016-07-29 12:08:16
【问题描述】:

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

当我调试我的代码并单步执行时,一切正常,它会生成包含文本、图像和诸如此类的 pdf。但是当我使用 Visual Studio 安装项目部署应用程序时,它不起作用并给我这个错误“调用 'gsapi_new_instance' 时发生错误:-100。”

这是我的命令行参数

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

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

实际代码:

File Changed Handler

ShellCommand

请原谅我的菜鸟:)

【问题讨论】:

  • 您要将其部署到哪里?机器是否安装了ghostscript?
  • Windows 工作站。是的,我安装了 32 位和 64 位的 ghostscript。
  • 这将有助于查看实际的命令行,而不仅仅是参数。您使用的是 32 位还是 64 位 Ghostscript ?您如何调用 Ghostscript 可执行文件?如果您使用的是 C# 或类似的东西,那么您没有使用 Ghostscript。您可能正在使用 Ghostscript.NET。在这种情况下,您可能应该知道许可。 Ghostscript 在 AGPL 下获得许可,如果您计划“部署”使用它的软件,您需要确保遵守该许可的条款。
  • 嗨@KenS,是的,我知道许可。我们只是在实际“购买”产品之前对产品进行测试。但我认为这不是重点。要点是,带有图像的 Postscripts 仅在调试模式下被正确解释。当我提到“已部署”时,我只是使用我所做的示例应用程序创建了一个安装程序并对其进行了测试。而且,我确实尝试过同时使用 32 位和 64 位的 Ghostscript。
  • 更新了原帖并附上了一些图片。

标签: c# pdf ghostscript postscript


【解决方案1】:

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

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

1) 'instance' 指针为 NULL。我看不出我们的可执行文件是如何实现的,因为它是一个全局定义的变量,并且可执行文件传递了它的地址。这是针对使用 Ghostscript API 编写代码的人的健全性检查。

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

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

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

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

【讨论】:

  • 不错!这对我帮助很大。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 2012-10-25
相关资源
最近更新 更多