如何在php中将ppt幻灯片转换为jpeg图像
我在这个论坛上看到了一些类似的问题,但所有这些问题都是针对 .NET
平台的,因此请不要将其作为重复项关闭。我有一个 Linux 系统,我想通过 php 或 shell 脚本将幻灯片转换为图像(不太可取)。 convert
命令可以将 pdf 转换为 jpg,但不能将 ppt 转换。
任何帮助都会很棒。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我通过首先将 powerpoint 文件转换为 pdf 来完成此任务。这需要我在我的服务器上安装 libre office。然后使用图像魔法轻松将 pdf 转换为图像。
这是我的一些代码。它使用 https://github.com/ncjoes/office-converter (对于 ppt pdf 转换)和 https://github.com/spatie/pdf-to-image(对于pdf 到图像转换)
I was able to accomplish this by first converting the powerpoint file to pdf. This required me installing libre office on my server. Then converting the pdf to images is easily done using image magic.
Here is some of my code. It uses https://github.com/ncjoes/office-converter (for the ppt to pdf conversion) and https://github.com/spatie/pdf-to-image (for the pdf to image conversion)
http://code.google.com/p/jodconverter/ 似乎拥有所有建筑物块到位,甚至还有一个示例网络应用程序。
我们不久前在 http://sourceforge.net/projects/jodconverter/ 成功使用了旧版本,但具体细节我实在记不清了。
http://code.google.com/p/jodconverter/ seems to have all the building blocks in place, there is even a sample webapp.
We used the old version at http://sourceforge.net/projects/jodconverter/ successfully some time ago, but thI really can't remember the details.
我认为那不可能。使用 .NET 意味着用户正在创建一个 powerpoint 应用程序的实例,并要求它将特定的幻灯片打印为 JPG 或 PDF,但对于 PHP,我认为这不可能在 Linux 系统中实现。
如果您可以在 Windows 服务器上运行,那么您可以使用 PHP 的 COM 接口来创建 COM 应用程序并启动已安装的 PowerPoint 应用程序,只要 COM 组件公开必要的方法(可能是 PRINT( ))
祝你好运
I don't think thats possible. Using .NET would means that the user is creating an instance of a powerpoint application and asking it to print a specific slide to a JPG or PDF but in the case of PHP i don't think it could be possible from a linux system.
In the event you can go on windows server, then you could use the COM interface of PHP to create a COM application and start an installed PowerPoint application and do the same thing as long as the COM component is exposing the necessary methods (probably PRINT())
Good luck
在 shell 脚本中,您可以使用 Unoconv 这是一个简单的命令行包装器 LibreOffice 这将使您能够转换到合理的质量。
对于可以直接从 PHP(以及 Linux 上)调用的更高质量输出的解决方案,您可以使用专用的文件转换 API,例如 扎姆扎尔。
提交 PPT(或 PPTX)文件以转换为 JPEG 的代码如下(更多信息请参见
From a shell script you could use Unoconv which is a simple command line wrapper to LibreOffice which would enable you to convert to a reasonable quality.
For a solution with higher quality output that can be called directly from PHP (and on Linux) you could use a dedicated file conversion API such as Zamzar.
The code to submit a PPT (or PPTX) file for conversion into JPEG would be as follows (more info in the documentation):
您好,您需要在 php.ini 中启用 COM,然后您可以尝试一下吗
?>
hi you need to enable COM in php.ini then you can try this out
?>
.pptx 文件只是一个压缩文件。因此,要获取 .jpeg 文件,您所需要做的就是解压缩该文件,然后使用 .jpeg 文件:
然后包含图像文件的文件夹位于 \ppt\media\ 文件夹中。
https://www.php.net/manual/en/ziparchive.extractto。 php 提供了用于提取压缩文件的 php 代码。
A .pptx file is just a zipped file. So all you need to do to get the .jpeg files is to unzip the file and then use the .jpeg files:
Then the folder with the image files is in \ppt\media\ folder.
https://www.php.net/manual/en/ziparchive.extractto.php gives php code to extract the zipped file.