У меня есть этот код для преобразования pdf в tif, он быстрее, чем библиотека ImageMagick, поэтому я должен его использовать. Все работает хорошо, но когда я устанавливаю x и y dpi , это всегда игнорируется. Я пробовал разные версии NuGet GhostScript, и я также пробовал разные версии ghostscript.exe, но проблема по-прежнему
Вот мой код:
var xDpi = 300; //set the x DPI
var yDpi = 300; //set the y DPI
using (var rasterizer = new GhostscriptRasterizer()) //create an instance for GhostscriptRasterizer
{
rasterizer.Open(fileName); //opens the PDF file for rasterizing
int PdfPages = rasterizer.PageCount;
for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
{
//set the output image(png's) complete path
string outputPNGPath = Path.Combine(fileNameResultDirectory, "00" + pageNumber.ToString() + ".tif");
//converts the PDF pages to png's
Image pdf2PNG = rasterizer.GetPage(xDpi, yDpi, pageNumber);//it gets ignored here.
//save the png's
pdf2PNG.Save(outputPNGPath, ImageFormat.Tiff);
}
}
Также пробовал:
rasterizer.CustomSwitches.Add("-r300x300");
Также пробовал:
private static void Test()
{
var localGhostscriptDll = Path.Combine(Environment.CurrentDirectory, "gsdll64.dll");
var localDllInfo = new GhostscriptVersionInfo(localGhostscriptDll);
int desired_x_dpi = 160;
int desired_y_dpi = 160;
string inputPdfPath = @"d:\d.pdf";
string outputPath = @"d:\Test\test.jpg";
GhostscriptRasterizer _rasterizer = new GhostscriptRasterizer();
_rasterizer.Open(inputPdfPath, localDllInfo, false);
for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++)
{
string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".png");
Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
img.Save(pageFilePath, ImageFormat.Png);
}
_rasterizer.Close();
}
В этом случае я вручную добавил gsdll32.dll в этот путь среды .. \ bin \ debug Но я получаю эту ошибку: Ghostscript. NET .GhostscriptException: «Невозможно создать делегат экспортируемой функции для символа« gsapi_revision »»
Любая идея, почему значения x и y dpi игнорируются, а в свойствах устанавливается значение 96 или 120 как вертикальное / горизонтальное разрешение. Я ценю любую помощь.