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

时间:2011-01-15 22:31:00

标签: linux pdf pdf-generation docx

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

2 个答案:

答案 0 :(得分:6)

如果您的文档包含使用OpenOffice的图像绝对是一个很好的解决方案。如果您想尝试一下,请查看PyODConverter

如果是简单文本,您可能需要考虑使用更简单的解决方案,如PHPDocx,unoconv,AbiWord或LiveDocx。

我过去曾使用过OOo(并且仍然用于将Odt文件转换为Pdf)并且效果很好。 :) 我只遇到一个问题,但已经解决了。您可以在此处查看:Docx to pdf using openoffice headless way too slow

编辑:

我已经创建了一个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

然后只需设置执行权限就可以了,你应该准备好了。

答案 1 :(得分:1)

您可以尝试docx4j(Java)。它可以生成pdfs,标题中的图像应该不是问题。

2016年5月更新

在过去一年左右的时间里,我们一直在提供高质量的商业docx到PDF转换器,它可以在Linux(以及Solaris)上运行;在http://converter-eval.plutext.com/尝试,也可以下载安装程序。