在 Windows 上使用 PHP 的服务器模式下的 OpenOffice

Posted

技术标签:

【中文标题】在 Windows 上使用 PHP 的服务器模式下的 OpenOffice【英文标题】:OpenOffice in server mode with PHP on Windows 【发布时间】:2012-05-02 00:49:17 【问题描述】:

我正在做一个项目,该项目需要我将文档生成为 docx,然后转换为 doc 和 pdf。

这个项目是用 php 编写的(使用 Zend 框架)并在 Windows 上的 IIS 上运行(客户端要求 - 绝对不是我的选择!)。

Windows 服务器 IIS 7.5 PHP 5.3 OpenOffice 3.2

我正在研究执行文档转换的方法(包括 LiveDocx 服务),目前正在研究使用作为服务运行的 OpenOffice 来转换文档。

我有一个可以工作的 PHP 脚本——它类似于这篇文章中的代码How do I convert RTF to PDF from my PHP web page using OpenOffice?——但我想知道它的扩展性如何。 PHP 脚本基本上是使用 PHP 的 COM 函数的 PyOD 转换器的 PHP 版本。在此页面 (http://code.google.com/p/jodconverter/wiki/GettingStarted) 上,它特别指出 PyOD 脚本不适用于多个并发连接。因此,我假设 PHP 脚本同样不合适。

仔细阅读后,似乎正在运行的 OpenOffice 进程一次只支持一个连接。这绝对正确吗?如果是这样,那么我认为这根本不是一个可行的解决方案是否正确?我预计该产品的使用率很高,因此必须进行并发转换。有人在生产环境中有这方面的经验吗?

最后,是否有人对执行转换有任何其他建议?如果没有,我将重新使用 LiveDocx 服务。我对它唯一真正的抱怨是速度和转换的一些不准确。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可能可以扩展 OpenOffice 来满足您的需求。在过去直接使用 OpenOffice UNO api 完成工作后,您可能会发现您有很多工作要做。试图以多线程方式使用单个 OpenOffice 进程只会让我感到悲伤。但是,您可以生成多个 OpenOffice 进程并且每个进程都是单线程的。这取决于你的性能标准是否足够可扩展......

JODReports 和 Docmosis 位于 OpenOffice 上,因此在使用特定技术。您还可以看看 LibreOffice,它最近比 OpenOffice 发展得更进一步。

希望对您有所帮助。

【讨论】:

以上是关于在 Windows 上使用 PHP 的服务器模式下的 OpenOffice的主要内容,如果未能解决你的问题,请参考以下文章

Windows下PHP中使用ffmpeg

在 windows apache 服务器问题上将 php cig 模式升级为 fastcgi

Win2003下IIS以FastCGI模式运行PHP

在 Windows XP 模式下使用 IE6 访问在主机上运行的 Tomcat 实例(Windows 7)

如何在Windows下配置搭建PHP环境

php exec:不返回输出