首页 > 代码库 > 转换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