我需要从Word模板创建一个Word文档,就像我们需要用值替换模板中的几个字符串(比如变量)。
请告诉我们如何在 PHP(或 cakePHP)中做到这一点。
我建议查看 phpLiveDocx:http://www.phplivedocx.org/
还有其他一些可能值得一读的问题:
您遇到的最大问题是
.doc
格式本质上是二进制的(请参阅 这个问题 和 Joel 的这篇文章)。
是否有任何原因导致您无法使用 HTML 格式的文档(该单词已经能够打开 10 多年)或富文本文件? 这两者都是基于文本的,并且会显着减轻您的痛苦。 因此,它们非常容易使用模板。
或者,如果您可以确定用户将拥有更新版本的 Office(2007+),那么您可以使用
.docx
文档,尽管这有点棘手,它实际上是 Zip 存档和 XML 数据。 您可以相当简单地实现这一点,方法是创建一个包含所需模板的 .docx
word 文件,将其重命名为 .zip
,提取文件,教您的应用程序在此就地文件结构上进行文本替换,重新使用 PHP 的 ZipArchive 类对其进行压缩,然后发送该文件(当然名为 .docx
)。
我想这会对你有帮助
docxtemplater-master
从模板生成docx, https://github.com/edi9999/docxtemplater
phpdocx
用于动态生成 docx 格式的 Word 文档的 PHP 库。
检查 http://www.phpbuilder.com/annotate/message.php3?id=1024286 以及它评论的文章。
当我需要生成一个简单的 Excel 表格时,我做了一个类似的技巧。当发送正确的标头时,客户端的 Excel 根本没有抱怨。或者如果可以直接使用其他格式,就使用它。 (.docx或打开的文档是压缩的xml,因此您可以更轻松地操作它)
您现在可以使用开源的PHPWord。它可以完成您要求的一切,并生成 docx 文件(以及其他格式)。