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

时间:2015-01-15 06:18:04

标签: javascript browser ms-word

我已成功完成代码以在浏览器中显示PDF文件,而不是"打开/保存"对话。现在,我一直试图在浏览器中显示Word文档。我想在Firefox,IE7 +,Chrome等中显示Word文档。

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

10 个答案:

答案 0 :(得分:177)

目前没有任何浏览器具有呈现Word文档所需的代码,据我所知,目前还没有用于呈现它们的客户端库。

但是,如果您只需要显示Word文档,但不需要对其进行编辑,则可以使用Google文档&#39;查看器通过<iframe>显示远程托管的.doc / .docx

<iframe src="https://docs.google.com/gview?url=http://remote.url.tld/path/to/document.doc&embedded=true"></iframe>

改编自&#34; How to display a word document using fancybox&#34;。

示例:

JSFiddle

但是,如果您更喜欢原生支持,在大多数情况下,如果不是所有浏览器,我建议您将.doc / .docx重新保存为PDF文件这些也可以由Mozilla使用PDF.js独立呈现。

修改

非常感谢fatbotdesigns在评论中发布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所指出的,要记住的另一个重要警告是,这会将您的文档上传到第三方服务器。如果这是不可接受的,那么这种展示方法就不是正确的行动方案。

直播示例:

Google Docs Viewer

Microsoft Office Viewer

答案 1 :(得分:24)

Brandon和fatbotdesigns的答案都是正确的,但实施了Google文档预览后,我们发现了Google无法处理的多个.docx文件。切换到MS Office Online预览,工作就像一个魅力。

我的建议是使用Google Office上的MS Office预览网址。

https://view.officeapps.live.com/op/embed.aspx?src=http://remote.url.tld/path/to/document.doc' 

答案 2 :(得分:7)

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

注意:如果您正在寻找在客户端转换doc / docx文件的最佳方法,那么可能答案是不要这样做。如果你确实需要这样做,那就在服务器端进行,即使用libreoffice in headless modeapache-poi (java)pandoc或其他任何最适合你的库。功能

答案 3 :(得分:2)

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

答案 4 :(得分:1)

本机文档(我很感兴趣)使查看器(和编辑器)专门用于Word文档(旧式二进制.doc和现代docx格式)。这样做不会有损地转换为HTML。有一个在线演示,您可以在其中尝试自己的文档。

答案 5 :(得分:1)

PDFTron WebViewer支持直接在任何浏览器中呈现Word(和其他Office格式),而无需任何服务器端依赖性。 要进行测试,请尝试https://www.pdftron.com/webviewer/demo

答案 6 :(得分:0)

我想我有个主意。 这也是我的坚果,我仍然无法在Chrome中显示它。

将word中的文档(name.docx)保存为单个文件网页(name.mht) 在你的HTML使用

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

根据您的需要改变高度和宽度。

答案 7 :(得分:0)

如果您想预处理DOCX文件,而不是等到运行时,可以先使用文件转换API(例如Zamzar)将它们转换为HTML。您可以使用API​​以编程方式将DOCX转换为HMTL,将输出保存到服务器,然后将该HTML提供给最终用户。

转换非常简单:

curl https://api.zamzar.com/v1/jobs \
-u API_KEY: \
-X POST \
-F "source_file=@my.docx" \
-F "target_format=html5"

这将删除Google和Google的所有运行时依赖项。微软的服务(例如,如果他们失败了,或者你受到他们的速率限制)。

如果您需要(PPTX,XLS,DOC等),它还可以扩展到other filetypes

答案 8 :(得分:0)

您还可以使用一些现有的API,例如GroupDocs.Viewer,它可以将您的文档转换为图像或html,然后就可以在您自己的应用程序中显示它。

答案 9 :(得分:-1)

使用Libre Office API 这是一个例子

libreoffice --headless --convert-to html docx-file-path --outdir html-dir-path