在PHP中生成.ppt和.pptx文件的缩略图

3

是否可以使用PHP生成.PPT和.PPTX文件的缩略图?我目前正在为图像和PDF文件生成缩略图,但处理幻灯片演示文稿时遇到了困难。

我目前正在使用以下代码使用Imagick处理PDF。

        if(in_array($ext,array('pdf'))){

                $pdf = './uploads/'.$new_file_name; 
                $filename=str_replace($ext,'jpg',$new_file_name);
                $img = new imagick($pdf);               
                for ($x = 1;$x <= $img->getNumberImages(); $x++) {      
                    $save_to = './uploads/'.$x.'-'.$filename;
                    $img->setIteratorIndex($x);
                    $img->setImageFormat('jpg');                
                    $geo=$img->getImageGeometry();
                    $sizex=$geo['width'] / 2;
                    $sizey=$geo['height'] / 2; 
                    $img->resizeImage($sizex,$sizey,Imagick::FILTER_LANCZOS,1);
                    $img->writeImage($save_to);
                }
                $count = $img->getNumberImages();
                $update = '[pdf=/uploads/'.$new_file_name.']/uploads/'.$count.'-'.$filename.'[/pdf]'.$update;
            }   

我不知道PHP提供了哪些功能,是否可以假定已安装PPT等等,但如果您可以通过COM自动化PPT,您可以打开演示文稿并在要为其创建缩略图的每个幻灯片上调用.Export方法。.Export需要导出图像的文件名、图像过滤器(即“JPG”)以及以像素为单位的图像宽度和高度作为参数。 - Steve Rindsberg
你可以尝试使用libreoffice --convert-to pdf PPTXFILE将文件转换为PDF格式,但效果可能不太好。 - amphetamachine
1个回答

1

不支持PowerPoint格式,或者至少几乎可以确定不支持。您可以调用\Imagick::queryformats();列出 Imagick 或者更准确的说是 ImageMagick 支持的格式,以确认不支持 PowerPoint 格式,但是由于它们不在支持列表中,所以我怀疑他们不会被支持。

似乎实现同样的功能最好的方法之一是使用unoconv将 PowerPoint 文件先转换为 PDF:

unoconv -f pdf presentation.ppt

之后就可以使用 Imagick 进行操作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接