如何使用 JavaScript 在浏览器中呈现 Word 文档(.doc、.docx)?

IT技术 javascript browser ms-word
2021-01-29 21:38:11

我已经成功地完成了在浏览器中显示 PDF 文件而不是“打开/保存”对话框的代码。现在,我一直在尝试在浏览器中显示 Word 文档。我想在 Firefox、IE7+、Chrome 等中显示 Word 文档。

任何人都可以帮忙吗?在浏览器中显示 Word 文档时,我总是收到“打开/保存”对话框。我想使用 JavaScript 实现此功能。

6个回答

目前没有浏览器具有渲染 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文档”。

例子:

JSFiddle

但是,如果您希望获得本机支持,在大多数(如果不是所有)浏览器中,我建议将.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所指出的,要记住的另一个重要警告是,这会将您的文档上传到第三方服务器。如果这是不可接受的,那么这种显示方法就不是正确的做法。

现场示例:

谷歌文档查看器

微软办公查看器

我们在 2021 年,但仍然没有解决方案,可悲的是!😢
2021-03-14 21:38:11
只想指出,这两种方法肯定会将文件上传到 Google 和 Microsoft 的服务器。如果您正在处理访问权限有限的敏感信息,请不要这样做。使用 PDF.js 的替代解决方案生成文件的 PDF 版本以在浏览器中查看,并提供下载各种 excel/doc 版本的链接。
2021-03-20 21:38:11
@Pankaj 即使您托管本地服务器,Google 也无法访问localhost. 它需要一个可公开访问的 URL。您可以使用像Finch这样的基本转发服务
2021-03-25 21:38:11
您还可以使用 office live 应用查看器://view.officeapps.live.com/op/embed.aspx?src=your_url_here 将此 url 放入 iframe
2021-03-30 21:38:11
@lightswitch05 嘿,刚刚偶然发现了这一点,我在阅读您的评论后查看了 pdf.js,但找不到任何关于将 doc/xls 文件转换为 pdf 以在浏览器中显示它们的文档,这究竟是如何工作的?
2021-03-30 21:38:11

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' 
提供一个反面叙述 - 我们选择了谷歌版本,因为微软渲染器需要更长的时间来加载 chrome 和 ff
2021-03-10 21:38:11
发生错误 很抱歉,由于某种原因,我们无法为您打开此文件。使用这个时我遇到了这个错误
2021-04-03 21:38:11
使用这个有什么限制吗?support.microsoft.com/en-us/help/2769380/...
2021-04-09 21:38:11
是否有类似的 PDF 预览服务?
2021-04-09 21:38:11

有一些 js 库可以处理 .docx(不是 .doc)到 html 转换客户端(没有特定的顺序):

注意:如果您正在寻找在客户端转换 doc/docx 文件的最佳方法,那么答案可能是不要这样做如果您真的需要这样做,那么在服务器端进行,即在无头模式下使用libreofficeapache-poi (java)pandoc等。

我会注意到我的图书馆完全没有维护。它能够将 docx 文件转换为可以在浏览器中呈现的内容。我不知道这是否属实。
2021-04-01 21:38:11

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 是您要嵌入的文件的路径

@guettli 您可以使用 pandoc 进行转换。那里有一个 pandoc wasm 版本
2021-03-10 21:38:11
不幸的是,在我的上下文中,微软格式更为普遍。
2021-03-16 21:38:11
我可以使用来自 aws s3 的链接 url
2021-03-21 21:38:11
不,您只提供本地链接
2021-04-05 21:38:11

我想我有一个想法。这也一直困扰着我,但我仍然无法让它在 Chrome 中显示。

将 word 中的文档(名称.docx)保存为单个文件网页(名称.mht)在您的 html 中使用

<iframe src= "name.mht" width="100%" height="800"> </iframe>

根据需要更改高度和宽度。

这种方法将显示没有背景图形、页眉、页脚和其他元素的文档文本。对于具有不同元素定位的长文件,保存为网页会破坏设计。
2021-03-14 21:38:11
@guidomocha 不要只是评论,请提供有关为什么这是一种糟糕方法的推理。
2021-03-31 21:38:11