您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用PHP将Word doc,docx和Excel xls,xlsx转换为PDF

使用PHP将Word doc,docx和Excel xls,xlsx转换为PDF

我找到了解决问题的方法,提出请求后,会将其发布在此处以帮助他人。抱歉,如果我错过任何细节,距离我从事此解决方案已有一段时间了。

首先需要在服务器上安装 **Openoffice.org** 。我要求托管服务提供商在我的VPS上安装开放式办公室RPM。这可以直接通过WHM完成。

现在,服务器具有处理MS Office文件功能,您可以通过通过PHP执行命令行指令来转换文件。为了解决这个问题,我找到了 :https ://github.com/mirkonasato/pyodconverter

我在服务器上创建了一个目录,并将PyODConverter python文件放在其中。我还在网络根上方创建了一个纯文本文件(我将其命名为“ adocpdf”),其中包含以下命令行说明:

directory=$1
filename=$2
extension=$3
SERVICE='soffice'
if [ "`ps ax|grep -v grep|grep -c $SERVICE`" -lt 1 ]; then 
unset DISPLAY
/usr/bin/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 
sleep 5s
fi
python /home/website/python/DocumentConverter.py /home/website/$directory$filename$extension /home/website/$directory$filename.pdf

这将检查openoffice.org库是否正在运行,然后调用PyODConverter脚本来处理文件并将其输出为PDF。从PHP文件执行脚本时,将提供前三行的3个变量。延迟(“ sleep 5s”)用于确保openoffice.org有足够的时间来启动(如果需要)。我已经使用了几个月,而5s的间隔似乎给了足够的呼吸空间。

该脚本将在与原始目录相同的目录中创建文档的PDF版本。

最后,从PHP内部启动Word / Excel文件的转换(我在一个函数中检查它是否正在处理的文件是word / excel文档)。

//use openoffice.org
$output = array();
$return_var = 0;
exec("/opt/adocpdf {$directory} {$filename} {$extension}", $output, $return_var);

将Word / Excel文件上载到服务器后,将调用PHP函数。exec()调用中的3个变量直接与上面的纯文本脚本开头的3个变量相关。请注意,如果要转换的文件位于Web根目录之内,则$ directory变量不需要前导斜杠。

好,就是这样!希望这对某人有用,并且可以避免他们遇到的困难和学习困难。

php 2022/1/1 18:20:24 有588人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶