首先需要修改nginx配置文件增加:proxy_read_timeout 600s;使其鏈接60秒后不斷,不然pdf一旦過大60秒無法完成工作就斷開鏈接了
1、先安裝libreoffice
yum install libreoffice
2、由于ppt中都是中文,執(zhí)行命令轉ppt的時候中文可能亂碼,我的解決辦法是在liunx系統(tǒng)中安裝中文字體,把windows的字體直接全部拷貝到liunx服務器中,直接把所有字體都上傳到服務器
windows的字體文件夾:C:\Windows\Fonts
liunx服務器的字體文件夾:/usr/share/fonts/
上傳了后需要在服務器執(zhí)行命令刷新字體緩存:
sudo fc-cache -fv
3、可以用php執(zhí)行命令把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);
}