C# Ошибка оболочки GhostScript с Rasterizer - PullRequest
0 голосов
/ 06 января 2020

Я создаю PDF для MemoryStream с помощью Spire. net. Я могу скачать PDF после его создания, и все в порядке. Однако, когда я передаю тот же MemoryStream в функцию GhostScript, чтобы преобразовать его в .png (используя оболочку GhostScript. Net), он не работает.

MemoryStream передается в растеризатор.Open () , но PageCount всегда равен 0, поэтому он не конвертирует и не сохраняет изображения:

MemoryStream pdfStream = new MemoryStream();
pdfStream = new MemoryStream(GetTemplate.CreatePDF(userID).ToArray()); //This is the PDF MemoryStream

GhostscriptVersionInfo version = new Ghostscript.NET.GhostscriptVersionInfo(new Version(0, 0, 0), "/bin/gsdll32.dll", string.Empty, Ghostscript.NET.GhostscriptLicense.GPL);
GhostscriptRasterizer rasterizer = null;
using (rasterizer = new GhostscriptRasterizer())
{
    rasterizer.Open(pdfStream , version, false);
    for (int i = 1; i <= rasterizer.PageCount; i++) //PageCount is always 0
    {
      using (MemoryStream ms = new MemoryStream())
      {
         Image img = rasterizer.GetPage(72, 72, i);
         img.Save(ms, ImageFormat.Png);
         ms.Close();
        //return "data:image/png;base64," + Convert.ToBase64String((byte[])ms.ToArray());
      }
    }
   rasterizer.Close();
}
...