将 coldfusion / html 页面呈现为 docx 扩展而不是文档扩展时出现问题



我正在使用ColdBox/ORM编写应用程序。对于我的问题,我正在尝试使用.docx文件扩展名而不是.doc文件扩展名呈现/下载HTML代码。 下载渲染的文档并尝试打开它时,我收到一个弹出窗口,说

Word 在 **** 中发现不可读的内容。 是否要恢复 本文档的内容是什么?

.cfm页

在我尝试渲染的文件中,html 标记中有以下内容

xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40"

.cfc 页面

原始代码

event.renderData(data=fileReadBinary('fileName.doc')
, contentType='application/msword'
, isBinary=true);

新代码

event.renderData(data=fileReadBinary('fileName.docx')
, contentType='application/vnd.openxmlformats-officedocument.wordprocessingml.document'
, isBinary=true);

我的预期输出是将.cfm文件的内容呈现在.docx文件中,并能够打开和查看它。实际发生的是我得到一些弹出窗口,说"Word 在***********中发现不可读的内容。 是否要恢复此文档的内容?带有是/否按钮。 即使选择"是",我也看不到文件的内容。 但是,当前代码成功呈现为我可以查看/打开的.doc文件。

正如@Ageax提到的,docx是一个更复杂的文件。它们实际上是zip文件。如果您获取.docx并将其重命名为.zip,则可以打开它并检查实际进入.docx的内容。您应该在 zip 的/word/document.xml 文件中找到内容。您可能希望设置尝试使用占位符创建的文档的模板,而不是尝试从头开始创建一个模板。您可以解压缩模板,使用您的数据编辑文档.xml文件,压缩并重命名为 docx。

最新更新