Linux下pdf轉img

主要使用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'=>'轉換出錯'];
        }
    }
相關文章
相關標籤/搜索