我已经成功完成了在浏览器中而不是“打开/保存”对话框中显示PDF文件的代码。现在,我一直试图在浏览器中显示Word文档。我想在Firefox,IE7 +,Chrome等中显示Word文档。
有人可以帮忙吗?在浏览器中显示Word文档时,总是会出现“打开/保存”对话框。我想使用JavaScript实现此功能。
我已经成功完成了在浏览器中而不是“打开/保存”对话框中显示PDF文件的代码。现在,我一直试图在浏览器中显示Word文档。我想在Firefox,IE7 +,Chrome等中显示Word文档。
有人可以帮忙吗?在浏览器中显示Word文档时,总是会出现“打开/保存”对话框。我想使用JavaScript实现此功能。
Answers:
目前没有浏览器具有呈现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独立呈现。
编辑:
非常感谢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所指出的,要记住的另一个重要警告是,这会将您的文档上载到第三方服务器。如果这是不可接受的,则此显示方法不是正确的操作方法。
现场示例:
url
参数更改为.doc文件的完整URL,该文件可以托管在服务器上,也可以直接链接到任何位置。Google Docs处理转换为可以由浏览器即时处理的格式,不需要将其上传或存储在Google Docs上,而是执行服务器端请求以获取文件。
Brandon和fatbotdesigns的答案都是正确的,但是实施了Google文档预览后,我们发现了多个Google无法处理的.docx文件。切换到MS Office Online预览并且像魅力一样工作。
我的建议是在Google上使用MS Office预览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
是文件要嵌入的路径
本机文档(我很感兴趣)使查看器(和编辑器)专门用于Word文档(旧式二进制.doc和现代docx格式)。这样做不会有损转换为HTML。这是开始使用的方法https://github.com/NativeDocuments/nd-WordFileEditor/blob/master/README.md
如果要预处理DOCX文件,而不是等到运行时,可以先使用Zamzar之类的文件转换API将它们转换为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&Microsoft服务的所有运行时依赖项(例如,如果它们已关闭,或者您受到它们的速率限制)。
它还具有一个好处,您可以根据需要扩展到其他文件类型(PPTX,XLS,DOC等)