GhostScript Pdf 转换图片 记录
PDF 转换图片
工作中碰到了pdf转换图片的需求,本来希望通过iTextSharp来进行转换,但通过Stackoverflow的文档,发现可以通过 GhostScript来实现,这里记录下
GhostScript 安装
这个通过官网的下载地址安装,我这里选择的wind 64 AGPL 的版本
下载下来为exe文件,安装就一路点击next即可。
命令行转换pdf
这里的命令行通过 powshell进行
'C:\Program Files\gs\gs9.54.0\bin\gswin64.exe' -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -o -dGraphicsAlphaBits=4 -r200 -sOutputFile=I:\PdfToImg\1111-%d.jpeg I:\PdfToImg\1111.pdf
其中 -sDEVICE 为输入的类型,这里设置为jgeg模式, -sOutPutFile就是转换后的文件名,其中 %d的意思就是将页码输出出来,这样多页的pdf就会输出多份图片,-r200就是DPI设置为200
当然了也可以通过输出png格式的图片类型,以下为png的输出
'C:\Program Files\gs\gs9.54.0\bin\gswin64.exe' -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 -r300 -sOutputFile=I:\PdfToImg\1111-%d.png I:\PdfToImg\1111.pdf
对比下,其实主要为输出的类型不一致,其它的都类似。
最终会在设置的output文件夹中看到转换后的图片
C#代码转换pdf
命令行可以之后,这里就开始C# console程序转换下
System.Diagnostics.Process gscProcess= new System.Diagnostics.Process(); gscProcess.StartInfo.WorkingDirectory = @"C:\Program Files\gs\gs9.54.0\bin\"; gscProcess.StartInfo.FileName = "gswin64.exe"; gscProcess.StartInfo.Arguments = @"-dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -o -dGraphicsAlphaBits=4 -r200 -sOutputFile=I:\PdfToImg\111221-%d.jpeg I:\PdfToImg\1111.pdf"; gscProcess.Start(); gscProcess.WaitForExit();
总结
以上就是pdf转换图片的总结,
参考之类如下:
https://stackoverflow.com/questions/1941118/converting-pdf-to-a-collection-of-images-on-the-server-using-ghostscript
https://www.ghostscript.com/
https://www.ghostscript.com/doc/9.54.0/Use.htm