Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Imagemagick将PDF转换为C#格式的任何图像格式_C#_.net_Imagemagick_Ghostscript_File Conversion - Fatal编程技术网

无法使用Imagemagick将PDF转换为C#格式的任何图像格式

无法使用Imagemagick将PDF转换为C#格式的任何图像格式,c#,.net,imagemagick,ghostscript,file-conversion,C#,.net,Imagemagick,Ghostscript,File Conversion,这是我在这里的第一个问题,所以请不要对我太苛刻:)不管怎样,让我们开始吧: 对于应用程序,我需要将PDF文件转换为图像文件(具体格式不重要,但最好是png或jpg)。为了做到这一点,我尝试使用ImageMagick,但当我尝试转换任何内容时,它将抛出一个错误。 现在,经过一些研究,我得出结论,我需要安装Ghostscript,我试图从Visual Studio 2017中集成的NuGet软件包管理器中获得Ghostscript。无论如何,当我尝试安装上述软件包时,它会抛出以下错误: 严重性代码说

这是我在这里的第一个问题,所以请不要对我太苛刻:)不管怎样,让我们开始吧:

对于应用程序,我需要将PDF文件转换为图像文件(具体格式不重要,但最好是png或jpg)。为了做到这一点,我尝试使用ImageMagick,但当我尝试转换任何内容时,它将抛出一个错误。 现在,经过一些研究,我得出结论,我需要安装Ghostscript,我试图从Visual Studio 2017中集成的NuGet软件包管理器中获得Ghostscript。无论如何,当我尝试安装上述软件包时,它会抛出以下错误:

严重性代码说明项目文件行抑制>状态 添加对“gsdll32”的引用时出错。 请确保该文件可访问,并且是有效的>程序集或COM组件

我正试图使用Visual Studio 2017和C#来实现这一点。我使用的API包括:
+Magick.NET-Q16-AnyCPU V7.11.1
+GhostScriptSharp V1.3.1.4
+Ghostscript V9.2.0(抛出错误)

如果需要了解我正在尝试的内容,以下是我正在尝试编译的代码:

using ImageMagick.Configuration;
using ImageMagick.Defines;
using ImageMagick.ImageOptimizers;
using ImageMagick;

using GhostscriptSharp;
using GhostscriptSharp.Settings;
我是不是遗漏了一些关于GhostScipt安装的信息?它是否仅在直接从GhostScript网站下载时才起作用

我希望我已经为我的问题提供了足够的背景,我将期待着任何关于这个问题的答案

非常感谢

亲切问候,, Melvin

是的,GhostScript是以这样一种方式获得许可的,人们不会将其包含在包装器/NUGET中。你需要确保你有dll

通常,您必须下载它(
gsdll32.dll
),将其添加到项目中,并将其输出到您的输出路径(或类似的内容,如安装),以便您的应用程序可以找到并加载
gsdll32.dll


另外请注意,您还需要适当的咬合度

谢谢您的快速回复。我现在已经直接下载了Ghostscript,它确实随gsdll32.dll一起提供。当我尝试将其添加为引用时(右键单击解决方案资源管理器中的引用并将其添加为引用),但这会引发与以前相同的错误。我对这一级别的编程相当陌生,所以在哪里可以找到这个输出路径?最后,对于bitness,我假设您是指x32、x64等?@MelvinWinthagen从将dll放在输出目录开始,看看如果输出目录是C:\Users\Melvin\source\repos\FactUrconVersionTest\FactUrconVersionTest\bin\Debug,是否正常,它仍然抛出相同的错误。我也尝试过下载x64版本,但这也会引发相同的错误。将它放入dll子文件夹也没有产生任何结果不幸的是快速更新:我发现了一个不同的api,它也提供了我需要的功能,所以我现在就使用它。但是谢谢你的时间!
        public MagickImageCollection PDFOutput;
        public Image Current;
        public org.pdfclown.documents.Page CurrentPage;

        private void BtnConvert_Click(object sender, EventArgs e)
        {
            if(openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    ImageMagick.MagickNET.Initialize();
                    MagickReadSettings Settings = new MagickReadSettings();
                    Settings.Density = new Density(300, 300);
                    Settings.Format = MagickFormat.Jpg;

                    using (MagickImageCollection Images = new MagickImageCollection())
                    {
                        Images.Add(openFileDialog1.FileName);
                        int Page = 1;
                        int i = 0;
                        foreach(MagickImage Image in Images)
                        {
                            Image.Write("FilePage #" + Page);
                            PDFOutput[i] = Image;
                            Page++;
                            i++;
                        }
                        MessageBox.Show(PDFOutput.Count.ToString());
                    }
                }
                catch(Exception E)
                {
                    MessageBox.Show(E.Message);
                }