- 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
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
- DB62T 4172-2020 玉米品种 酒623规范.pdf
- DB62T 4160-2020 在用真空绝热深冷压力容器综合性能在线检测方法.pdf
- DB62T 4164-2020 辣椒品种 酒椒1号.pdf
- DB62T 4133-2020 公路隧道地质超前预报机械能无损探测技术规程.pdf
最近下载
- 2024浙江省执业药师继续教育答案-腰椎间盘突出症的中西医治疗新进展和康复策略.docx VIP
- 物联网技术在智慧教育中的应用.docx VIP
- 吃外卖的危害.pptx VIP
- 乡镇卫生院二类疫苗管理规定乡镇疫苗管理制度.docx
- 四川省广元市2023-2024学年八年级下学期期末数学试题(无答案).docx
- 专题复习:2022高考历史核心考点微专题—— 市镇经济和市民生活(课件).pptx
- GB 21148-2020:足部 防护 安全鞋.pdf
- (高清版)B/T 22638.11-2023 铝箔试验方法 第11部分:力学性能的测试.pdf VIP
- GE-9F燃机-Mark-Ⅵ控制界面-中文版.pdf
- 卫生健康局乡村医生规范培训工作总结.docx VIP
文档评论(0)