PHP 安装COM组件
注意:php版本>5.3.15,需要保证ext文件夹下有php_com_dotnet.dll 并在php.ini中加入,如果是Windows系统,切记要有office服务!!!
extension=php_com_dotnet.dll
php.ini中搜索并去除com.allow_dcom = true前面的‘;’
com.allow_dcom = true
项目函数库写入下面代码
/**
* @package ppt文档转换图片
* @author 自然
* @param string $filepath PPT文档绝对路径 D:/test/test.pptx
* @param int $width 图片宽度
* @param int $height 图片高度
* @return array
*/
function ppt_turn_photo($filepath='', $width=600, $height=400)
{
$data = array();
$powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint");
$presentation = $powerpnt->Presentations->Open($filepath, false, false, false) or die("Unable to open presentation");
foreach($presentation->Slides as $slide)
{
//文件名,同一个附件重复则覆盖
$slideName = md5($filepath) . "_" . $slide->SlideNumber;
//保存文件夹
$uploadsFolder = "uploads/ppt_image/" . date('Ymd') . '/';
//保存的绝对路径
$exportFolder = ROOT_PATH . $uploadsFolder;
if (!file_exists($exportFolder)) mkdir($exportFolder, 0777, true);
//保存到本地
$imagePath = $exportFolder.$slideName.".jpg";
$slide->Export($imagePath, "jpg", $width, $height);
//输出图片相对路径到数组并返回
$imagePath = '/'.str_replace(ROOT_PATH, "", $imagePath);
$data[] = $imagePath;
}
$presentation->Close();
$powerpnt->Quit();
$powerpnt = null;
return $data;
}