POWER POINT

首先配置php.ini,启用组件

extension = php_com_dotnet.dll

php模板生成pptWINDOWS办事器下PHP应用COM组件将PPT生成图片 NoSQL

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做事器~