天道酬勤

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

 

posted @ 2021-04-01 14:29  JulyLuo  阅读(1738)  评论(0编辑  收藏  举报