网站大量收购独家精品文档,联系QQ:2885784924

vue通过url方式展示PDF的几种方法.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

vue通过url方式展示PDF的几种方法

目录1.使用pdfjs-dist插件,通过iframe标签显示2.使用vue-pdf插件3.第三种方法使用了pdfjs-dist插件,通过url实现PDF转图片显示4.直接通过iframe标签总结最近vue项目中遇到预览pdf出现乱码问题,尝试了各种办法受尽折磨,以此记录一下使用的几种方法

1.使用pdfjs-dist插件,通过iframe标签显示

首先npminstallpdfjs-dist--save

npm直接下载插件npminstall--savepdfjs-dist@2.0.943,@2.0.943这是指定版本号,不需要指定版本的就不需要带,下载后在使用的页面直接引入。

然后直接设置pdf路径就可以直接展示,downloadUrl是插件中的viewer.html地址,resFile是文件下载地址,到此就能正常预览PDF,组件功能也很多,如需要额外的功能也可以在viewer.js自行修改

2.使用vue-pdf插件

执行下面命令下载插件(vue-pdf是基于pdfjs-dist),并修改pacakge.json文件

????????npmipdfjs-dist@2.5.207--save

????????npmivue-pdf@4.2.0--save

????????dependencies:{

?????????????????pdfjs-dist:2.5.207,

?????????????????vue-pdf:4.2.0,

?????????}

在使用的页面中直接引入插件,标签为pdf就可以,路径赋值同第一种方法

3.第三种方法使用了pdfjs-dist插件,通过url实现PDF转图片显示

引入需要的插件pdfjs-dist,workerSrc(具体功能可以百度,没搞明白)

本地文件URL:

通过URL转换blob类型,然后转为base64,这块可以直接拿去用,getDay()方法可以换成自己想要的文件名,这个方法转成base64后是包含前面类型的,又处理了一下,看个人需求

fileLinkToStreamDownload(url){

letfileName=this.getDay()

letreg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$/

if(!reg.test(url)){

thrownewError(传入参数不合法,不是标准的文件链接)

}else{

letxhr=newXMLHttpRequest()

xhr.open(get,url,true)

xhr.setRequestHeader(Content-Type,`application/pdf;charset-UTF-8`)

xhr.responseType=blob

letthat=this

xhr.onload=function(){

if(this.status==200){

//接受二进制文件流

varblob=this.response

//that.downloadExportFile(blob,fileName);

that.blobToBase64(blob).then(res={

//blob转base64

letbaseArr=res.split(,);

that.showPdf(baseArr[1]);

xhr.send()

//Blob类型转BASE64

blobToBase64(blob){

returnnewPromise((resolve,reject)={

constfileReader=newFileReader();

fileReader.onload=(e)={

resolve(e.target.result);

//readAsDataURL

fileReader.readAsDataURL(blob);

fileReader.onerror=()={

reject(newError(blobToBase64error));

文档评论(0)

152****2468 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档