.net 上的 Ghostscript 安装问题
Posted
技术标签:
【中文标题】.net 上的 Ghostscript 安装问题【英文标题】:Ghostscript installation issue on .net 【发布时间】:2020-08-06 10:22:55 【问题描述】:为了在我的 MVC C# 应用程序中安装 Ghostscript,我遵循了大量的 SO 指南,但我无法识别下面的代码。它一直说“找不到 GhostscriptRasterizer(您是否缺少 using 指令或程序集引用?)”
public ActionResult PDFToImages(string pdfFilePath)
//...
using (var rasterizer = new GhostscriptRasterizer())
//...
//...
我正在使用 Visual Studio,这是我已经尝试过的:
从https://www.ghostscript.com/download.html 获取.exe 文件并安装它。然后在我的项目中手动将 gsdll32.dll 包含为“内容”(菜单:添加现有项); 在 Visual Studio 上,转到“工具>NuGet 包管理器>管理 NuGet 包以获取解决方案”,然后由 Josip Habjan 安装 Ghostscript.NET。 同样在 NuGet 包管理器上尝试安装 Matthieu 的 Ghostscript dll - 出现错误“无法添加对 'gsdll32' 的引用。请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。” 在包管理器控制台上执行“Install-Package Ghostscript -Version 9.2.0”,也出现上述错误【问题讨论】:
我想 Ghostscript.NET 想要 64 位版本的 Ghostscript。尝试安装它。请阅读许可证以确保您遵守其规定。您还可以通过使用 ghostscript.net 标签而不是 ghostscript 标签来获得更多帮助。 @KenS 感谢您的回答。也尝试过没有运气。您能否确认我按照正确的程序安装 DLL?我已经在 Windows 上安装了 Ghostscript,然后转到 Visual Studio 右键单击我的项目并添加>现有项目并从安装文件夹 gs\gs9.52\bin\gsdll64.dll 中选择文件。 (也添加了建议的标签,谢谢) 很抱歉,我根本帮不了你,我不知道 ghostscript.net 是如何工作的。虽然我看不出为什么要将 DLL 添加到项目中,但我认为 ghostscript.net 使用系统环境变量加载了它。这是我建议添加 ghostscript.net 标签的原因之一,恐怕我对那个项目一无所知,它不是 Ghostscript 开源项目的一部分,它由不同的作者维护。 【参考方案1】:如果您的目标是直接使用 Ghostscript .NET,则无需从项目中引用原始 Ghostscript DLL(正如我所说,直到您愿意这样做)。
我使用 Visual Studio Community 2017 在 Windows 7 和 Windows 10 上测试了 Ghostscript .NET,只需执行以下步骤:
安装 Ghostscript 9.52 for Windows(32 位)。
使用 Nuget 包管理器,将 Ghostscript .NET 添加到我的解决方案中。
根据需要包括 using 代码行(主命名空间和 Rasterizer 应该可以工作,我还使用 Processor):
using Ghostscript.NET;
using Ghostscript.NET.Processor;
using Ghostscript.NET.Rasterizer;
我已经在一个新的控制台应用程序项目中签入了您提供的 using 子句(它使用了 Rasterizer 类),如果我之前执行这些步骤,则不会返回任何错误。
请再次尝试重复上述操作,如果您设法以这种方式使用 Ghostscript,请告诉我。
【讨论】:
以上是关于.net 上的 Ghostscript 安装问题的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在不安装的情况下引用 ghostscript DLL?