1. 下载 LibreOffice 办公套件,安装
下载地址:https://zh-cn.libreoffice.org/download/libreoffice/
2. 配置环境变量
软件安装目录 /program,加入到环境变量中,配置后,在 cmd 命令行执行:
soffice --version
看到版本号,说明安装成功
3. php.ini 配置,修改后重启 nginx 或其他 web 服务器
- 关闭安全模式:safe_mede = Off
- 启用函数 exec:disable_functions 中去掉 exec 函数
4. CMD 命令行执行转换命令
- 转换 PDF 的命令格式
soffice --headless --convert-to pdf:writer_pdf_Export {文档路径} --outdir {导出目录路径}
- 执行命令示例
soffice --headless --invisible --convert-to pdf:writer_pdf_Export "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/172103002785404.docx" --outdir "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/"
- 第一个双引号字符串:Word 的完整地址
- 第二个双引号字符串:转换后 PDF 的路径
- 注:转换后的 PDF 文件名和转换前的 Word 文件名一致
5. 使用 PHP 代码执行转换命令
5.1 Word 转 PDF
//构建转换命令
$sCmd = 'soffice --headless --invisible --convert-to pdf:writer_pdf_Export "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/172103002785404.docx" --outdir "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/"';
//exec执行命令,
exec($sCmd, $out, $return);
//成功后return = 0
echo $return;
5.2 PDF 转图片
//构建转换命令
$sCmd = 'soffice --headless --invisible --convert-to jpg "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/172103002785404.pdf" --outdir "E:\phpstudy_pro\WWW\ranqi_renzheng\Uploads\output\20240715/"';
//exec执行命令
exec($sCmd,$out, $return);
//成功后return 返回0
echo $return;
6. 如果遇到 cmd 命令行可以执行成功,PHP 代码执行失败,请继续往下看
6.1 cmd 命令行,添加当前 windows 系统账户权限
6.2 LibreOffice/program 目录下的进程文件加上权限
- soffice.bin 和 soffice.com、soffice.exe,和 6.1 cmd 同样的配方