如何使用C#和ImageMagick将PDF转换为图像?

我想使用C#和magicknet.dll将PDF文件转换为.GIF。 我已将MagickNet Dll的引用添加到我的项目中。

MagickNet.Magick.Init(); MagickNet.Image img = new MagickNet.Image("d:/aa.pdf"); img.Write("d:/bb.gif"); MagickNet.Magick.Term(); img.Dispose(); 
用户代码未处理System.Runtime.InteropServices.SEHException
   Message =“外部组件抛出exception。”
  来源= “ImageMagickNET”
  错误码= -2147467259
  堆栈跟踪:
       在Magick.Image。{ctor}(Image *,basic_string \,std :: allocator> *)
       在ImageMagickNET.Image..ctor(String imageSpec)
       在Test1._Default.Button1_Click(Object sender,EventArgs e)中的C:\ Users \ PANKAJ \ Documents \ Visual Studio 2008 \ Projects \ Test1 \ Test1 \ Default.aspx.cs:第31行
       在System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       在System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       在System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       在System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)
       在System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       在System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
  的InnerException: 

ImageMagick需要GhostScript来解释PDF文件。 如果你想要你可以直接调用GhostScript DLL(通过我的个人资料与我联系,我会发给你ac#wrapper)

或者,您可以使用GhostScript命令行或商业第三方组件,例如Tall Components的PDF库。

Magic.Net是流行库ImageMagick的C#端口。 使用来自url https://www.nuget.org/packages/Magick.NET-Q16-AnyCPU/的 Nuget包安装Magick.net。 这样你就可以使用C#了。 见下面的代码

请注意,它将垂直附加图像。 类似地,您可以水平追加,即替换图像。水平附近

 using ImageMagick; string inputPdf= @"C:\my docs\input.pdf"; string outputPng= @"C:\my docs\output.png"; using (MagickImageCollection images = new MagickImageCollection()) { images.Read(inputPdf); using (IMagickImage vertical = images.AppendVertically()) { vertical.Format = MagickFormat.Png; vertical.Density = new Density(300); vertical.Write(outputPng); } }