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文件的资料请关注开心学习网其它相关文章!
- vue使用websocket的详细步骤(vue使用webSocket更新实时天气的方法)
- vuecli打包项目(使用vue-cli创建项目并webpack打包的操作方法)
- vue 访问后台接口(vue轮询请求解决方案的完整实例)
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- vue编程加入购物车(vuex实现简单的购物车功能)
- vuejs过滤器使用教程(vue3删除过滤器的原因)
- vue接口请求类封装(Vue接口封装的完整步骤记录)
- vue组件详解(Vue的方法和属性案例详解)
- vue 修改后刷新(Vue使用三种方法刷新页面)
- vue表单上传图片数据(vue-cropper插件实现图片截取上传组件封装)
- 小白vue教学(尤大大新活petite-vue的实现)
- vue中的指令及用法(详解Vue进阶构造属性)
- vueaxios使用教程交流(Vue使用axios图片上传遇到的问题)
- vue购物车简单项目(vue实现简单购物车案例)
- springboot如何解析vue登录参数(SpringBoot + Vue 项目部署上线到Linux 服务器的教程详解)
- vue实现展开动画(Vue组件实现旋转木马动画)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
- 弄清楚了销 售 买 卖这四个字,母婴生意做起来就没那么难了(弄清楚了销售买)
- 数读 买首饰金是 投资黄金 吗 买金容易卖金难(数读买首饰金是)
- 销 售 买 卖 你真的了解这四个字了吗(销售买)
- 谢娜是得罪快乐大本营造型师了吗 全场被黑化(谢娜是得罪快乐大本营造型师了吗)
- 前《iLOOK》时装总监 《快乐大本营》御用造型师上线(快乐大本营御用造型师上线)
热门推荐
- sqlserver数据库如何设置循环日志(sqlserver 实现收缩数据库日志操作)
- 用php实现弹出消息提示框(php弹出提示框的是实例写法)
- 如何提升网站在移动端的打开速度
- laravel事件返回错误数据(laravel Validator ajax返回错误信息的方法)
- 关于docker安全之Docker-TLS加密通讯问题(关于docker安全之Docker-TLS加密通讯问题)
- php在已有目录下创建文件(php写入文件不覆盖的实例讲解)
- dedecms手机页面怎么固定(织梦dedecms配置手机wap站点并绑定二级域名)
- MongoDB的连接字符串
- 如何注册asp.net 4.0 到iis
- mouseover与mouseenter的区别