2017-11-11 70 views
0

我想在控制台应用程序中使用Magick.net进行渲染来自PDF的图像,似乎无法解决这个问题。Magick.net将PDF转换为图像“无法创建临时文件”:没有这样的文件或目录@ error/pdf.c/ReadPDFImage/476“

当打电话 “MagickImageCollection.Read(字节[],设置)” 我总是得到一个

“无法创建临时文件 '':没有这样的文件或目录@ 错误/ pdf.c/ReadPDFImage/476“

异常。

我曾尝试:

  • bin文件夹放置在x86和64位的DLL的Ghostscript。
  • 使用AnyCPU,86组合,64个版本Magick.net的,与GS
  • 版本设置MagickNET.SetGhostscriptDirectory到Program Files GS bin文件夹
  • 设置MagickNET.SetTempDirectory在C文件夹:/ TEMP并确认我的应用程序可以通过编程方式访问那里的文件。
  • 设置MagickAnyCPU.CacheDirectory到一个文件夹在C:/ TEMP

我出的什么我可以做的想法错了

using (MagickImageCollection images = new MagickImageCollection()) 
    { 
     // Add all the pages of the pdf file to the collection 
     images.Read(file, settings); 

     switch (orientation) 
     { 
      case Orientation.Horizontal: 
       using (MagickImage image = (MagickImage)images.AppendHorizontally()) 
       { 
        using (MemoryStream ms = new MemoryStream()) 
        { 
         image.Write(ms); 

         return ms.ToArray(); 
        } 

       } 
      case Orientation.Vertical: 
       using (MagickImage image = (MagickImage)images.AppendHorizontally()) 
       { 
        using (MemoryStream ms = new MemoryStream()) 
        { 
         image.Write(ms); 

         return ms.ToArray(); 
        } 
       } 
     } 
    } 

回答

0

我终于设法解决这个问题,我将错误的读取设置传递给MagickImageCollection.Read(byte [],settings)。

我告诉Magick读取与PNG格式的PDF而不是结果写入PNG ...

MagickReadSettings settings = new MagickReadSettings(); 
settings.Format = MagickFormat.Png; 

我觉得有点傻,但是完全错误消息通过我。

相关问题