您的位置:首页 > 运维架构 > Nginx

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

2019-02-23 10:49 288 查看

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 转图片要做的事情。自己整理一下方便以后查看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: