最新要闻
- 国家气候中心:今年盛夏极端天气气候事件偏多 高温、强降水等来袭_世界资讯
- 实时焦点:AMD锐龙5 7500F真身浮现:Zen4第一次没了核显、价格诱人
- 男子被鱼刺扎伤截掉中指:感染病死率高的创伤弧菌 医生提醒
- 每日看点!高温叠加少雨:北方2地出现特旱
- 【天天速看料】32:9比例曲面屏!红魔公布49英寸QD-OLED电竞显示器
- 要闻速递:42万买奥迪A7L新车 先异响后地库抛锚!第一视角感受车主无奈
- 今日看点:华建集团下属公司水利院联合签署有关防洪能力提升工程合同
- 腾势N7做了违背王传福的决定!比亚迪首款智能车30万开卖
- 每日简讯:极摩客新一代迷你主机要上14代酷睿 GPU追赶RTX 3050
- 理想联合创始人沈亚楠退出公司股东行列:李想持股比例超95%
- 【当前热闻】董明珠谈预制菜:要让世界爱上中国味道
- 北科大用“卡脖子”技术做录取通知书!这种钢打破国外垄断
- 金丝兔压脚厂家(金丝兔)
- 入汛以来189条河流发生超警以上洪水
- 小米又对华为提专利无效宣告请求 细节揭秘:涉及拍照、4G/LTE技术
- 不讲武德!扎克伯格偷家马斯克:推特大乱Meta趁机火速上线竞品 热资讯
手机
光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯
搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注
- 光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯
- 搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注
- 视点!美国首位女总统即将诞生?拜登恐怕要提前下岗,美政坛迎来变局?
- 当前速递!用理想仪器实现更好的颗粒 德国新帕泰克亮相CPHI & PMEC China获好评
- 微粒贷怎么申请开通 开通方法如下
- 焦点简讯:心疼!这位40岁的云南缉毒警,已是满头白发
家电
全球热推荐:文档在线预览 总结篇
@
目录- 实现方式一、由后端统一将文档转成图片,再返回给前端进行展示
- 实现方式二、由后端统一将文档转成html,再返回给前端进行展示
- 实现方式三、由后端统一将文档转成pdf,再返回给前端进行展示
- 实现方式四、纯前端实现在线预览
- 实现方式五、服务器安装组件实现在线预览
- 1、kkfileview
- 2、OnlyOffice
- 3、office online server
- 4、Libre Office Online(不推荐)
- 5、Collabora Online
- 总结
文档在线预览(二)word、pdf文件转html以实现文档在线预览
(资料图片)
文档在线预览(三)使用js前端实现word、excel、pdf、ppt 在线预览
文档在线预览(四)将word、txt、ppt、excel、图片转成pdf来实现在线预览
文档在线预览(五)在服务器部署组件来实现在线预览
因为拆成了多篇文章,内容比较分散,所以本文将对这几种方式进行进行一个总结,阐述每种实现方式的大致流程,以及比较一下每种实现方式的优缺点。
实现方式一、由后端统一将文档转成图片,再返回给前端进行展示
这方式是由后端通过aspose-words(用于txt、word转图片),pdfbox(用于pdf转图片)、Graphics2D (用于excel等文件转图片)等组件将文档统一转换成图片,再返回给前端进行展示。详细的实现可以参考这篇文章:《文档在线预览(一)通过将txt、word、pdf转成图片实现在线预览功能》
这种方式的优点是:
1、图片在线预览控件比较多,也比较成熟,前端起来比较方便
2、文档转成图片后能有效减少文档内容被复制的情况
3、浏览器也天然支持
这种方式的缺点是:
1、文档往往都不只一页,所有同城的做法将文档的每一页都生成一张图片,所以前后端都需要考虑处理多张图片的问题(可以考虑把图片都放到一个html或者pdf里)
2、如果图片都以base64的格式返回给前端,会造成返回体过大的问题,如果返回有加日志还会存在日志体较长,增加日志服务器的问题。
3、因为base64的格式直接返回返回体过长,好一点的做法现将图片上传到图片服务器,只返回图片的url,这样解决了图片返回体过长的问题,但要先将多张图片先上传到图片服务器,这样会不可避免的拖慢接口的返回速度,尤其是在文档页数较多的时候,同时也会增加图片服务器的压力。
实现方式二、由后端统一将文档转成html,再返回给前端进行展示
这种方式是由后端通过aspose-words(用于word转html),pdfbox(用于pdf转html)等组件将文档统一转换成html,再返回给前端进行展示。注意这种方式往往都存在一个问题,一般再将文档转换成html代码,往往都是追求目标是通过使用文档中的语义信息并忽略其他细节来生成简单干净的 HTML,所以在转换过程中复杂样式被忽略,比如居中、首行缩进、字体,文本大小,颜色。举个例子在转换是 会将应用标题 1 样式的任何段落转换为 h1 元素,而不是尝试完全复制标题的样式。所以转成html的显示效果往往和原文档不太一样。这意味着对于较复杂的文档而言,这种转换不太可能是完美的。但如果都是只使用简单样式文档或者对文档样式不太关心的这种方式也不妨一试。
这种方式的优点是:
1、前端处理比较方便
2、浏览器天然支持
这种方式的缺点是:
1、转换后样式可能和原文件存在些许的区别
实现方式三、由后端统一将文档转成pdf,再返回给前端进行展示
这方式是由后端通过aspose-words(用于txt、word转pdf),itextpdf(用于excel转pdf)或者spire.office.free(用于excel转pdf)等组件将文档统一转换成pdf文件,再返回给前端进行展示。将 txt、word、excel、ppt、图片等文件转成pdf文件详细的实现方式可以参考这篇文章:文档在线预览(三)将word、txt、ppt、excel、图片转成pdf来实现在线预览
前端在线预览pdf文件的实现方式可以参考这篇文章:《文档在线预览(四)使用js前端实现word、excel、pdf、ppt 在线预览》中 PDF文件实现前端预览 部分。
这种方式的优点是:
1、和返回图片相比只会返回一个文件,前后端都不需要考虑多文件的问题
2、主流的浏览器都自带支持pdf的展示
这种方式的缺点是:
1、前端对pdf在线预览实现成本要比图片高一些
如果想要展示效果好的话,其实可以将上篇文章《文档在线预览(一)通过将txt、word、pdf转成图片实现在线预览功能》说的内容和本文结合起来使用,即将文档里的内容都生成成图片(很可能是多张图片),然后将生成的图片全都放到一个html页面里 ,用html+css来保持样式并实现多张图片展示,再将html返回。开源组件kkfilevie就是用的就是这种做法。
kkfileview展示效果如下:
下图是kkfileview返回的html代码,从html代码我们可以看到kkfileview其实是将文件(txt文件除外)每页的内容都转成了图片,然后将这些图片都嵌入到一个html里,再返回给用户一个html页面。
实现方式四、纯前端实现在线预览
通过这次在线预览的调研,发现其实word、excel、pdf、ppt 等文件格式都有在线预览的前端js的开源组件,而且数量还不少,我整理了一下这些开源组件放在了下面的表格里。
文档格式 | 相关的开源组件 |
---|---|
word(docx) | docx-preview、mammoth |
pdf.js、pdfobject.js、vue-pdf | |
excel | sheetjs js-xlsx、canvas-datagrid、handsontable、DataTables |
powerpoint(pptx) | pptxjs |
这种方式是前端根据不同文件类型使用对应的在线预览组件进行在线预览。因为不同类型的在线预览组件不一样在使用时预览界面会存在差异,如果需要做的完善一点 最好是把所有用到的组件都统一封装的一个在线预览的UI界面中。详细的信息可以参考这篇文章:
《文档在线预览(四)使用js前端实现word、excel、pdf、ppt 在线预览》
这种方式的优点是:
1、后端没有工作量
这种方式的缺点是:
1、前端工作量较大
2、不同文件类型的显示UI不太一样,如果需要统一UI则会进一步增加前端的工作量
3、除了图片和pdf的展示外,其他文件类型的展示不算非常理想
实现方式五、服务器安装组件实现在线预览
通过这次在线预览的调研,发现几款商用或者开源服务器组件,安装之后即可实现在线预览,使用虽然有一定的学习成本,但是胜在功能比较完善。 详细的信息可以参考这篇文章:
文档在线预览(五)在服务器部署组件来实现在线预览
1、kkfileview
开源组件,只支持在线预览,不支持编辑。实现原理是通过转成图片+html的方式实现的(txt文件除外),源文件的内容都被转成了图片,然后放到html中以保持样式。
通过转成图片+html的方式实现的(txt文件除外),源文件的内容都被转成了图片,然后放到html中以保持样式
支持doc、docx、ppt、pptx、wps、xls、xlsx、zip、rar、ofd、xmind、bpmn 、eml 、epub、3ds、dwg、psd 、mp4、mp3等类型。
预览效果如下:
2、OnlyOffice
开源组件,既能支持在线预览,也支持编辑 。支持docx、xlsx、pptx、odt、ods、odp、doc、xls、ppt、pdf、txt、rtf、html、epub、csv等类型。
预览效果如下:
3、office online server
由微软出品付费商用组件,既能支持在线预览,也支持编辑 。基本可以支持所有的Office文件格式。Office Online Server只能部署在Windows Server 2012 R2、Windows Server 2016或 Windows Server 2019 或 Windows Server 2022等服务器上。
预览效果如下
4、Libre Office Online(不推荐)
开源组件,既能支持在线预览,也支持编辑 。但是缺乏官方的支持,所以更推荐基于基于LibreOffice开发的Collabora Online。
5、Collabora Online
开源组件,既能支持在线预览,也支持编辑 。基于LibreOffice办公套件的在线协作平台。
预览效果如下
总结
1、转成图片的方式和转成html,都存在一定的问题,比如转图片的都是存在要处理多图片的问题,转html存在复杂样式丢失的问题。比较好的一种做法就是即将文档里的内容都生成成图片(很可能是多张图片),然后将生成的图片全都放到一个html页面里 ,用html+css来保持样式并实现多张图片展示,再将html返回。开源组件kkfilevie就是用的就是这种做法,可以参考一下kkfilevie的做法(都参考了为什么不直接拿来用,滑稽表情)。
2、前端通过判断不同文件类型的使用对应的在线预览组件进行在线预览。 因为不同类型的在线预览组件不一样在使用时预览界面会存在差异,如果需要做的完善一点 最好是把所有用到的组件都统一封装的一个在线预览的UI界面中。但是这样做的话,前端的开发量较大。
3、后端统一将不同格式的文件转换成pdf格式实现在线预览,再由前端实现预览效果,这样能保留文件的一些样式的效果。这种方式实现成本比较低,预览效果也不错,简单的预览需求比较推荐。
4、服务器安装组件实现在线预览,使用虽然有一定的学习成本,功能比较完善,支持文件格式比也较多。甚至有的组件还能支持在线编辑。也是比较推荐的。
关键词:
全球热推荐:文档在线预览 总结篇
Nftables栈溢出漏洞(CVE-2022-1015)复现
HawkEye产品深受市场认可,与多家行业龙头企业达成合作,共同开拓行业市场
国家气候中心:今年盛夏极端天气气候事件偏多 高温、强降水等来袭_世界资讯
实时焦点:AMD锐龙5 7500F真身浮现:Zen4第一次没了核显、价格诱人
男子被鱼刺扎伤截掉中指:感染病死率高的创伤弧菌 医生提醒
每日看点!高温叠加少雨:北方2地出现特旱
【天天速看料】32:9比例曲面屏!红魔公布49英寸QD-OLED电竞显示器
要闻速递:42万买奥迪A7L新车 先异响后地库抛锚!第一视角感受车主无奈
当前焦点!易基因: RRBS揭示基于DNA甲基化驱动基因的肾透明细胞癌预后模型的鉴定和验证|项目文章
每日热讯!数据万象AVIF图片压缩 - 小程序省流量利器
环球快资讯:从0开始,手写MySQL数据管理器DM
Python中对open读取文件内容时的mode模式解析
收评:A股三大股指窄幅震荡 汽车产业链股全天走强 当前视点
今日看点:华建集团下属公司水利院联合签署有关防洪能力提升工程合同
腾势N7做了违背王传福的决定!比亚迪首款智能车30万开卖
每日简讯:极摩客新一代迷你主机要上14代酷睿 GPU追赶RTX 3050
理想联合创始人沈亚楠退出公司股东行列:李想持股比例超95%
【当前热闻】董明珠谈预制菜:要让世界爱上中国味道
北科大用“卡脖子”技术做录取通知书!这种钢打破国外垄断
金丝兔压脚厂家(金丝兔)
ChatGPT 让人们大吃一惊——以下三项技术可能会带来改变
北斗卫星时钟同步服务器(卫星授时服务)天线安装意见-每日热门
每日消息!债券通助力国家金融市场对外开放稳步推进
国家气候中心:预计今年盛夏我国气候状况为一般到偏差 极端天气气候事件偏多 独家焦点
入汛以来189条河流发生超警以上洪水
小米又对华为提专利无效宣告请求 细节揭秘:涉及拍照、4G/LTE技术
不讲武德!扎克伯格偷家马斯克:推特大乱Meta趁机火速上线竞品 热资讯
天天观察:意大利原装进口:100%橙汁9.7元/L抄底0脂肪
网友称看电影《消失的她》时发现靠背有针:影院连道歉都没有
076期书生大乐透预测奖号:区间比012路比分析 天天热闻
哪里需要写哪里,FromServices注入 — ASP.NET CORE
《太极张三丰》观后感
海尔洗衣机宣传抗菌率大于99%被罚3万_时快讯
每日快看:小孩影厅排泄致退票家长拒赔偿 年纪小不懂事:网友热议为啥要带出来
滚动:镓锗出口管制!概念股应声大涨,业内:半导体产业或受影响
动车售卖盒饭出现双层价签 12306:15元卖成35元违规|全球简讯
RTX 4090 Ti四插槽巨型散热器流出:有人要价888888元
中青报谈文字失语症:别让垃圾短视频废了可思化 网友有话说 每日消息
男子偷住无人别墅多日喝光6瓶茅台:家政打扫卫生时才发现
威马汽车:公司近期开始还债复产 CEO沈晖限消令已撤销
柏拉图中的累计百分比怎么算出来的_百分比怎么算出来的
kernel pwn入门
当前要闻:柏瑞投资:亚洲高收益债券最具吸引力
高考中文题简单!老师称在越南学好中文工资更高:当地人不加班不为钱放弃生活
每日速看!199元起 雷柏VT9 PRO无线鼠标上架:68g轻量化设计
大梁+四驱!新一代哈弗H5回归:长城史上最大SUV_世界独家
全球观速讯丨谨防上当!女子网上找补漏报价800上门变4300:已有多人被骗
全球观速讯丨不到半价:八喜自选口味冰淇淋15大杯90g狂促99元
漫威系列电影观影顺序_威漫电影观影顺序
世界信息:linux Nginx+Tomcat负载均衡、动静分离
世界今亮点!CakePHP教程_编程入门自学教程_菜鸟教程-免费教程分享
js的中的函数(一)
语音房源码搭建技术分享之降噪功能详解
C#.NET Framework 使用BC库(BouncyCastle) RSA 私钥签名 公钥验签(验证签名) ver:20230704 每日观察
香港特区政府财政司司长陈茂波:进一步强化香港作为全球离岸人民币业务枢纽和国际风险管理中心的地位-看热讯
环球新动态:可转债市场首个退市整理期敲定 市场风格分化明显
天天快资讯丨普里戈任再次发声寻求支持:“你们会看到我们在前线取得新的胜利”
新能源硬派越野!比亚迪方程豹首款车型定名:叫“豹5”
天天快播:男子用共享电动车拦婚车要钱 司机曝内幕:专业闹喜人 不要红包只要100块
前有阿维塔 后有深蓝 “亲儿子”启源如何突围?-最新
荣耀全家桶来袭:手表、平板、电视全都有 焦点热门
环球消息!终于透明了!广州新规:网约车驾驶员端需显示抽成比例
每日热闻!昀冢科技:7月3日融资买入200.78万元,融资融券余额4987.8万元
B站内测搜索AI助手:输入“?”即可体验!
【笔试实战】LeetCode题单刷题-编程基础 0 到 1【二】 全球观天下
环球报道:Linux调优+Tomcat调优,超级干货,一定珍藏
三步搞定CentOS7下的MariaDB 10_天天观天下
前沿资讯!vue通用的增删改查按钮组件
制氧设备相关内容简介介绍图片_制氧设备相关内容简介介绍
广汽埃安副总经理:让特斯拉跑网约车 可能3个月车就不行了
百度专为学习打造!小度青禾学习手机第二款入网:支持5G
广汽“奇葩” 埃安凶猛_当前滚动
资讯:浙江仙居太阳像戴了美瞳:绝美彩色光晕 专家科普为何形成
当前观点:苹果Apple Beta短暂维护:iOS 17公测版要来了
亚太实业7月4日开盘涨停
spring启动流程 (3) BeanDefinition详解 每日播报
【天天报资讯】前端Vue自定义精美宫格菜单按钮组件 可设置一行展示个数 可设置成九宫格 十二宫格 十五宫格
景区放“丑女”雕塑被指侮辱女性,官方回应
微信支付每月免费提现额度引热议:1.2万免费提你会用吗?
要大涨价还买吗?iPhone 15系列新配色曝光:新渲染图亮相
复旦教授谈为何中国出不了马斯克 要对失败和试错足够包容:网友吐槽
新型进网许可标志启用 你买的手机是正品吗?最新查询方法来了_全球观察
每日聚焦:药品说明书“看不清”“看不懂”? 国家药监局进行适老化改革
自学Python之路-django模板--jinja2模板引擎配置
行政处罚的种类有哪些?行政处罚记录如何申请消除?
高考满分是多少分?高考满分状元750有几个人?
夏天是几月到几月?夏天冰箱调到几档最合适?
今日精选:多家国有大行下调美元存款利率 专家称美元存款主要面临汇兑风险
环球热文:国际金融市场早知道:7月4日
【天天热闻】武夷山属于福建还是江西 ?武夷山又增一张世界级名片
369、JackeyLove退出亚运会《英雄联盟》名单:回应原因没想到
成都一新能源汽车行驶中电池掉落马路 官方回应 天天微资讯
天天讯息:多人组团偷吃榴莲致超市损失近千元 果核扔进柜底:画面看醉 太丢人
环球快看点丨读发布!设计与部署稳定的分布式系统(第2版)笔记18_基础层之联网
每日观察!遇到疯狂GC时进行判断然后重启服务的方法-GPT学习使用之三
全球今亮点!苹果公众号文案毁三观:女生卖掉有好感男生送的演唱会门票创业
【环球新视野】叫板苹果?干翻华为小米?这手机有点东西
汪小菲带2个孩子回北京,汪小菲与大s的判决书下来了
焦点热门:留给混动车的好日子 不多了