6

我想使用 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="外部组件抛出异常。"
  来源="ImageMagickNET"
  错误代码=-2147467259
  堆栈跟踪:
       在 Magick.Image.{ctor}(Image* , basic_string\,std::allocator >* )
       在 ImageMagickNET.Image..ctor(字符串 imageSpec)
       在 C:\Users\PANKAJ\Documents\Visual Studio 2008\Projects\Test1\Test1\Default.aspx.cs: 31 中的 Test1._Default.Button1_Click(Object sender, EventArgs e)
       在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       在 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument)
       在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)
       在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串 eventArgument)
       在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)
  内部异常:
4

2 回答 2

1

ImageMagick 需要 GhostScript 来解释 PDF 文件。如果您愿意,可以直接调用 GhostScript dll(通过我的个人资料与我联系,我将向您发送 ac# 包装器)

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

于 2010-02-01T11:12:51.080 回答
1

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);
        }
}
于 2018-04-10T04:33:00.673 回答