- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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));
您可能关注的文档
- 使用C++实现Excel文件与CSV之间的相互转换.docx
- 关于竞聘中层演讲稿集合(31篇).docx
- 仓储安全合同(3篇).docx
- 企业技术必威体育官网网址协议书(28篇).docx
- 财务工作计划经典(29篇).docx
- 初中教学反思推荐8篇.docx
- 上市公司债权转让协议书(3篇).docx
- HTML、CSS和jQuery:构建一个漂亮的登录表单验证.docx
- 终止python代码运行的3种方式详析.docx
- 班主任的个人工作总结范文(32篇).docx
- 2024湖南司法警官职业学院招聘笔试真题带答案详解.docx
- 2024湖南铁路科技职业技术学院招聘笔试真题及参考答案详解一套.docx
- 2024石家庄城市经济职业学院招聘笔试真题及答案详解参考.docx
- 2024甘肃畜牧工程职业技术学院招聘笔试真题及完整答案详解一套.docx
- 2024湘西民族职业技术学院招聘笔试真题及完整答案详解一套.docx
- 2024湖北生物科技职业学院招聘笔试真题及完整答案详解一套.docx
- 2024湖南国防工业职业技术学院招聘笔试真题及1套参考答案详解.docx
- 2024湘南幼儿师范高等专科学校招聘笔试真题含答案详解.docx
- 2024湖北生态工程职业技术学院招聘笔试真题及1套完整答案详解.docx
- 2024湖南国防工业职业技术学院招聘笔试真题及答案详解1套.docx
文档评论(0)