如何在PHP中将ppt幻灯片转换为jpeg图像

问题描述 投票:7回答:5

我在这个论坛上看到了一些类似的问题,但所有这些都是针对.NET平台的,所以请不要将它作为重复关闭。我有一个linux系统,我想通过php或shell脚本将幻灯片转换为图像(不太可取)。 convert命令可以将pdf转换为jpg,但不能转换为ppt。

任何帮助都会很棒。

php powerpoint jpeg
5个回答
1
投票

我认为不可能。使用.NET意味着用户正在创建一个powerpoint应用程序的实例,并要求它将特定的幻灯片打印到JPG或PDF,但在PHP的情况下,我认为它不可能来自Linux系统。

如果您可以使用Windows服务器,那么您可以使用PHP的COM接口创建COM应用程序并启动已安装的PowerPoint应用程序并执行相同的操作,只要COM组件公开必要的方法(可能是PRINT( ))

祝好运


2
投票

qazxsw poo似乎拥有所有构建块,甚至还有一个简单的Web应用程序。

我们前一段时间在http://code.google.com/p/jodconverter/成功使用了旧版本,但我真的记不起细节了。


1
投票

我能够通过首先将powerpoint文件转换为pdf来实现这一目标。这要求我在我的服务器上安装libre office。然后使用图像魔术轻松地将pdf转换为图像。这是我的一些代码。它使用http://sourceforge.net/projects/jodconverter/(用于ppt到pdf转换)和https://github.com/ncjoes/office-converter(用于pdf到图像转换)

https://github.com/spatie/pdf-to-image

0
投票

嗨,你需要在php.ini中启用COM,然后你可以试试这个

  //now convert file to pdf
            $converter = new OfficeConverter($newFile);
            $result = $converter->convertTo('output.pdf');

            $pdfFile = BASE_PATH.'/output.pdf';
            //now convert pdf file to images
            chdir(BASE_PATH); 

            //get total number of pages in pdf file
            $pdf = new \Spatie\PdfToImage\Pdf($pdfFile);
            $pdf->setCompressionQuality(80);
            $pages = $pdf->getNumberOfPages();

            for($i=1;$i<=$pages;$i++){
                $pdf->setPage($i)->saveImage(BASE_PATH."/image$i.jpg");

            }

?>


0
投票

从shell脚本中你可以使用<?php $ppApp = new COM("PowerPoint.Application"); $ppApp->Visible = True; $strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp $ppName = "MySlides.ppt"; $FileName = "MyPP"; //*** Open Document ***// $ppApp->Presentations->Open(realpath($ppName)); //*** Save Document ***// $ppApp->ActivePresentation->SaveAs($strPath."/".$FileName,17); //'*** 18=PNG, 19=BMP **' //$ppApp->ActivePresentation->SaveAs(realpath($FileName),17); $ppApp->Quit; $ppApp = null; ,它是Unoconv的简单命令行包装器,它可以使你转换成合理的质量。

对于可以直接从PHP(在Linux上)调用的具有更高质量输出的解决方案,您可以使用专用文件转换API,例如LibreOffice

提交PPT(或PPTX)文件以转换为JPEG的代码如下(Zamzar中的更多信息):

documentation
© www.soinside.com 2019 - 2024. All rights reserved.