Как использовать ghostscript для преобразования PDF в tif
Я попытался конвертировать PDF в tif-изображения с помощью ImageMagick, но он работает очень медленно с большими файлами. Теперь я попробовал использовать ghostscript, он отлично работает из power-shell, но не выполняется с c# asp.vet VS19.
Вот команда, которая работает:
gswin64c.exe -dNOPAUSE -r300 -sDEVICE=tiffscaled24 -sCompression=lzw -dBATCH -sOutputFile="C:\Users\name\Desktop\images\Result\ %d.tif" "C:\Users\name\Desktop\images\DropHere\New folder\name.pdf"
для этого вам понадобится папка ghostscript exe и intallatipm.
Но мой c# не работает. Никакой ошибки или чего-то еще, он просто проходит через метод шаг за шагом, ничего не происходит.
Что я уже пробовал:
public void ExtracImagesFromPdf(string fileName, string fileNameResultDirectory) { string ghostScriptPath = @"C:\Program Files\gs\gs9.50\bin\gswin64.exe"; String ars = " - dNOPAUSE -sDEVICE=jpeg -r102.4 -o" + "C:\\Users\\syousif\\Desktop\\images" + "%d.jpg -sPAPERSIZE=a4 " + fileNameResultDirectory; Process proc = new Process(); proc.StartInfo.FileName = ghostScriptPath; proc.StartInfo.Arguments = ars; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; proc.Start(); proc.WaitForExit(); }
ОПЕРАЦИОННАЯ
// System.Environment.CurrentDirectory = @"C:\Program Files\gs\gs9.50\bin\"; // String ars = "-dNOPAUSE -r300 -sDEVICE=tiffscaled24 -sCompression=lzw -dBATCH -sOutputFile=\"" + fileNameResultDirectory + "\" -%d.tif \"" + fileName + "\""; // string line = ".\\c:\\gswin64c.exe " + ars; //var res = System.Diagnostics.Process.Start("gswin64c.exe", ars);
Я тоже попробовал этот способ:
public void ExtracImagesFromPdf(string fileName, string inputpath) { GhostscriptPngDevice img = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png16m); img.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4; img.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4; img.ResolutionXY = new GhostscriptImageDeviceResolution(200, 200); img.InputFiles.Add(inputpath); //img.Pdf.FirstPage = 1; //img.Pdf.LastPage = 1; img.PostScript = string.Empty; img.OutputPath = @"C:\Users\name\Desktop\images\Result"; img.Process(); }
Но я получаю эту ошибку:
An error occured when call to 'gsapi_init_with_args' is made: -100 at the last line