Что заставляет Ghostscript возвращать ошибку -100?

Итак, я использую Matthew Ephraim's GhostscriptSharp , который представляет собой простую оболочку C # для неуправляемой библиотеки Win32 Ghostscript в моем ASP.Net MVC проект. Немного предыстории:

Я пытаюсь попросить пользователя загрузить PDF-файл, а затем преобразовать этот документ в изображение, которое я затем могу сохранить в любом каталоге, который я выберу (а также сделаю некоторые другие ООП, чтобы привязать это новое изображение к моему сайту).

Я решил использовать класс оболочки г-на Эфраима ( GhostscriptSharp), потому что он был достаточно простым в использовании и дает мне относительно чистый доступ к API DLL.

Чтобы проверить это, я создал фиктивное консольное приложение C #, чтобы убедиться, что я могу загрузить DLL, получить к ней доступ, передать ей файл PDF на локальный диск, а затем заставить его записать JPG на тот же локальный диск. После нескольких опытов по обучению я добился успеха. Я бы передал ему C: \ INPUT.pdf, он передал бы мне C: \ OUTPUT.jpg.

Однако после интеграции кода GhostScriptSharp, который у меня был в консольном приложении, в мой проект ASP.NET MVC до точки, в которой я вызывал DLL с помощью P / invoke, Ghostscript возвращает код int / error -100 , что является фатальной ошибкой (в исходном коде GhostScript называется E_Fatal ). Я получаю тот же результат как с файлом, который загружен через форму HTML, так и с теми же жестко заданными путями, которые я использовал в своем рабочем консольном приложении.

Для справки, строки, которые являются исключением выброшены 93-97 в GhostScriptSharp.cs (который находится в функции CallApi ):

int result = InitAPI(gsInstancePtr, args.Length, args);

if (result < 0) {
  throw new ExternalException("Ghostscript conversion error", result);
}

Очевидно, исключение выбрасывается, потому что результат равен -100 .

Когда вызывается InitAPI, экземпляр ptr является допустимым int (хотя я не знаю, правильный экземпляр GS или нет), args имеет длину 20 (это строка [] ) допустимых параметров GhostScript (включая правильно экранированные пути к моим входным и выходным файлам).

Короче говоря, что я делаю не так ? Код ошибки -100 кажется универсальным, потому что нет документации, в которой указывается, что здесь может быть не так.

Любая помощь приветствуется, заранее спасибо.

16
задан Mattygabe 2 December 2010 в 21:58
поделиться