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

242

我已经成功地编写了代码,可以在浏览器中显示PDF文件,而不是“打开/保存”对话框。现在,我正试图在浏览器中显示Word文档,但卡住了。我想在Firefox、IE7+、Chrome等浏览器中显示Word文档。

有人能帮忙吗?每次在浏览器中显示Word文档时,我总是得到“打开/保存”对话框。我想使用JavaScript实现这个功能。


1
https://dev59.com/i2DVa4cB1Zd3GeqPgsqL - Sadikhasan
2
你可以在React中使用syncfusion-document-editor来展示和编辑docx文件。 - Yusuf Mohammad
14个回答

0
微软用户将在浏览器内拥有一个Word浏览器,但是Internet Explorer Office Word插件现已过期。 enter image description here 其他人已在答案中提到,对于远程文件,您可以使用较新的365 MS Web File Viewer作为对象链接/嵌入,例如单击此片段。

<iframe src="https://view.officeapps.live.com/op/embed.aspx?src=https%3A%2F%2Fraw%2Egithubusercontent%2Ecom%3A443%2Fdolanmiu%2Fdocx%2Fmaster%2Fdemo%2Fdotx%2Ftemplate%2Edotx" width="640px" height="300px" frameborder="0">This is an embedded <a target="_blank" href="https://office.com">Microsoft Office</a> document, powered by <a target="_blank" href="https://office.com/webapps">Office</a>.</iframe>
enter image description here

此外,混合的WordPad/OpenOffice/Jsview Open Document模板/文本格式是一种次要的替代方案。

然而,支持DocX的专有部分的唯一方法是使用MSOffice Viewer,但MS也停止了该服务。

因此,查看复杂的DocX文件的真正好方法是将其打印成纸质版,并且最常用的格式是非可搜索图像或可搜索的PDF枚举形式。


0
  • 有一个安卓文件管理器MiXplorer,它拥有一个“HTML Viewer”(ContentViewerActivity),可以很好地显示各种docx文件的内容。
  • 它可以离线使用,免费提供,并且安装包仅有约4 MB(截至最新版本v6.61.7)。
  • 它不会完全显示相同的内容,而是更像是文件的阅读视图。
  • 但由于它保留了以下内容:
    • 元素:图片、表格、列表
    • 格式:字体颜色和字体加粗。我想字体大小也是。
  • 我发现它足以阅读我遇到的大多数docx文件。

我还没有找到任何桌面端的替代品。

我在这里分享它,希望能引起某些人的兴趣,弄清楚它是如何做到的,并使其在桌面上成为可能。

如果安卓上如此轻量级的html viewer可以渲染它(尽管不完全),那么在桌面上肯定也是可能的,只是目前没有实现。


0
我在制作网页应用程序时,发现了这个问题,即如何无缝地呈现Word和Excel文件。该应用程序允许拖放上传,将文件附加到页面上显示的任何记录中。我的方法是创建一个协议处理程序。我选择了woi://作为Web办公接口。打开一个以此开头的Web地址的新窗口会调用一个exe。它适用于所有经过测试的浏览器。唯一需要做的就是将exe注册为协议处理程序,如果不带参数调用exe,则exe本身会提示是否注册或取消注册。如果该exe存在于局域网上,则首先将其复制到%userprofile%\AppData\Roaming\web_office_invoker并从那里注册。
如果用户在文件上点击视图,如果是PDF,则立即流式传输到新窗口,并使用响应头指示它是PDF。浏览器会本地渲染PDF数据流。如果是Word或Excel文件,则客户端中的JavaScript必须首先查询应用程序,并使用woi://协议构造URL,然后使用该URL打开新窗口。当调用exe并将整个URL传递给exe后,该窗口当然不会打开。 URL中嵌入了一个密钥和其他信息,允许exe发出Web请求以获取另一个URL。最后,Word或Excel将使用该URL作为命令行参数打开。 Word或Excel然后对该URL进行请求,应用程序提供上传的原始文件的未更改字节流。这完美地工作,并且完全无缝。
使用Word在线不安全,因为文档可能包含敏感信息,并且要使用Word在线,必须将文档传输到Microsoft的服务器以进行呈现。此方法使用安装在工作站上的可执行文件。此外,可以针对从具有可替换文本的服务器中提取的Word和Excel文档运行脚本,以产生填写的表单。

-2

使用Libre Office API

以下是一个例子

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


4
请再次阅读问题。这不像是 JavaScript。 - fcdt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接