使用Ghostscript库时,是否需要在用户机器上安装Ghostscript?

When using Ghostscript library, does Ghostscript need to be installed on the user machine?

我想在 .NET C# 中使用 Ghostscript 托管库。这个需要在机器上安装Ghostscript吗

我们不能在我的测试应用程序中包含此 gsdll32.dll 作为参考以删除此依赖项吗?

是的,您可以绕过安装 GhostScript。您可以将 gs32.dllgs64.dll 放在任何地方,但您应该添加 HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript.21 注册表项:

  • GS_DLL gs32.dll 文件的路径
  • GS_LIB 图书馆的路径 = 这是来自您的设置的 Libraries\GS\Fonts

最好用安装程序安装,复制常用文件,然后更改注册表并卸载。当然卸载你会丢失你的注册表项(之前只是重命名)

是的,我使用此代码调用 DLL 而不是强制安装 ghostscript(适用于 x86 和 x64 机器):

const string DLL_32BITS = "gsdll32.dll";
const string DLL_64BITS = "gsdll64.dll";

//select DLL based on arch
string NomeGhostscriptDLL;
if (Environment.Is64BitProcess)
{
    NomeGhostscriptDLL = DLL_64BITS;
}
else
{
    NomeGhostscriptDLL = DLL_32BITS;
}

GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(NomeGhostscriptDLL);

using (var rasterizer = new GhostscriptRasterizer())
{
    rasterizer.Open(e.FullPath, gvi, true);

    and so on...

P.S.: 记得将两个 dll 复制到输出目录

如果您将 Ghostscript 作为您应用程序的一部分,您必须遵守 AGPL 的条款。这意味着您自己的应用程序必须获得 AGPL 许可,或者您必须寻求商业许可。

如果您提供 Ghostscript 库,但没有包括许可证和可以获得 Ghostscript 源代码的详细信息,那么您就违反了许可证。

是的,这仅涵盖 DLL。嘘,在我看来(因为你谈论 'your application')就像你违反了许可证,当然除非你的应用程序也根据 AGPL 获得许可。