pdf转png

在项目开发中经常会有将“word转换为pdf”、“将word转换为图片”、将“pdf转换为图片” 的需求。

针对如上需求,写一下自己在这方面的实现:

1、word转换为pdf ,前面有文章已经写过,参考地址: http://blog.youkuaiyun.com/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(我已经下载过一个免安装版本,官方9.15版本 http://download.youkuaiyun.com/detail/catoop/8363115),这个建议大家使用官方最新版本。

(这里下载可以直接运行的版本 ghostscript-9.15-linux-x86_64.tgz ,下载解压后,直接复制到 /usr/bin 目录下,命名为gs 即可,如果/usr/bin目录下已经存在该文件,记得备份之前的文件后再拷贝过去)

安装成功后,输入命令 gs -version 如果有如下输出,说明安装成功,打印的是版本。

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. GPL Ghostscript 9.15 (2014-09-22)  
  2. Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.  

然后用如下命令转换输出一个pdf测试,命令:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf  

执行命令后,会有如下输出,其中Page为转换的页码,其他输出是因为一些字体问题而出现的数据,只要能输出到最后一页中间不中断,就说明文件解析转换成功,下面是我转换的一个文件的输出内容:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. GPL Ghostscript 9.15 (2014-09-22)  
  2. Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.  
  3. This software comes with NO WARRANTY: see the file PUBLIC for details.  
  4. Processing pages 1 through 38.  
  5. Page 1  
  6. Page 2  
  7. Page 3  
  8. Substituting font Helvetica for ArialMT.  
  9. Loading NimbusSanL-Regu font from %rom%Resource/Font/NimbusSanL-Regu... 5956124 4561384 9518216 8029777 3 done.  
  10. Substituting font Helvetica-Bold for Arial-BoldMT.  
  11. Loading NimbusSanL-Bold font from %rom%Resource/Font/NimbusSanL-Bold... 6013452 4628661 10043208 8183225 3 done.  
  12. Page 4  
  13. Page 5  
  14. Page 6  
至此,GhostScript 的安装和测试已经成功。

PS:关于 gs 命令的很多参数,需要的对照官网进行研究吧。很强大的。
 

二、ImageMagick 安装

下载安装 ImageMagick,官网下载地址:http://www.imagemagick.org/script/download.php ,其中有很多连接,找一个能下载的下载安装(都是国外网站,需要的就拨一下VPN吧)

安装成功后,使用命令 convert -version 查看ImageMagick 版本号,验证是否安装成功,如下:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [root@localhost ghostscript-9.15-linux-x86_64]# convert -version  
  2. Version: ImageMagick 6.5.4-7 2012-04-10 Q16 OpenMP http://www.imagemagick.org  
  3. Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC  

执行命令,进行pdf转换测试:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 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 处理,效率会高一些。


谢谢!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值