使用PHP将Word doc,docx和Excel xls,xlsx转换为PDF
我正在寻找一种使用PHP将Word和Excel文件转换为PDF的方法。
这样做的原因是,我需要能够将各种格式的文件合并到一个文档中。我知道,如果我能够将所有内容转换为PDF,则可以使用PDFMerger(使用fpdf)将PDF合并为一个文件。
我已经能够从其他文件类型/图像创建PDF,但仍受Word
Docs困扰。(我想我可以使用已经用于从html代码创建Excel文件的PHPExcel库转换Excel文件)。
我不使用Zend框架,因此希望有人能够为我指出正确的方向。
或者,如果有一种方法可以从Word文档中创建图像(jpg)文件,则这是可行的。
谢谢你的帮助!
回答:
我找到了解决问题的方法,提出请求后,会将其发布在此处以帮助他人。抱歉,如果我错过任何细节,距离我从事此解决方案已有一段时间了。
首先需要在服务器上安装 **Openoffice.org** 。我要求托管服务提供商在我的VPS上安装开放式办公室RPM。这可以直接通过WHM完成。
现在,服务器具有处理MS Office文件的功能,您可以通过通过PHP执行命令行指令来转换文件。为了解决这个问题,我找到了
:https :
//github.com/mirkonasato/pyodconverter
我在服务器上创建了一个目录,并将PyODConverter python文件放在其中。我还在网络根上方创建了一个纯文本文件(我将其命名为“
adocpdf”),其中包含以下命令行说明:
directory=$1filename=$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将Word doc,docx和Excel xls,xlsx转换为PDF 的全部内容, 来源链接: utcz.com/qa/423622.html