Rock笔记
~/rocknotes/articles/359.md article
// article · linux

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

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 replies

最新回复 ↓
// 暂无回复

回复功能沿用原详情页:前往原页面参与讨论 →