首页 > 代码库 > 转换pdf 为 png
转换pdf 为 png
在项目开发中经常会有将“word转换为pdf”、“将word转换为图片”、将“pdf转换为图片” 的需求。
针对如上需求,写一下自己在这方面的实现:
1、word转换为pdf ,前面有文章已经写过,参考地址: http://blog.csdn.net/catoop/article/details/42527349
2、word转换为图片,实现思路为 word——>pdf——>png 第一步转换参考前面写过的文章
3、pdf转换为图片,我们实现思路 pdf——>png
本文重点说一下 pdf 到 png 的转换:
首先我们要做如下准备:
1、GhostScript 安装
2、ImageMagick 安装
下面做一下分解:
一、GhostScript 安装和测试
我们先下载安装 GhostScript,官网地址:http://ghostscript.com/download/gsdnld.html
(这里下载可以直接运行的版本 ghostscript-9.15-linux-x86_64.tgz ,下载解压后,使用命令 alias gs=‘/opt/shanhy/ghostscript-9.15-linux-x86_64/gs-915-linux_x86_64‘ 配置一下别名,在配置别名之前,到 /usr/bin 下面检查一下是否已经有gs 文件,如果有可能是系统自带的,我们可以直接使用,也可以把gs文件修改一下名字 gs_bak 后再用 alias 配置别名)
安装成功后,输入命令 gs -version 如果有如下输出,说明安装成功,打印的是版本。
GPL Ghostscript 9.15 (2014-09-22) Copyright (C) 2014 Artifex Software, Inc. All rights reserved.
然后用如下命令转换输出一个pdf测试,命令:
gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf
执行命令后,会有如下输出,其中Page为转换的页码,其他输出是因为一些字体问题而出现的数据,只要能输出到最后一页中间不中断,就说明文件解析转换成功,下面是我转换的一个文件的输出内容:
GPL Ghostscript 9.15 (2014-09-22) Copyright (C) 2014 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 38. Page 1 Page 2 Page 3 Substituting font Helvetica for ArialMT. Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 5956124 4561384 9518216 8029777 3 done. Substituting font Helvetica-Bold for Arial-BoldMT. Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 6013452 4628661 10043208 8183225 3 done. Page 4 Page 5 Page 6至此,GhostScript 的安装和测试已经成功。
PS:关于 gs 命令的很多参数,需要的对照官网进行研究吧。很强大的。
二、ImageMagick 安装
下载安装 ImageMagick,官网下载地址:http://www.imagemagick.org/script/download.php ,其中有很多连接,找一个能下载的下载安装(都是国外网站,需要的就拨一下VPN吧)
安装成功后,使用命令 convert -version 查看ImageMagick 版本号,验证是否安装成功,如下:
[root@localhost ghostscript-9.15-linux-x86_64]# convert -version Version: ImageMagick 6.5.4-7 2012-04-10 Q16 OpenMP http://www.imagemagick.org Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
执行命令,进行pdf转换测试:
convert /opt/shanhy/testfile.pdf /opt/shanhy/testpdfpng/%d.$pic
至此,ImageMagick 安装和测试完成。
有的朋友可能会问,上面我们使用 ghostscript 已经可以转换文件图片,为什么还要安装ImageMagick呢?
这里解释一下:ImageMagick 的 convert 命令重点和强大之处是图片的处理能力,很多时候,我们需要直接对pdf转换出来的图片进行处理。这种情况下,使用 convert 命令会满足我们很多需求,关于 convert 命令的很多参数,大家查看关于 ImageMagick 的资料了解,这里也不做赘述。
另外说一下:convert 命令直接把pdf 转换为图片,是依赖的 ghostscript 库,所以 ghostscript 可以单独进行图片转换,而 convert 在安装ghostscript 之前,只能进行单独的图片处理,不能直接转换 pdf 为图片。
最后跟大家提一下,在我们的业务应用实现中,建议大家讲文件转换的命令写到shell 脚本中,使用程序调用脚本。虽然也可以通过代码调用 api 实现,不过我觉得还是使用系统的shell 处理,效率会高一些。
谢谢!
转换pdf 为 png