【问题标题】:Manipulating Microsoft Word Office 2007 .docx document from PHP从 PHP 操作 Microsoft Word Office 2007 .docx 文档
【发布时间】:2011-03-19 10:35:39
【问题描述】:

我需要使用 PHP 中的一个选项来处理 .docx (Microsoft Office 2007) 文档。

我需要:

  1. 阅读内部文本
  2. 转换为 .html
  3. 在浏览器中查看它们。
  4. 替换文本。

我知道我可以使用 Word Automation,创建 Microsoft Word 的 COM 对象,但它太慢、不稳定,我必须将它安装在服务器上。

是否有任何库或代码可以从 PHP 中完成?

【问题讨论】:

    标签: php ms-word docx openxml


    【解决方案1】:

    还有一个 PHP 类用于将新内容合并到现有的 .docx 文件中。可在此处获得:http://www.tinybutstrong.com/。文档非常好,并且有很多示例,而且都是免费和开源的。不过,它确实需要熟悉 .docx 概念。

    【讨论】:

      【解决方案2】:

      您可以直接使用内部格式。

      DOCX 只是一个 zip 文件,其中包含实际文档的 word/document.xml。

      解压文件、读取文档.xml、str_replace() 查找所需内容、保存并重新压缩目录非常简单,它为word 提供了轻量级、快速和简单的邮件合并功能文件。这也适用于其他办公格式。

      这里是official docs on the internal structure了解更多信息。

      【讨论】:

        【解决方案3】:

        您可以看看PHPDocX,我相信它可以满足您的所有要求。

        1. 您可以替换模板中的变量或仅替换现有 Word 文档中的纯文本。
        2. 它提供了相当多的转换选项。
        3. 您还可以提取文本。

        【讨论】:

        • 值得注意的是它不是免费的
        【解决方案4】:

        Docx 只是一个包含多个 XML 文件和嵌入式媒体文件(如图像)的 ZIP 文件。因此,您可以轻松阅读和编辑文档。解压,打开word/document.xml,读写,重新打包。

        转换为 HTML 可能很困难。但是您会在 docProps/thumbnail.jpeg 中找到第一页的缩略图。

        请注意,您必须熟悉 XML 结构才能进行任何复杂的编辑。有一个摘要 XML docProps/app.xml,其中包含文件的一些元数据,所以不要忘记更新它。阅读更多来自维基百科:http://en.wikipedia.org/wiki/Office_Open_XML

        【讨论】:

        • 不,没那么容易!我试过了,很难生成正确的属性值。例如,我可以修改 XML 文件以将图像插入到文档中(word/document.xml、word/media/imageXX.jpg、word/_rels/document.xml.rels),但问题是属性的值!
        【解决方案5】:

        PHPExcel 的作者有PHPWord

        【讨论】:

        • 很遗憾,PHPWord 目前只能编写 Word2007 的 docx 文件。我在业余时间从事阅读器的工作,但可能要几个月才能使用(目前 PHPExcel 的其他需求太多了)
        • @Mark Ba​​ker:他似乎也在谈论 docx,因为你说它目前只支持 :)
        • 马克。它只是一个作家 - 还是只为 docx?
        • @aviv - 目前,PHPWord 只是一个编写器,并且只支持 .docx 文件。长期意图是为 .doc、.docx 甚至 Open Office Writer .odt 格式提供读写能力。该架构允许轻松实现不同文件格式的新读取器和写入器,但仍需要对其进行编码。目前我有一个部分编码的 .docx 阅读器;但我的优先事项仍然是使用更广泛的 PHPExcel 库,因此可能需要一段时间才能完成并合并到 PHPWord 发布代码中
        • @aviv COM 可能很慢且不稳定(实际上它还不错),但您也可以将 COM 与 OpenOffice Writer (wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/…) 一起使用作为 MSWord 的替代方案;并且使用 XPCOM 或 CORBA 可以在其他平台上模仿 COM
        猜你喜欢
        • 2011-06-15
        • 2010-09-15
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多