1、如php版本>5.3.15,需要保证ext文件夹下有php_com_dotnet.dell 并在php.ini中加入。
1 | extension=php_com_dotnet.dll |
2、去除com.allow_dcom = true前面的‘;'号。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $powerpnt = new COM( "powerpoint.application" ) or die ( "Unable to instantiate Powerpoint" ); $file = 'E:/APP/OTHER/qwe.pptx' ; $presentation = $powerpnt ->Presentations->Open( realpath ( $file ), false, false, false) or die ( "Unable to open presentation" ); foreach ( $presentation ->Slides as $slide ) { $slideName = "Slide_" . $slide ->SlideNumber; $uploadsFolder = 'iii' ; $exportFolder = realpath ( $uploadsFolder ); $slide ->Export( $exportFolder . "//" . $slideName . ".jpg" , "jpg" , "600" , "400" ); } $presentation ->Close(); $powerpnt ->Quit(); $powerpnt = null; ?> |
内容扩展:
从shell脚本中,您可以使用Unoconv,它是LibreOffice的简单命令行包装器,可以使您转换为合理的质量。
对于可以直接从PHP(以及Linux)调用的具有更高质量输出的解决方案,您可以使用专用文件转换API,例如Zamzar。
提交PPT(或PPTX)文件以转换为JPEG的代码如下(documentation中的更多信息):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | / Build request $endpoint = "https://api.zamzar.com/v1/jobs" ; $apiKey = "YOUR_KEY" ; $sourceFilePath = "/tmp/my.ppt" ; // Or PPTX $targetFormat = "jpg" ; $sourceFile = curl_file_create( $sourceFilePath ); $postData = array ( "source_file" => $sourceFile , "target_format" => $targetFormat ); // Send request $ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, $endpoint ); curl_setopt( $ch , CURLOPT_CUSTOMREQUEST, 'POST' ); curl_setopt( $ch , CURLOPT_POSTFIELDS, $postData ); curl_setopt( $ch , CURLOPT_SAFE_UPLOAD, false); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true); curl_setopt( $ch , CURLOPT_USERPWD, $apiKey . ":" ); $body = curl_exec( $ch ); curl_close( $ch ); // Process response (with link to converted files) $response = json_decode( $body , true); print_r( $response ); ?> |