Неустранимая ошибка при преобразовании PDF в PNG

Я пытаюсь преобразовать PDF в PNG, используя код, приведенный в следующем примере (первая функция): https://ghostscriptnet.codeplex.com/SourceControl/latest

Тем не менее, я получаю эту ошибку при запуске: "Произошла ошибка при вызове" gsapi_init_with_args ": -100"... что не много значит.

Почему этот базовый пример не работает? Я скачал последнюю версию Ghostscript.NET.dll здесь: https://ghostscriptnet.codeplex.com/ и добавил ее к ссылкам проекта. Моя ОС - Windows 7 x32 бит, и я запускаю VisualStudio от имени администратора.

Вот мой код:

private void button6_Click(object sender, EventArgs e)
{
    GhostscriptPngDevice devPNG = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png256);
    devPNG.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    devPNG.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    devPNG.ResolutionXY = new GhostscriptImageDeviceResolution(96, 96);
    devPNG.InputFiles.Add(@"D:\Public\FOS.pdf");
    devPNG.OutputPath = @"D:\Public\FOS.png";
    devPNG.Process();
}

1 ответ

Я попытался заменить путь ввода и вывода на один без пробела, и теперь он работает! Вот код, который я использовал в итоге:

using Ghostscript.NET.Rasterizer;

private void button6_Click(object sender, EventArgs e)
{
    int desired_x_dpi = 96;
    int desired_y_dpi = 96;

    string inputPdfPath = @"D:\Public\temp\rasterizer\FOS.pdf";
    string outputPath = @"D:\Public\temp\rasterizer\output\";

    using (var rasterizer = new GhostscriptRasterizer())
    {
        rasterizer.Open(inputPdfPath);
        for (var pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
        {
            var pageFilePath = Path.Combine(outputPath, string.Format("Page-{0}.png", pageNumber));
            var img = rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
            img.Save(pageFilePath + "ImageFormat.Png");
        }
    }
}

Попробуйте заменить любой символ странным (не буквенно-цифровыми и пробелами, оставьте путь к файлу "чистым" и в общей / временной папке, чтобы предоставить доступ любому пользователю / процессу, и все должно работать нормально

Другие вопросы по тегам