Неустранимая ошибка при преобразовании 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");
}
}
}
Попробуйте заменить любой символ странным (не буквенно-цифровыми и пробелами, оставьте путь к файлу "чистым" и в общей / временной папке, чтобы предоставить доступ любому пользователю / процессу, и все должно работать нормально