使用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=$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将Word doc,docx和Excel xls,xlsx转换为PDF 的全部内容, 来源链接: utcz.com/qa/423622.html

回到顶部