vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
vue浏览pdf文件
如何在vue中使用pdfjs预览pdf文件目录
- 前言
- 思考
- 库目录解析和下载
- 使用方法
- 文件位置
- 实际调用
- 问题
- 总结
在写项目的过程中,偶尔会有使用到pdf的文件,当我们想看pdf文件的时候,你的操作是不是先把pdf文件下载下来,通过电脑安装的专用于打开pdf的软件来查看pdf文件呢。如果有个需求说不要让用户安装软件呢,毕竟还是有很多用户不知道怎么安装软件或者这个东西需要什么东西才能打开嘛。ok,有了这样的需求那我们是不是也得去实现嘛,毕竟这理由咱也没法反驳啊。
思考既然都提出来了,那就想想怎么使用咯。既然需要用到pdf。不知道有没有关于js能够操作的库文件来帮我呢?果断一百度,咱们今天的主角就来了:pdfjs。
库目录解析和下载既然有了方案,那就去研究研究了,首先需要去下载这个库的文件,下载地址:点我下载。这个页面会有两个,一个是兼容旧版的,大家可以根据自己的实际情况下载啊。
下载后的代码结构如下图:
这里面有两个文件夹:
- build 这里面是pdf核心文件
- web 例子
有两种使用方法,一种是通过核心库文件自己去实现pdf的预览,还有一种是通过给的例子去预览pdf文件。这里呢就以给的例子来预览pdf文件,如果大家有兴趣可以去研究研究怎么用核心文件去实现咯。
文件位置
首先我们需要将下载好的文件放到vue项目的static静态目录下,如下图:
实际调用
在需要用到的地方使用如下方式调用:
var url = encodeURIComponent(window.location.origin+'/other/202101/dc88623a-74c4-49c4-bc95-7e34d9cf6163.pdf') window.open(window.location.origin + window.location.pathname+'static/pdfjs/web/viewer.html?file='+url)
上面的pdf地址为自己放在本地的路径,这里路径可以为相对和绝对路径,上面为绝对路径
这时就可以看到如下效果啦:
问题
如果这个pdf文件的地址和当前下载的库文件地址在相同的域下,应该不会有太大问题的,如果不同域下就需要解决跨域的问题了。这里有个地方需要解决就是我们下载的库文件,找到viewer.js文件中下面的内容注释:
将上图中红色框框里面的内容注释。如果服务端给出的是下载地址,那么可以使用iframe嵌套来解决。
总结其实可以看到跨域的知识有时候还是很有用的,上面就用到了,我刚开始弄的时候怎么都出不来,后面发现跨域下载不下来。当前还有更多的用法和问题,欢迎大家提出来。
以上就是如何在vue中使用pdfjs预览pdf文件的详细内容,更多关于vue中使用pdfjs预览pdf文件的资料请关注开心学习网其它相关文章!
- vue3中的setup的参数(Vue3中ref与reactive的详解与扩展)
- vue怎么定义router的动态路由(vue.js Router中嵌套路由的实用示例)
- vuecli配置环境变量(Vue CLI中模式与环境变量的深入详解)
- vue引入axios(vue封装axios的几种方法)
- vue2.0自定义指令(vue2实现provide inject传递响应式)
- vue虚拟滚动条(vue轻松实现虚拟滚动的示例代码)
- vue左右联动列表(vue+iview的菜单与页签的联动方式)
- vue路由跳转的方法(Vue路由监听实现同页面动态加载的示例)
- vueassets文件路径(vue如何根据url下载非同源文件)
- vue指令使用技巧(Vue指令工作原理实现方法)
- vuecli项目入门(vue-cli4.5.x快速搭建项目)
- uniapp使用vue写页面(分析uniapp入门之nvue爬坑记)
- vue左侧边栏的制作(Vue+Vant实现顶部搜索栏)
- vueaxios使用教程交流(Vue使用axios图片上传遇到的问题)
- vue实现双向绑定原理(vue实现双向数据绑定)
- vue代码统计(Vue实现计数器案例)
- 职场人改不掉这4个习惯,只会越混越穷,一辈子也翻不了身(职场人改不掉这4个习惯)
- 华为 联想等46家公司笔试面试题,涉及各行各业,建议收藏(联想等46家公司笔试面试题)
- ()
- ()
- 800壮士拼死拖住30万日军 八佰 的真实历史,誓与阵地共存亡(800壮士拼死拖住30万日军)
- 演员陈创,火于 哮天犬 ,颠峰于 福贵 ,现状却令人唏嘘(演员陈创火于哮天犬)
热门推荐
- js弹出新窗口被拦截的解决方法
- jq控制css样式(css3模拟jq点击事件的实例代码)
- 阿里云服务器无法连接(阿里云香港服务器远程连接不上,本地网络都ping不通服务器)
- python实现列表删除重复元素(Python代码实现删除一个list里面重复元素的方法)
- php中三种变量的作用区域(PHP global全局变量经典应用与注意事项分析附$GLOBALS用法对比)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- python怎么操作mysql(详解Python的数据库操作pymysql)
- sql server锁原理(Sql Server 死锁的监控分析解决思路)
- Ext.each的用法
- sql中把一列数据相加(SQL实现相邻两行数据的加减乘除操作)