如何从 php 中的 .doc 模板创建 word .doc 文件

问题描述 投票:0回答:5

我需要从Word模板创建一个Word文档,就像我们需要用值替换模板中的几个字符串(比如变量)。

请告诉我们如何在 PHP(或 cakePHP)中做到这一点。

php templates ms-word
5个回答

3
投票

您遇到的最大问题是

.doc
格式本质上是二进制的(请参阅 这个问题Joel 的这篇文章)。

是否有任何原因导致您无法使用 HTML 格式的文档(该单词已经能够打开 10 多年)或富文本文件? 这两者都是基于文本的,并且会显着减轻您的痛苦。 因此,它们非常容易使用模板。

或者,如果您可以确定用户将拥有更新版本的 Office(2007+),那么您可以使用

.docx
文档,尽管这有点棘手,它实际上是 Zip 存档和 XML 数据。 您可以相当简单地实现这一点,方法是创建一个包含所需模板的
.docx
word 文件,将其重命名为
.zip
,提取文件,教您的应用程序在此就地文件结构上进行文本替换,重新使用 PHP 的 ZipArchive 类对其进行压缩,然后发送该文件(当然名为
.docx
)。


2
投票

我想这会对你有帮助

docxtemplater-master

从模板生成docx, https://github.com/edi9999/docxtemplater

phpdocx

用于动态生成 docx 格式的 Word 文档的 PHP 库。

http://www.phpdocx.com/


0
投票

检查 http://www.phpbuilder.com/annotate/message.php3?id=1024286 以及它评论的文章。

当我需要生成一个简单的 Excel 表格时,我做了一个类似的技巧。当发送正确的标头时,客户端的 Excel 根本没有抱怨。或者如果可以直接使用其他格式,就使用它。 (.docx或打开的文档是压缩的xml,因此您可以更轻松地操作它)


0
投票

您现在可以使用开源的PHPWord。它可以完成您要求的一切,并生成 docx 文件(以及其他格式)。

© www.soinside.com 2019 - 2024. All rights reserved.