Magick.net конвертирует PDF в изображение, невозможно создать временный файл '': нет такого файла или каталога @ error / pdf.c / ReadPDFImage / 476

Я пытаюсь использовать Magick.net в консольном приложении для рендеринга изображений из PDF-файлов и не могу решить эту проблему.

После вызова «MagickImageCollection.Read (byte [], settings)» я всегда получаю

"невозможно создать временный файл": нет такого файла или каталога @ error / pdf.c / ReadPDFImage / 476 "

исключение.

Я пытался:

  • Размещение как x86, так и 64-битных dll Ghostscript в папке bin.
  • Использование комбинаций AnyCPU, x86, 64 версий Magick.net с версиями GS
  • Установка MagickNET.SetGhostscriptDirectory в папку с файлами программы 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();
                    }
                }
        }
    }

person Jorge Rodrigues dos Santos    schedule 11.11.2017    source источник


Ответы (1)


Мне наконец удалось преодолеть эту проблему, я передавал неправильные настройки чтения в MagickImageCollection.Read (byte [], settings).

Я говорил Magick читать PDF в формате PNG, а не записывать результат в PNG ...

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

Я чувствую себя немного глупо, но сообщение об ошибке полностью меня пропустило.

person Jorge Rodrigues dos Santos    schedule 13.11.2017