最新要闻
- 51分09秒跑5公里! 96岁老太打破年龄组世界纪录
- 上海一老人误将地铁扶手当售卖机:拿起手机扫码
- 全球热头条丨AMD定制处理器瞩目:华硕ROG Ally掌机内部结构首次公布
- 鲁大师久用流畅度测试排名出炉:OPPO Find X6 Pro第一 天天短讯
- 环球新消息丨飞机起飞前男子以照顾师傅为由滞留商务舱:称不需要对号入座
- 神舟十六发射成功!03 你还有七个学生没毕业:网友点赞导师到太空跑数据去了
- 新洁能:5月29日融券净卖出4.04万股,连续3日累计净卖出4.99万股
- 神舟十六号发射圆满成功:大红屏再次点亮 环球新资讯
- 全脂/低脂可选:特仑苏纯牛奶2.7元/盒大促(商超6元)
- 中科院院士:电动车主可以往外卖电 一年能卖4000元-焦点简讯
- 世界短讯!“十项全能”是怎样一种体验?华为Mate X3绝对是大屏折叠旗舰天花板
- 世界视点!小米MIX Fold 3曝光:屏下摄像头+潜望长焦 再无短板
- 每日热讯!电力板块异动拉升 世茂能源两连板
- 最野性的福特SUV!探险者昆仑巅峰版上市:售39.98万
- 新资讯:媒体评“剩菜盲盒”被疯抢 越来越多年轻人喜爱:便宜、杜绝浪费食品
- 荣耀赵明:MagicOS 8.0会有巨大进步 某些层面跟鸿蒙流畅性不相上下-环球快资讯
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
文档在线预览(三)使用js前端实现word、excel、pdf、ppt 在线预览|世界报资讯
@
(资料图)
目录- 实现方案
- 一、docx文件实现前端预览
- 1、docx-preview
- 2、Mammoth
- 二、PDF文件实现前端预览
- 1、pdf.js
- 2、pdfobject.js
- 3、vue-pdf
- 4、iframe / object/ embed
- 三、Excel文件实现前端预览
- 1、sheetjs js-xlsx
- 2、canvas-datagrid
- 3、 handsontable
- 4、DataTables
- 四、pptx文件实现前端预览
- 1、PPTXJS
- 总结
- 1、前端根据不同文件类型使用对应的在线预览组件进行在线预览。
- 2、后端配合将不同格式的文件转换成pdf,转成统一的文件格式,再由前端实现预览效果
1、通过将文档转成图片:详见《文档在线预览(一)通过将txt、word、pdf转成图片实现在线预览功能》;
2、将文档转成html:详见《文档在线预览(二)word、pdf文件转html以实现文档在线预览》;
其实除了这两种实现方式之外之外,还有一种常见的做法就是在前端在通过相关的在线预览组件来实现预览
实现方案
在网上的找了一圈实现方案,发现还挺多开源组件可以实现,整理了一下这些开源组件放在了下面的表格里,里面有一些是可以直接通过npm在vue中引入使用。
文档格式 | 相关的开源组件 |
---|---|
word(docx) | docx-preview、mammoth |
pdf.js、pdfobject.js、vue-pdf | |
excel | sheetjs js-xlsx、canvas-datagrid、handsontable、DataTables |
powerpoint(pptx) | pptxjs |
一、docx文件实现前端预览
1、docx-preview
是一个 纯前端的JavaScript库,它的优点是可以后端就实现对 .docx 的文件进行在线预览,但是缺点是 不支持.doc(划重点)。
github地址:https://github.com/VolodymyrBaydalka/docxjs
demo示例
安装:
npm install docx-preview -S
使用效果:
2、Mammoth
Mammoth 原理是将 .docx 文档并将其转换为 HTML。 注意Mammoth 转换过程中复杂样式被忽,居中、首行缩进等,此外同样也只能转换.docx文档。
github地址:https://github.com/mwilliamson/mammoth.js
安装:
npm install mammoth
二、PDF文件实现前端预览
1、pdf.js
pdf.js是一款非常优秀的pdf解析工具,其实火狐浏览器内核自带pdf预览解析器就是pdf.js这个解析器,我们用火狐浏览器打开pdf文件并按F12打开控制台可以看到源码内容。
官网地址:http://mozilla.github.io/pdf.js
github地址:https://github.com/mozilla/pdf.js
demo示例
使用效果:
2、pdfobject.js
PDFObject.js - 将PDF嵌入到一个div内,而不是占据整个页面,要求浏览器支持显示PDF(主流浏览器都支持),如果浏览器不支持,也可通过配置PDF.js来实现
官网地址: https://pdfobject.com/
github地址:https://github.com/pipwerks/PDFObject
实现效果:
3、vue-pdf
Vue-pdf是通过Vue下基础基于 pdf.js 组件实现PDF文件的展示,操作和生成的组件。
github地址:https://github.com/FranckFreiburger/vue-pdf
demo示例
安装:
npm install --save vue-pdf
实现效果:
4、iframe / object/ embed
iframe / object / embed 使用方法和效果都同理,即将 pdf 作为插件内嵌在这三个HTML标签内,以下用 iframe 为例,效果就如同直接用链接打开 pdf 文件是一样的,相当于一个新的页面内嵌在当前页面中。
实现效果:
三、Excel文件实现前端预览
1、sheetjs js-xlsx
js-xlsx是sheetJS出品的读取和导出各种ecxel的工具库,功能十分强大。
xlsx官方文档:https://www.npmjs.com/package/xlsx
github仓库: https://github.com/SheetJS/sheetjs
安装:
npm install xlsx
js-xlsx可以用二进制流方式读取得到整份excel表格对象
let workbook = XLSX.read(data, { type: "array" }); //表格对象let sheetNames = workbook.SheetNames; //获取到所有表格let worksheet = workbook.Sheets[sheetNames[0]]; //取第一张表
获取表格数据后再调用js-xlsx提供的方法,直接将表格数据转换为html代码,再将html代码渲染到指定容器就完成了
let html = XLSX.utils.sheet_to_html(worksheet);
实现效果:
2、canvas-datagrid
基于 canvas 来渲染表格,支持表格过滤、数据编辑、自定义操作菜单、大数据场景优化、主题样式修改
github地址:https://github.com/TonyGermaneri/canvas-datagrid
demo示例
安装:
npm install canvas-datagrid
3、 handsontable
handsontable基于 DOM 元素来渲染表格,功能强大,canvas-datagrid` 支持的功能它都支持,并且主题样式扩展更方便
官网地址:https://handsontable.com/docs/7.1.0/tutorial-custom-build.html
github地址:https://github.com/handsontable/handsontable
文档地址:https://handsontable.com/docs/javascript-data-grid
安装:
npm install handsontable @handsontable/vue
Demo示例
实现效果:
4、DataTables
基于Jquery 表格插件DataTables的一个表格插件,还在用Jquery 可以以考虑这个
官网地址:https://www.datatables.net
安装:
官网下载地址,在你的项目中使用 DataTables,只需要引入三个个文件即可,jQuery库,一个DataTables的核心js文件和一个DataTables的css文件。有的时候还需要DataTables样式的一些资源。
<script src="DataTables/datatables.min.js"></script>
使用方式:
$("#example").DataTable( { data: data} );
四、pptx文件实现前端预览
1、PPTXJS
PPTXJS是jquery的一个插件,她的主要功能是实现pptx转html,用于在线进行展示
官网地址:https://pptx.js.org/index.html
github地址:https://github.com/meshesha/PPTXjs
PPTXjs | Demos
使用示例:
<script> $("#slide-resolte-contaniner").pptxToHtml({ pptxFileUrl: "Sample_demo1.pptx", slidesScale: "50%", slideMode: false, keyBoardShortCut: false }); </script>
实现效果:
总结
本文主要介绍了word、excel、pdf、ppt等文件纯前端实现在线预览的方式,具体实现可以是:
1、前端根据不同文件类型使用对应的在线预览组件进行在线预览。
前端通过判断不同文件类型的使用对应的在线预览组件进行在线预览。 因为不同类型的在线预览组件不一样在使用时预览界面会存在差异,如果需要做的完善一点 最好是把所有用到的组件都统一封装的一个在线预览的UI界面中。
2、后端配合将不同格式的文件转换成pdf,转成统一的文件格式,再由前端实现预览效果
从本文的测试情况来看前端实现预览最好的效果还是PDF,不会出现一些文字错乱和乱码的问题,这样能保留文件的一些样式的效果,同时前端也只用支持一种文件格式的预览,工作量也能大大降低。
以上就是使用js前端实现word、excel、pdf、ppt等文件在线预览的方式的全部内容,感谢大家的阅读!
关键词:
-
文档在线预览(三)使用js前端实现word、excel、pdf、ppt 在线预览|世界报资讯
@[toc]关于实现文档在线预览的做法,之前文章提到了的两种实现方式:1、通过将文档转成图片:详见[《文档在
来源: -
天天看点:用一杯星巴克的钱,训练自己私有化的ChatGPT
![file](https: img2023 cnblogs com other 2685289 202305 2685289-20230530115137903-2141604303 png)>
来源: 文档在线预览(三)使用js前端实现word、excel、pdf、ppt 在线预览|世界报资讯
天天看点:用一杯星巴克的钱,训练自己私有化的ChatGPT
mysql设置字段的排序规则对大小写敏感_焦点精选
51分09秒跑5公里! 96岁老太打破年龄组世界纪录
上海一老人误将地铁扶手当售卖机:拿起手机扫码
全球热头条丨AMD定制处理器瞩目:华硕ROG Ally掌机内部结构首次公布
鲁大师久用流畅度测试排名出炉:OPPO Find X6 Pro第一 天天短讯
环球新消息丨飞机起飞前男子以照顾师傅为由滞留商务舱:称不需要对号入座
神舟十六发射成功!03 你还有七个学生没毕业:网友点赞导师到太空跑数据去了
新洁能:5月29日融券净卖出4.04万股,连续3日累计净卖出4.99万股
Java实现打包压缩文件或文件夹生成zip以实现多文件批量下载
大语言模型技术原理-环球视讯
MySQL之运算符大全|每日速讯
第八单元 数组与集合
(Java)记一次通过API递归分页“爬取”网页数据的开发经历
神舟十六号发射圆满成功:大红屏再次点亮 环球新资讯
全脂/低脂可选:特仑苏纯牛奶2.7元/盒大促(商超6元)
中科院院士:电动车主可以往外卖电 一年能卖4000元-焦点简讯
世界短讯!“十项全能”是怎样一种体验?华为Mate X3绝对是大屏折叠旗舰天花板
世界视点!小米MIX Fold 3曝光:屏下摄像头+潜望长焦 再无短板
每日热讯!电力板块异动拉升 世茂能源两连板
企业内训一体化解决方案,布道师教学实训云平台【开源版上线】|今日热闻
世界快报:JS中的事件监听
最野性的福特SUV!探险者昆仑巅峰版上市:售39.98万
新资讯:媒体评“剩菜盲盒”被疯抢 越来越多年轻人喜爱:便宜、杜绝浪费食品
荣耀赵明:MagicOS 8.0会有巨大进步 某些层面跟鸿蒙流畅性不相上下-环球快资讯
天天实时:给老外来点中国车 比亚迪ATTO 3成海外多国销冠:跻进全球前10
每日简讯:PS5国内白菜价:但PS5游戏盘开始涨价了
MongoDB学习笔记:配置文件-世界今热点
天涯神贴合集(2023最新)
天天快资讯丨找数字专注力训练(找数字)
每日头条!刚被微软夸史上最可靠系统 Win11又惹祸:AMD显卡中招
天天讯息:知名电竞解说Yammers自杀 留遗书称曾遭霸凌:玩家晒视频怀念 再见了宝贝
国产电商二手剪辑卖货 拿捏欧美老外
女子用餐被收700元服务费却无服务 官方回应1对1管家服务:网友感慨
如何强制删除电脑文件内容(如何强制删除电脑文件)
收益率持续下行 同业存单市场走牛
世界快资讯丨【读财报】19家民营银行财报透视:网商银行、华瑞银行、新网银行不良率居前三
无敌性价比、能灭Zen4全家桶 Intel 14核酷睿i5-13600KF到手1969元
SSD大牌被卷到!铠侠RC20史低价:1TB 299元/2TB 599元
【世界新要闻】神舟十六号即将发射!三位航天员亮相出征仪式:要出差半年
天天热讯:今年最强LCD手机!Redmi Note 12T Pro游戏实测:《王者》《原神》几乎满帧
全球观点:是否具有派遣资格是什么意思_是否具有派遣资格
读数据压缩入门笔记02_二进制和熵
计划2030年前实现中国人登月 马斯克:中国航天比多数人想象得要强大
女子骨折做手术后左腿变长2.3厘米:鉴定十级伤残 医院拒赔
产油大国起内讧:俄罗斯低价供应大量石油 沙特都顶不住了|独家焦点
5月29日基金净值:信诚量化阿尔法股票A最新净值1.4838,跌0.3% 全球通讯
找狗(关于找狗的基本详情介绍) 当前最新
有这么个神人:被毒蛇咬173次 长期注射蛇毒 活了101岁
Flash死了!但小时候玩过的游戏 还不想死
地铁上 女子充电宝突然爆炸!现场烟雾弥漫
今晚油价或迎年内第四涨!加满一箱多花3.5元
3300秒!我国未来载人登月火箭主力发动机单台试车时长创新纪录 焦点滚动
【环球热闻】111完美邮箱_1163 com邮箱
【港股通】国泰航空(00293)据报接近订购波音777-8F货机-环球时快讯
土耳其总统埃尔多安再次赢得大选,将再度连任,外交部回应
5月29日基金净值:南方荣光A最新净值1.523,涨0.07% 当前观点
里程碑博士_里程碑的意思_今日看点
速看:武汉洪山融创智谷举办首届菁英联谊会,青年男女开启甜蜜之旅
黄果树天星洞景区小孩敲断钟乳石 工作人员称会尽快处理进行追责
国产动漫《斗罗大陆》终于迎来大结局 堪称“电影级”观影体验
德国一模特通过断骨增高将自己的身高从163增加至180厘米 手术风险极大
阿根廷国家队公布最新一期球队大名单 将由梅西与迪玛利亚领衔
东航全球首架交付国产大飞机C919顺利抵达 全球首次商业载客飞行成功
天天观点:淘宝账号登陆失败怎么回事_我的淘宝账户登录
2023.5.29Linux系统压缩打包|今日看点
环球看点!蚕豆迎丰收 “公司+专业合作社+农户”模式助农增收
蒙牛乳业宁夏工厂正式落成投产 为全球首座乳业全数智化工厂-天天快报
华硕发布49英寸QD-OLED带鱼屏显示器:5K分辨率 1000nits亮度
热点评!童年回忆满满 《王者荣耀》三款电玩新皮肤来了
全球今亮点!能玩破解游戏!任天堂回应下架《海豚模拟器》
全球快看点丨红蜘蛛新一代校色仪Spyder X2/X2 Ultra发布:最高支持2000nit亮度
今日看点:12)自定义函数
文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题 天天实时
【时快讯】100克黄焖鸡调料可以做几斤鸡肉?
Intel底层技术加持、腾讯应用宝登陆电脑:安卓应用完美移植PC 更有神器辅助 世界通讯
重回线下!2023 ChinaJoy官宣:7月28日上海见
全球快讯:让利16亿卖爆!小米618天猫预售战报出炉:订单金额超6亿拿下冠军
手机意外跌落损坏 小米工程师力保数据 女米粉写信感谢:还买小米 即时
全球要闻:SpringBoot集成Swagger3.0(详细)
世界速读:对话丨财通基金朱海东:市场情绪影响沪深300近期走势,仍看好A股
全球观点:19岁MIT辍学,26岁的他干出个500亿独角兽
Win11 23H2更新确认秋季推出!功能更新数量少了
世界微速讯:你会买么?调查显示超76%玩家不看好索尼新掌机
世界聚焦:Doris(三) -- Rollup和物化视图
《小美人鱼》在多国遭遇集体刷差评 女主假发造价15万美元
不是手游、不抽角色!国产大作《影之刃零》官宣为买断单机游戏|快播报
天天微动态丨日版任天堂Switch OLED版618抄底价:到手1817元
时讯:余承东放出豪言:问界年产上千万 做世界第一
快看:充满80%仅需30分钟!7座理想4C超级充电站上线
天天热点评!【一步步开发AI运动小程序】九、姿态辅助调试桌面工具折使用
刷爆的“信用卡”——起底美国债务危机_全球最资讯
每日聚焦:深交所:调整深证成指、创业板指、深证100等指数样本股
打造全国一流职教发展共同体,深职院与深圳二职签约合作办学
有梦想就了不起!高考307分女孩考研逆袭211:还将继续攻读博士
累计被扣78分 男子酒驾被查:自述“我平时是个老实人”
全球时讯:血糖健康开拓者!华为WATCH4 Pro评测:全面的腕上守护专家
女性出现这7个症状要小心尿路感染:再忙也要去医院看看!-世界速递
全球头条:山东一公司要求员工签自愿放弃社保承诺书 同事:不签担心被挤兑