首先需要修改nginx配置文件增加:proxy_read_timeout 600s;使其链接60秒后不断,不然pdf一旦过大60秒无法完成工作就断开链接了
1、先安装libreoffice
yum install libreoffice
2、由于ppt中都是中文,执行命令转ppt的时候中文可能乱码,我的解决办法是在liunx系统中安装中文字体,把windows的字体直接全部拷贝到liunx服务器中,直接把所有字体都上传到服务器
windows的字体文件夹:C:\Windows\Fonts
liunx服务器的字体文件夹:/usr/share/fonts/
上传了后需要在服务器执行命令刷新字体缓存:
sudo fc-cache -fv
3、可以用php执行命令把ppt转为pdf了
$sourceFile = './public/123.pptx'; //只能是pptx
$targetFile = './public/123.pdf'; // 注意这个变量在命令中其实是不需要的
// 使用LibreOffice将PPTX转换为PDF
$command = "libreoffice --headless --convert-to pdf --outdir ./public/ $sourceFile";
exec($command, $output, $returnVar);
if ($returnVar === 0) {
return "PPT转换成PDF成功,文件保存在:{$targetFile}";
} else {
echo "PPT转换成PDF失败:";
print_r($output);
}