当前位置: 首页 > Web前端 > vue.js

这可能是最简单的docx、pdf和excel文件预览,vue组件库

时间:2023-03-31 15:40:41 vue.js

项目的由来。最近项目需要实现pdf和docx文件的预览功能。本来以为这应该是一个很常见的需求,应该有很多现成的简单方案。找了一圈,发现解决方法虽然很多,但是在使用中都存在一些问题:预览效果参差不齐,有的预览效果很好,有的预览缺少样式支持。使用起来很复杂。本来想只要传一个文件地址,就可以预览了。事实证明,您必须编写很多详细的代码。每个文件都有很多方案可以选择,比如docx、pdf、excel等,每个文件都有大量的第三方库,需要去筛选测试都已经2023年了,为什么这么难预览文件!发现问题后,想能不能实现一个简单的VUE组件库,解决以上问题,让前端新手也能非常高效的完成文件预览任务。因此,我期望开发一个vue-office组件库,必须满足以下三个要求。一定要使用简单,对新手友好,就是传递一个文件地址,实现预览。提供一站式多文件预览解决方案,解决常见docx、excel、pdf文件的预览效果,不仅是内容预览,还支持样式需求。实现比较简单,从github解决方案中筛选出每个文档的最优预览,然后封装成VUE组件,但是还是有很多坑,在文章的最后部分介绍。查看demo安装三个组件演示github源码,可根据需要安装//docx文档预览组件npminstall@vue-office/docx//excel文档预览组件npminstall@vue-office/excel//pdf文档预览组件npminstall@vue-office/pdf使用示例docx文档的预览excel文档预览pdf文档预览存在的问题一开始希望发布一个npm包,但是由于各种文件预览引入了很多第三方库,最终npm包超过2M,无法分发包,所以最后拆分了分成三个包放在一个名为@vue-office的空间下,这种发送合约的方式需要在npm官网创建一个组织。创建组织是免费的,只要给个名字就行,不需要资质审核。解包后又会面临另一个问题,如何进行多个包的管理,我们经常看到很多源代码都有一个packages目录,要发布的包都在packages下,然后进行多个包的构建和发布包是通过lerna管理的。最严重的问题是预览的风格。目前大部分方案只支持内容的预览,不支持样式的预览。比如excel文件里面的内容可以预览,但是背景色、颜色、字体大小等不支持,目前我支持一些样式,这个还有待后期完善。如果你也有兴趣,欢迎贡献代码或者一起提供好的解决方案。期待大家的支持~~最大的感受就是做一个能用的库不容易。想要做好真的很难,需要付出很大的努力能量投入。源代码