我已成功完成代码以在浏览器中显示PDF文件,而不是"打开/保存"对话。现在,我一直试图在浏览器中显示Word文档。我想在Firefox,IE7 +,Chrome等中显示Word文档。
任何人都可以帮忙吗?我总是得到#34;打开/保存"在浏览器中显示Word文档时的对话框。我想使用JavaScript实现此功能。
答案 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;。
示例:
但是,如果您更喜欢原生支持,在大多数情况下,如果不是所有浏览器,我建议您将.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所指出的,要记住的另一个重要警告是,这会将您的文档上传到第三方服务器。如果这是不可接受的,那么这种展示方法就不是正确的行动方案。
直播示例:
答案 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转换客户端(没有特定的顺序):
https://github.com/lalalic/docx2html - docx to html,支持大多数元素
https://github.com/mwilliamson/mammoth.js - 支持标题,列表,表格,尾注,脚注,图片和文本框
https://www.npmjs.com/package/docx2html - 在浏览器或nodejs中将DOCX文档转换为HTML
https://github.com/artburkart/docx2html - 显然可以在浏览器中使用
注意:如果您正在寻找在客户端转换doc / docx文件的最佳方法,那么可能答案是不要这样做。如果你确实需要这样做,那就在服务器端进行,即使用libreoffice in headless mode,apache-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