如何从linux服务器从.docx生成PDF文件?

如何从linux服务器从.docx生成PDF文件?,linux,pdf,pdf-generation,docx,Linux,Pdf,Pdf Generation,Docx,我们在生产服务器上使用:Ubuntu 10服务器版。 我们需要创建一个文档,其中包括内容中的文本、图像和表格,以及页眉和页脚中的图像。 现在我们使用创建它,它在生成docx文件方面做得很好,但我们需要该文件的pdf版本。 我们如何将docx转换为pdf?或任何其他库来生成允许页眉/页脚中的图像的pdf文件? 使用windows组件不是一个解决方案。 也许使用openOffice?它可以在ubuntu服务器版上使用吗? 在linux-server环境中,是否还有其他用于将docx转换为pdf的转换

我们在生产服务器上使用:Ubuntu 10服务器版。 我们需要创建一个文档,其中包括内容中的文本、图像和表格,以及页眉和页脚中的图像。 现在我们使用创建它,它在生成docx文件方面做得很好,但我们需要该文件的pdf版本。 我们如何将docx转换为pdf?或任何其他库来生成允许页眉/页脚中的图像的pdf文件? 使用windows组件不是一个解决方案。 也许使用openOffice?它可以在ubuntu服务器版上使用吗? 在linux-server环境中,是否还有其他用于将docx转换为pdf的转换器?

您可以尝试使用docx4j(Java)。它可以生成PDF,标题中的图像应该不会有问题

2016年5月更新


在过去一年左右的时间里,我们一直在提供一个高质量的商业docx-to-PDF转换器,它运行在Linux(以及Solaris)上;在您还可以下载安装程序的地方试用它。

如果您的文档包含图像,使用OpenOffice无疑是一个很好的解决方案。如果你想试试这个,就去看看吧

如果是简单文本,您可能需要考虑使用更简单的解决方案,如PHPDocx、UNCONV、AbWord或LIFEDCOX。< /P> 我在过去使用OOo(现在仍然使用它将Odt文件转换为Pdf),它工作得很好 我只有一个问题,但已经解决了。您可以在此处查看:

编辑:

我已经创建了一个bash脚本“/etc/init.d/openoffice”,用正确的选项启动openoffice。文件内容如下:

#!/bin/bash
# openoffice.org headless server script
#
# chkconfig: 2345 80 30
# description: headless openoffice server script
# processname: openoffice

OOo_HOME=/usr/lib/openoffice
SOFFICE_PATH=$OOo_HOME/program/soffice

if [ "$1" == "start" ]; then
 echo "Starting OpenOffice headless server"
 $SOFFICE_PATH --headless --accept="pipe,name=beubi_OOffice;urp;StarOffice.ServiceManager" --invisible --norestore --nodefault --nolockcheck --nofirstwizard
 exit
fi

if [ "$1" == "stop" ]; then
 echo "Stopping OpenOffice headless server."
 killall -9 soffice.bin && killall -9 soffice
 exit
fi

echo "Usage: $0 {start|stop}"
exit 1

然后只需设置对它的执行权限,您就可以开始了。

如果TCPDF失败,我将在复杂环境中尝试docx4j.docx4j和xdocreport failtemplates@Mark报告docx4j的任何故障问题是我们使用的是ubuntu服务器版(没有GUI,只有控制台),OpenOffice可以在控制台中运行吗?当然可以。但它需要在无头模式下运行,并带有一些其他选项,如“-nofirststartwizard”。我有一个小脚本来作为服务启动/停止它。我将编辑我以前的答案并将其发布在那里,因为在此评论中我没有足够的空间。与其从
docx->pdf
直接生成pdf,为什么不使用?我将尝试TCPDF库。这是一个很好的解决方案,如果它支持我们的所有要求