Linux下pdf转img

主要使用PHP imagick扩展,以及ImageMagick软件进行转换

一、安装ImageMagick

Centos下可以直接使用

yum install ImageMagick

 然后再安装ImageMagick-devel,否则php安装扩展时会报错 

configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.

yum install ImageMagick-devel

 

二、安装PHP扩展

扩展包下载地址:https://pecl.php.net/package/imagick

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.so

如果还是用不了,  在centos 中可以这样

yum install ghostscript

这是一个文件提取器 , 特别是对文件的操作

 

三,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'=>'转换出错'];
        }
    }

  

 

转载于:https://www.cnblogs.com/licnlt/p/9570181.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值