CentOS7 安装 unoconv,实现 Word、PDF 等文档之间的转换

Linux tytrock ⋅ 于 2022-10-19 10:37:06 ⋅ 2432 阅读

1、yum安装unoconv

sudo yum -y install unoconv


2、查看unoconv版本

unoconv --version


3、转换

##word转pdf
unoconv -f pdf test.docx

image.png

转换成功


4、中文乱码问题

将中文字体复制到/usr/share/fonts目录下即可


5、php项目中使用

exec("unoconv -f pdf /www/path/test.docx")

此时发现无法转换成功,网上找解决方案,有说unoconv要使用绝对路径,尝试一下

exec("/usr/bin/unoconv -f pdf /www/path/test.docx")

发现还是不行。

继续网上找解决方案,了解到exec有3个参数,第一个是要执行的命令,第二个是参数是一个数组,数组的值是由第一个命令执行后生成的,第三个参数执行的状态,0表示成功,其他都表示失败。尝试加入exec第二和第三个参数输出结果

$result = exec("/usr/bin/unoconv -f pdf /www/path/test.docx");
var_dump($result);
echo '<br>';
var_dump($output);
echo '<br>';
var_dump($return_var);

输出的结果:

image.png

发现第三个参数输出的结果为1,即为失败,但第二个参数没有任何错误内容。

网上继续找解决方案,了解到exec在执行命令时,可以在命令后面使用 2>&1, 命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析。然后继续尝试:

$result = exec("/usr/bin/unoconv -f pdf /www/path/test.docx  2>&1");
var_dump($result);
echo '<br>';
var_dump($output);
echo '<br>';
var_dump($return_var);

输出的结果:

image.png

错误信息出来了,当根据这个错误信息无法清除错误原因,唯有继续网上找解决方案




image.png




参考:

https://installati.one/centos/7/unoconv/

https://blog.csdn.net/weixin_39638012/article/details/115647567

本帖已被设为精华帖!
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter