我已经成功地完成了在浏览器中显示 PDF 文件而不是“打开/保存”对话框的代码。现在,我一直在尝试在浏览器中显示 Word 文档。我想在 Firefox、IE7+、Chrome 等中显示 Word 文档。
任何人都可以帮忙吗?在浏览器中显示 Word 文档时,我总是收到“打开/保存”对话框。我想使用 JavaScript 实现此功能。
我已经成功地完成了在浏览器中显示 PDF 文件而不是“打开/保存”对话框的代码。现在,我一直在尝试在浏览器中显示 Word 文档。我想在 Firefox、IE7+、Chrome 等中显示 Word 文档。
任何人都可以帮忙吗?在浏览器中显示 Word 文档时,我总是收到“打开/保存”对话框。我想使用 JavaScript 实现此功能。
目前没有浏览器具有渲染 Word 文档所需的代码,据我所知,目前也没有用于渲染它们的客户端库。
但是,如果您只需要显示 Word 文档,而不需要对其进行编辑,则可以通过 使用 Google 文档查看器<iframe>
来显示远程托管的.doc
/ .docx
。
<iframe src="https://docs.google.com/gview?url=http://remote.url.tld/path/to/document.doc&embedded=true"></iframe>
解决方案改编自“如何使用fancybox显示word文档”。
例子:
但是,如果您希望获得本机支持,在大多数(如果不是所有)浏览器中,我建议将.doc
/重新保存.docx
为 PDF 文件。这些文件也可以由 Mozilla使用PDF.js独立呈现。
编辑:
非常感谢cubeguerrero在评论中发布Microsoft Office 365 查看器。
<iframe src='https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc' width='1366px' height='623px' frameborder='0'>This is an embedded <a target='_blank' href='http://office.com'>Microsoft Office</a> document, powered by <a target='_blank' href='http://office.com/webapps'>Office Online</a>.</iframe>
正如lightswitch05所指出的,要记住的另一个重要警告是,这会将您的文档上传到第三方服务器。如果这是不可接受的,那么这种显示方法就不是正确的做法。
现场示例:
Brandon 和 fatbotdesigns 的答案都是正确的,但是在实施了 Google 文档预览后,我们发现了多个 Google 无法处理的 .docx 文件。切换到 MS Office Online 预览版,工作起来很有魅力。
我的建议是在 Google 上使用 MS Office Preview URL。
https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc'
有一些 js 库可以处理 .docx(不是 .doc)到 html 转换客户端(没有特定的顺序):
https://github.com/lalalic/docx2html — docx 转 html,支持大部分元素
https://github.com/mwilliamson/mammoth.js — 支持标题、列表、表格、尾注、脚注、图像和文本框
https://www.npmjs.com/package/docx2html — 在浏览器或 nodejs 中将 DOCX 文档转换为 HTML
https://github.com/artburkart/docx2html — 显然,在浏览器中工作
注意:如果您正在寻找在客户端转换 doc/docx 文件的最佳方法,那么答案可能是不要这样做。如果您真的需要这样做,那么在服务器端进行,即在无头模式下使用libreoffice、apache-poi (java)、pandoc等。
ViewerJS有助于查看/嵌入 openoffice 格式,如 odt、odp、ods 和 pdf。
用于嵌入 openoffice/pdf 文档
<iframe src = "/ViewerJS/#../demo/ohm2013.odp" width='700' height='550' allowfullscreen webkitallowfullscreen></iframe>
/ViewerJS/
是ViewerJS的路径
#../demo/ohm2013
是您要嵌入的文件的路径
我想我有一个想法。这也一直困扰着我,但我仍然无法让它在 Chrome 中显示。
将 word 中的文档(名称.docx)保存为单个文件网页(名称.mht)在您的 html 中使用
<iframe src= "name.mht" width="100%" height="800"> </iframe>
根据需要更改高度和宽度。