主要使用PHP imagick擴展,以及ImageMagick軟件進行轉換php
1、安裝ImageMagickcentos
Centos下能夠直接使用bash
yum install ImageMagick
而後再安裝ImageMagick-devel,不然php安裝擴展時會報錯 ide
configure: error: not found. Please provide a path to MagickWand-config or Wand-config program..net
yum install ImageMagick-devel
2、安裝PHP擴展orm
擴展包下載地址:https://pecl.php.net/package/imagickblog
wget https://pecl.php.net/get/imagick-3.4.3.tgz tar -zxvf imagick-3.4.3.tgz cd imagick-3.4.3 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
而後,在php.ini中添加 extension=imagick.soip
若是仍是用不了, 在centos 中能夠這樣get
yum install ghostscript
這是一個文件提取器 , 特別是對文件的操做string
三,DEMO
/** * pdf 轉換爲 img(單獨一頁) * @param string $pdf pdf文件路徑 * @param string $img 轉化的目標文件 * @param integer $page 要轉化的文件的頁碼 * @return array */ public static function pdf2img($pdf, $img, $page=1) { if(!extension_loaded('imagick')){ return ['status'=>-1,'msg'=>'擴展不存在']; } if(!file_exists($pdf)){ return ['status'=>-1,'msg'=>'PDF文件不存在']; } if($page <= 0){ return ['status'=>-1,'msg'=>'頁碼不能小於等於0']; } $extension = pathinfo($img)['extension'];//目標文件擴展名 try{ $imagick = new \Imagick(); $imagick->setResolution(220,220); //設置圖像分辨率 $imagick->setCompressionQuality(100); //壓縮比 $imagick->readImage($pdf."[".($page-1)."]"); $imagick->setImageFormat( $extension ); if($imagick->writeImage($img) == true) { return ['status'=>1,'msg'=>'轉換成功']; } else { return ['status'=>-1,'msg'=>'轉換失敗']; } }catch(\Exception $e){ return ['status'=>-1,'msg'=>'轉換出錯']; } }