PHP 調用com組件將ppt轉為圖片。
需要在php.ini中開啟
com.allow_dcom = true
<?php $powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint"); $file='1.ppt'; echo realpath($file); $addr = $_SERVER['DOCUMENT_ROOT'].'/ppt/1.ppt'; echo $addr; $presentation = $powerpnt->Presentations->Open($addr, false, false, false) or die("Unable to open presentation"); $presentation->Fonts->Replace('黑體','幼圓'); $presentation->Fonts->Replace('MS Gothic','幼圓'); $presentation->Fonts->Replace('方正粗倩簡體','幼圓'); $presentation->Fonts->Replace('方正小標宋簡體','幼圓'); $presentation->Fonts->Replace('Arial Black','幼圓'); $presentation->Fonts->Replace('華文中宋','幼圓'); $presentation->Fonts->Replace('Arial Unicode MS','幼圓'); $presentation->Fonts->Replace('方正細圓簡體','幼圓'); $presentation->Fonts->Replace('Times New Roman','幼圓'); foreach($presentation->Fonts as $c) { echo $c->name."<br />"; //echo $c->Replace('',''); } foreach($presentation->Slides as $slide) { $slideName = "Slide_" . $slide->SlideNumber; $uploadsFolder = 'iii'; $exportFolder = realpath($uploadsFolder); $slide->Export($exportFolder."//".$slideName.".jpg", "jpg", "1920", "1080"); } $presentation->Close(); $powerpnt->Quit(); $powerpnt = null; ?>
在win7上跑,沒問題,放到2008上面出現錯誤,有一種exception叫unknown...
解決方案:
cmd -》 dcomcnfg
參考網址:
http://blog.csdn.net/bleurever/article/details/50783133
2018年2月26日續
按照上述方法解決后發現交互式用戶有以下問題,必須要有用戶登錄系統才能使用,否則報錯如下:
PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `powerpoint.application': 因為配置標識不正確,系統無法開始服務器進程。請檢查用戶名和密碼。
解決方法,指定用戶,還不能是administrator用戶,必須新建一個。
在安全,選項卡中,所有權限選自定義,給上面選擇的用戶授予全部權限。
搞定!
--------------------------------------------------------------------------------
交互式用戶(The interactive user): 這是推薦的選項, 以當前登錄到系統的用戶確定對象的身份(當前必須有用戶登錄到系統, 如果用戶注銷那么對象也會被銷毀);
啟動用戶(The launching user): 以調用的客戶端的用戶確定對象的身份, 一個缺點就是這個對象不能再進行遠程調用;