Ubuntu nginx PHP unoconv Word PPT PDF 转图片需要安装的扩展

1、下载安装imagick
地址: https://pecl.php.net/package/imagick

2.如果没有安装对应的php-dev,先安装php-dev(我的是php版本是5.6)
sudo apt install php5.6-dev

3.安装pkg-config
sudo apt-get install pkg-config

4.安装 libmagickwand-dev 和 libmagickcore-dev
sudo apt-get install libmagickwand-dev libmagickcore-dev

5.进入imagick解压目录
按顺序执行终端命令:
一、phpize
二、./configure
三、sudo make && sudo make install

6.安装unoconv
sudo apt-get install unoconv

下面附转换命令

/*Word或者PPT转PDF命令
*$PPtPath 文件路径,如/var/www/test/public/uploads/pdf/a.ppt
* */
exec("/usr/bin/unoconv --export Quality=200 -f pdf $PPtPath",$d,$a);

//转换PDF成功之后调用下面这个方法转图片即可
/**
 * PDF转图片
 * @param $pdf待处理的PDF文件
 * @param $path待保存的图片路径
 * @param int|待导出的页面 $page 待导出的页面 -1为全部 0为第一页 1为第二页
 * @return 保存好的图片路径和文件名 注:此处为坑 对于Imagick中的$pdf路径 和$path路径来说,   php版本为5+ 可以使用相对路径。php7+版本必须使用绝对路径。所以,建议大伙使用绝对路径。
 * 注:此处为坑 对于Imagick中的$pdf路径 和$path路径来说,   php版本为5+ 可以使用相对路径。php7+版本必须使用绝对路径。所以,建议大伙使用绝对路径。
 */
function pdfToPng($pdf,$path,$page=-1)
{
    if(!extension_loaded('imagick')) {
        return ajaxRetrun(0,'环境未安装imagick程序');
    }
    if(!file_exists($pdf))
    {
        return ajaxRetrun(0,'要处理的PDF文件不存在');
    }
    if(!is_readable($pdf))
    {
        return ajaxRetrun(0,'要处理的PDF文件权限不够');
    }
    $im = new \Imagick();
    $im->setResolution(150,150);
    $im->setCompressionQuality(100);
    if($page==-1){
        $im->readImage($pdf);
    } else{
        $im->readImage($pdf."[".$page."]");
    }

    foreach ($im as $Key => $Var)
    {
        $Var->setImageFormat('jpg');
        $filename = $path. md5($Key.time()).'.jpg';
        if($Var->writeImage($filename) == true)
        {
            $Return[] = $filename;
        }
    }
    //返回转化图片数组,由于pdf可能多页,此处返回二维数组。
    return $Return;
}

以上就是PHP将上传的Word ppt PDF 转图片要做的事情。自己整理一下方便以后查看

猜你喜欢

转载自blog.csdn.net/weixin_43402525/article/details/87889532