当在命令行中使用以下命令时,它会工作文件
libreoffice --headless -convert-to pdf ".$sourse." -outdir outputolder/
但如果在 php 脚本中使用,则不会发生任何事情。有人可以解释一下具体问题是什么吗?
答案1
嗯,我看你输入的是“-convert-to pdf”,而不是“--convert-to-pdf”。也许你的 php 脚本中也有类似的拼写错误?不过,如果不看 PHP 代码的话,很难说。
请提供详细信息:如何从 PHP 调用 libreoffice,错误日志说了什么等等。
最后,如果您运行的是 SElinux 而不是 Ubuntu,请将问题提交到 SELinux 论坛。
答案2
您缺少过滤器名称
这是 convert-to 的一般格式(注意在 Windows 上该参数是:
-convert-to
不是--convert-to
soffice --headless --convert-to <TargetFileExtension>:<NameOfFilter> file_to_convert.xxx
使用关联在 .xcu 文件中查找过滤器名称。
例如,我想转换为 Excel 95 格式,因此我找到了 MS_Excel_95.xcu 过滤器,它里面有一个名称:
<node oor:name="MS Excel 95" oor:op="replace">
...
然后我可以尝试一下:
soffice --headless --convert-to xls:"MS Excel 95" filename.xlsx
(我需要这个来获取 excel 文件的非 xml 版本)