首先推荐大家看一下这个demo vue-pdf.js-demo,这里面包含固定本地地址,远程pdf地址,通过打开文件的方式打开pdf

这儿我们着重介绍一下通过文件流的形式打开pdf。(所谓文件流,就是通过ajax请求,返回的数据是文件流的形式)

1. 首先通过下载pdf.js的相关文件,当然我推荐直接拷贝 vue-pdf.js-demo里面的文件,然后放到static目录里面

2. 第二步就是直接使用了

在组件中合适的地方放入 iframe

<iframe class="prism-player" :src="pdfUrl" width="100%" height="100%"></iframe>

3. 然后就是获取pdfUrl(这儿也推荐两种方式)

第一种,直接调用文件流的请求地址

// 这儿的url, 就是通过 axios 进行请求的地址,只不过换成了从导航url进行请求的方式
let url = process.env.BASE_API + '/coursePartDetail/getFileStreamByCoursePartDetailId?CoursePartDetailId=' + this.sectionMsg.id
this.pdfUrl = `/static/pdf/web/viewer.html?file=${encodeURIComponent(url)}`

第二种,通过 axios 请求获取到的文件流进行处理(当然如果有加密相关的也可以通过这种方式,将获取到的文件进行解密,这种方式就要自己去研究了)

// 这儿的 getPdf() 是获取文件流的 axios 封装方法
getPdf().then( res => {
// 这儿的res是返回的文件流
this.pdfUrl = this.getObjectURL(res)
}) // 将返回的流数据转换为url
getObjectURL(file) {
let url = null;
if (window.createObjectURL != undefined) { // basic
url = window.createObjectURL(file);
} else if (window.webkitURL != undefined) { // webkit or chrome
try {
url = window.webkitURL.createObjectURL(file);
} catch (error) { }
} else if (window.URL != undefined) { // mozilla(firefox)
try {
url = window.URL.createObjectURL(file);
} catch (error) { }
}
return url;
}

最新文章

  1. 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型
  2. Mysql 客户端查询结果如何保存到本地而不是服务端?
  3. EditText html 出现提示 This text field does not specify an inputType or a hint
  4. java类型转化之SimpleDateFormat-时间转化
  5. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
  6. leetcode 229 Majority Element II
  7. Android MVP架构分析
  8. WPF 核心体系结构
  9. Code digest
  10. HQL: The Hibernate Query Language
  11. springboot 与任务
  12. UIImagePickerController照片选取器
  13. 集束搜索beam search和贪心搜索greedy search
  14. pagerank算法在数学模型中的运用(有向无环图中节点排序)
  15. Centos7.3 编译安装GDAL以及Python的GDAL包
  16. VC++、MFC最好的开源项目
  17. mysql之event
  18. node.js之爬虫
  19. js 自己项目中几种打开或弹出页面的方法
  20. vue axios的使用

热门文章

  1. akka-stream之异常处理
  2. Java中在磁盘上复制文件
  3. JavaScript小实例-文字跑马灯效果
  4. PHP算法之有效的括号
  5. python 模拟按键模拟键盘按键按下放开
  6. The past is just a story we tell ourselves.
  7. 字符串hash+找模数——cf985F
  8. Framework7-Vue搭建项目
  9. hdu多校第一场1004(hdu6581)Vacation 签到
  10. icmp隧道--icmpsh