linux系统pdf转图片

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

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

1、word转换为pdf ,可以参考地址: http://blog.csdn.net/catoop/article/details/42527349

本文主要讲pdf 转成 图片:

首先我们要做如下准备:

1、GhostScript 安装

2、ImageMagick 安装

下面做一下分解:

一、GhostScript 安装和测试

我们先下载安装 GhostScript,官网地址:http://ghostscript.com/download/gsdnld.html(我已经下载过一个免安装版本,官方9.15版本 http://download.csdn.net/detail/catoop/8363115),这个建议大家使用官方最新版本。

安装也可以使用 yum -y install ghostscript

ghostscript的依赖包,在系统盘Packages中可以找到

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

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

[root@localhost www]# gs -version
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc.  All rights reserved.

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

1. gs -sDEVICE=tiffg4 -sOutputFile=igs.tiff -dMaxStripSize=8192 igs.pdf
命令1. 自动生成的像素大小1728x2292

2. gs -q -r204x196 -g1728x2156 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=tiffg4 -sOutputFile=igs1.tiff -- igs.pdf
命令2. 手动指定了像素大小1728x2156,-r204x196 -g1728x2292 参数等同于 -sPAPERSIZE=a4。
3. gs -q -r204x196 -g1728x2156 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=tiffg3 -sOutputFile=igs2.tiff -- igs.pdf
命令2.和3.的区别:
输出的fax压缩格式不一样,文件的大小不一样,此处测试文件结果:igs1.tiff大小约为5Kb,而igs2.tiff为24Kb。

gs -dNOSAFER -r300 -dBATCH -sDEVICE=pngalpha -dNOPAUSE -dEPSCrop -sOutputFile=testfilepng/%d.png testfile.pdf

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

    "-dQUIET",    安静的意思,指代执行过程中尽可能少的输出日志等信息。(也可以简写为“-q”)
    "-dNOSAFER",    通过命令行运行
    "-dBATCH",    执行到最后一页后退出
    "-dNOPAUSE",    每一页转换之间没有停顿
    "-dNOPROMPT",    没有相关提示                       
    "-dFirstPage=1",    从第几页开始
    "-dLastPage=5",     到第几页结束  
    "-sDEVICE=pngalpha",    转换输出的文件类型装置,默认值为x11alpha
    "-g720x1280",    图片像素(-g<width>x<height>),一般不指定,使用默认输出
    "-r300",    图片分辨率(即图片解析度为300dpi),默认值好像是72(未测试证实)
    "-sOutputFile=/opt/shanhy/error1png/%d.png",    图片输出路径,使用%d或%ld输出页数

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

二、ImageMagick 安装

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

还可以使用 yum -y install ImageMagick

ImageMagick的依赖包,在系统盘Packages中可以找到

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

[root@localhost www]# convert -version
Version: ImageMagick 6.7.8-9 2019-02-01 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP    

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

convert pdf_name.pdf image_name.jpg      //可指定路径
convert pdf_name.pdf[0] image_name.jpg    //指定转换pdf的第一页
convert -resize 1800x -density 150 -quality 100 pdf_name.pdf image_name.jpg

-resize 1800x 指定生成的像素大小,越大生成的图片越大,转化的时间越久
-density 150 参数指定密度,具体含义再查
-quality 100 指定生成图片的质量

至此,ImageMagick 安装和测试完成。


有的朋友可能会问,上面我们使用 ghostscript 已经可以转换文件图片,为什么还要安装ImageMagick呢?

这里解释一下:ImageMagick 的 convert 命令重点和强大之处是图片的处理能力,很多时候,我们需要直接对pdf转换出来的图片进行处理。这种情况下,使用 convert 命令会满足我们很多需求,关于 convert 命令的很多参数,大家查看关于 ImageMagick 的资料了解,这里也不做赘述。

另外说一下:convert 命令直接把pdf 转换为图片,是依赖的 ghostscript 库,所以 ghostscript 可以单独进行图片转换,而 convert 在安装ghostscript 之前,只能进行单独的图片处理,不能直接转换 pdf 为图片。

最后跟大家提一下,在我们的业务应用实现中,建议大家讲文件转换的命令写到shell 脚本中,使用程序调用脚本。虽然也可以通过代码调用 api 实现,不过我觉得还是使用系统的shell 处理,效率会高一些。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值