文档在线预览集成OfficeToHtml(支撑pc端和移动端在线预览)

楼主
我是社区第79919位番薯,欢迎点我头像关注我哦~

近期项目中需要用到PC和移动端在线预览的功能,起初下载在线预览插件(试用版)发现无法支持移动端,无法满足项目要求。

集成pdf在线预览时发现了PDF.js (mozilla.github.io) ,可以通过url传参(附件路径)方式,在viewer.html中调用pdf.js代码实现pdf文件PC端和移动端在线预览的功能。

因为业务中上传了word等文件,于是继续寻找可在线预览docx、xlsx、pptx等后缀文件的工具,主要还是解决移动端的问题。

最终在一片博客中(纯前端文档预览,还要支持所有主流格式,有这一篇就足够了_docx-preview.js_喵喵喵更多的博客-CSDN博客),发现了一句话:

意外的收获

到此为止,所有的方案都被pass掉了,非常绝望。无果后,我搭上梯子,疯狂Google,终于找到了一个jquery的开源插件,叫做officeToHtml,出于对开源的尊重,这里提供一下人家的访问链接:OfficeJs | Demos,这个开源项目非常好用,引用它的demo就能直接预览主流格式,但是它是基于JQuery的。

经过半天的测试和代码合并,终于实现了一套简单的demo,具体代码如下:

officetohtml.zip (18.48 M)

详细的操作方法如下:

1、将文件解压缩后放入到webroot下。

2、拼接url参数,实现本地文件在线预览

例如本地路径下有个文件

需要对demo.docx在线预览,可以在cpt里面写如下js脚本

//移动端js代码

var file_path="/webroot/officetohtml/pages/files/demo.docx";//文件路径从webroot开始。

var furl = "http://ip:port/webroot/officetohtml/pages/viewer.html?file=" + file_path;

var url = encodeURI(furl);

FR.doHyperlinkByGet({

url: url,

target: '_self'

});

//PC端js代码

var file_path="/webroot/officetohtml/pages/files/demo.docx";//文件路径从webroot开始。

var furl = "http://ip:port/webroot/officetohtml/pages/viewer.html?file=" + file_path;

window.open(furl);

 

说明:pages/viewer.html 文件是我参考demos.html为移动端写的,主要用于传参和预览,非系统自带,其他的代码几乎没有变化(除了css的所调整外)。如开源版本有更新,下载新版本后直接覆盖整套系统就可实现完整替代,保证viewer.html文件不变即可,里面涉及到css和js,可以根据实际情况调整。

可在线预览文件类型为:pptx,docx,xlsx,pdf以及各种图片格式

 

分享扩散:

沙发
发表于 2023-6-26 15:49:03
牛哇牛哇牛哇
板凳
发表于 2023-6-26 16:20:42
非常好!
地板
发表于 2023-6-30 08:53:31
这个很有用,谢谢分享。
5楼
发表于 2023-7-18 09:48:40
可以预览接口形式的附件吗?如附件在第三方系统内,通过拼接连接地址的形式
6楼
发表于 2023-7-21 10:00:14
开源测试打开EXCEL文件中有图片看不到呢?什么原因,可以实现吗?
7楼
发表于 2024-4-15 08:40:05
文件地址可以改为其他服务器的文件吗?
8楼
发表于 2024-4-15 14:29:44
这个可以跨域进行访问吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表