html - 将coldfusion / html页面呈现为docx扩展而不是doc扩展时出现问题
问题描述
我正在使用 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 文件中找到内容。与其尝试从头开始创建一个,不如为您尝试使用占位符创建的文档设置一个模板。您可以解压缩模板,使用您的数据编辑 document.xml 文件,压缩并重命名为 docx。
推荐阅读
- google-chrome - Google Chrome Omnibar - 书签优先于搜索建议
- terminal - 9 是什么意思,在 -r 选项中: zip -r9 ${OLDPWD}/package .?
- xampp - 如何通过 php 和 xampp localhost 发送电子邮件?
- virtual-machine - 如何通过 Jupyter Lab 在 Google Cloud Platform Compute Engine VM 实例上读取照片以进行深度学习
- angular - 不能在 Angular 9 中使用 Ng-bootstrap
- git - Git分支健康:检查当前分支历史是否是远程跟踪分支历史的前缀
- ruby-on-rails - .where 2 个日期字段。如果第一个字段为零,则搜索第二个字段
- java - Selenium:在特定元素之前按类 xpath 查找元素
- javascript - 如何在用户未连接时禁止访问页面(Firebase)
- javascript - 访问 GeoFirestore 实用程序函数 (calculateDistance)