有人知道在apache服务器上使用PHP将ppt / pptx幻灯片转换为服务器上的图像的方法吗?
据我了解,一种方法是在服务器上安装microsoft powerpoint(或openoffice)?以便将powerpoint保存为图像?
你会如何在服务器上安装它?
如果无法在服务器上安装程序怎么办?
我已经看到COM类用于在本地机器上打开应用程序并将ppt / pptx保存为图像......但是在远程机器上,COM类不存在。
任何帮助/潜在客户将不胜感激!
编辑:
我看到COM类是Windows Only扩展......那么还有其他什么方法呢?
再次感谢!
OpenOffice支持一个名为UNO的编程接口,可以使用PUNO扩展从PHP调用,该扩展可以在Windows或Linux(但不是Mac)服务器中使用。
它确实需要在服务器上安装Open Office,并启用Java支持并在TCP / IP套接字上进行侦听。由于这不是默认配置,它确实涉及一些设置。您还必须下载PUNO并将其添加到您的PHP配置中。
服务器是Amazon EC2实例,因此在大多数情况下,它是唯一的CLI。
我所做的是:
我已经安装了Libreoffice (headless),用于在PHP中使用exec()
将文档转换为PDF文件。
从那里我使用ghostscript(已经安装在服务器上)通过使用exec()
从生成的PDF中提取图像。
您可以使用以下Library API将ppt文件转换为jpg
require __DIR__ . '/../lib/ConvertApi/autoload.php';
use \ConvertApi\ConvertApi; ConvertApi::setApiSecret(CONVERT_API_SECRET);
$result = ConvertApi::convert('jpg', [
'File' => '/path/to/ppt',
], 'pptx'
);
$result->saveFiles('/path/to/result/dir');
从Mark中获取幻灯片中的图片可能会让Mark Baker描述得很痛苦,但是如果你现在有些VBA,你可以简单地制作一个vba marco来将每个幻灯片导出到jpg。而不是一次性将jpg全部上传到我身上似乎是一个更容易解决的问题,ofcaurse这不是你想要的。只是我的两个感觉。
这是一个VBA示例:http://vbadud.blogspot.nl/2009/05/save-powerpoint-slides-as-images-using.html