2017-11-11 194 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; 

我覺得有點傻,但是完全錯誤消息通過我。

相關問題