POWER POINT
首先配置php.ini,启用组件:
extension = php_com_dotnet.dll
com.allow_dcom = true
运行comexp.msc -32
打开组件做事,把稳这里利用comexp.msc -32是由于我们将要配置的组件是32位的,运行dcomcnfg.exe无法看到组件。
组件做事
一样平常在【组件做事】-【打算机】-【我的电脑】-【DCOM配置】-【Microsoft PowerPoint 幻灯片】上点右键,属性窗口中切换到【标识】选项卡,设置“交互式用户”即可,一样平常本地设置这个程序就可以跑起来了。
交互式用户
PHP源代码:
/
将指定PPT天生图片
@param string $pptfile PPT路径
@param boolean $iswater 是否增加水印
/
function ppt2img($pptfile, $iswater = true){
if(!$pptfile){
return false;
}
//去除第一个'/'
$pptfile = substr($pptfile, 1);
//得到存储路径
$ext_arr = explode(\"大众.\"大众, $pptfile);
$ext_arr[0];
//没有则创建
if(!file_exists($ext_arr[0])){
@mkdir($ext_arr[0],0777,true);
}
set_time_limit(300);
$exportFolder = realpath($ext_arr[0]);
$powerpnt = new \COM(\"大众powerpoint.application\"大众) or die(\公众Unable to instantiate Powerpoint\"大众);
$presentation = $powerpnt->Presentations->Open(realpath($pptfile), false, false, false) or die(\"大众Unable to open presentation\"大众);
$i = 1;
foreach($presentation->Slides as $slide){
$slideName = $slide->SlideNumber;
$slide->Export($exportFolder.\"大众//\"大众.$slideName.\公众.jpg\"大众, \公众jpg\"大众);
//水印
if($iswater){
water($ext_arr[0].'/'.$i.'.jpg');
}
$i += 1;
}
$presentation->Close();
$powerpnt->Quit();
$powerpnt = null;
return $i;
}
提示:
如果组件做事中【我的电脑】如果涌现赤色向下箭头缘故原由:msdtc 没有安装或者被卸载了!
办理方法:
msdtc -resetlog
msdtc -uninstall
重启电脑再实行:
msdtc -install
上到做事器上会提示 ERR: Failed to create COM object `powerpoint.application': 谢绝访问。
最头痛的便是这个安全权限了,网上的有关填哪个权限切实其实是五花八门什么都有,我的办理办法是添加3个账号:Everyone、NETWORK、SERVICE + 站点干系账号,如图:
调度权限
总体来看,采取COM组件的办法代码大略,由于是调用Microsoft PowerPoint直接转换,天生图片质量较好(不丢失元素),缺陷是你得忍受WINDOWS做事器~