位置: IT常识 - 正文

vue通过url方式展示PDF方法总结(vue通过url访问单个页面)

编辑:rootadmin
vue通过url方式展示PDF方法总结

推荐整理分享vue通过url方式展示PDF方法总结(vue通过url访问单个页面),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue如何访问外部url,vue通过url访问单个页面,vue_app_url,vue中url存在的两种方式,vue url-loader,vue url,vue url,vue url-loader,内容如对您有帮助,希望把文章链接给更多的朋友!

最近vue项目中遇到预览pdf出现乱码问题,尝试了各种办法受尽折磨,以此记录一下使用的几种方法

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

首先 npm install pdfjs-dist --save

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

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

vue通过url方式展示PDF方法总结(vue通过url访问单个页面)

 2.使用vue-pdf插件

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

        npm i pdfjs-dist@2.5.207 --save        npm i vue-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) { let fileName = this.getDay() let reg = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$/ if (!reg.test(url)) { throw new Error('传入参数不合法,不是标准的文件链接') } else { let xhr = new XMLHttpRequest() xhr.open('get', url, true) xhr.setRequestHeader('Content-Type', `application/pdf;charset-UTF-8`) xhr.responseType = 'blob' let that =this xhr.onload = function() { if (this.status == 200) { //接受二进制文件流 var blob = this.response // that.downloadExportFile(blob, fileName); that.blobToBase64(blob).then(res => { // blob转base64 let baseArr = res.split(','); that.showPdf(baseArr[1]); }) } } xhr.send() } }, //Blob类型转BASE64 blobToBase64(blob) { return new Promise((resolve, reject) => { const fileReader = new FileReader(); fileReader.onload = (e) => { resolve(e.target.result); }; // readAsDataURL fileReader.readAsDataURL(blob); fileReader.onerror = () => { reject(new Error('blobToBase64 error')); }; }); }, getDay() { let time = new Date(), year = time.getFullYear(), month = time.getMonth() + 1, day = time.getDate(), timeStem = time.getTime() return `${year}/${month}/${day}/${timeStem}.pdf` },

拿到base64后,开始转图片处理:这个原理这里不多说了,也是照搬的, 如果PDFJS.getDocument()获取不到pdf对象,可以考虑一下版本问题(@2.2.228亲测好用)

async showPdf(base64Val) { let pdfList = document.querySelector('.pdfList') //通过querySelector选择DOM节点,使用document.getElementById()也一样 let base64 = base64Val //获得bas464编码 let decodedBase64 = window.atob(base64) //使用浏览器自带的方法解码 let pdfCurrent = await PDFJS.getDocument({data: decodedBase64}) //返回一个pdf对象 let pages = pdfCurrent.numPages //
本文链接地址:https://www.jiuchutong.com/zhishi/296160.html 转载请保留说明!

上一篇:Vue3 项目中使用setup()函数报错,script setup cannot contain ES module exports(vue3使用教程)

下一篇:VScode常用快捷键、(vscodehtml快捷键)

  • iqooz3是不是5g手机(iqooz3有5g吗)

    iqooz3是不是5g手机(iqooz3有5g吗)

  • 华为p40 pro和p40 pro+有什么区别(华为p40pro和p40pro+扬声器)

    华为p40 pro和p40 pro+有什么区别(华为p40pro和p40pro+扬声器)

  • 华为p40pro听筒在哪(华为mate30pro听筒在哪)

    华为p40pro听筒在哪(华为mate30pro听筒在哪)

  • xsmax安兔兔跑分多少正常

    xsmax安兔兔跑分多少正常

  • mic话筒什么意思

    mic话筒什么意思

  • 苹果无线满格上网很慢(为什么苹果wifi满格还是上不了网)

    苹果无线满格上网很慢(为什么苹果wifi满格还是上不了网)

  • win10隐藏桌面图标快捷键(win10隐藏桌面图标软件)

    win10隐藏桌面图标快捷键(win10隐藏桌面图标软件)

  • 淘宝店铺多久自动关闭(淘宝店铺多久自动确认收货)

    淘宝店铺多久自动关闭(淘宝店铺多久自动确认收货)

  • pdf可以直接编辑吗(pdf可以直接编辑原图吗)

    pdf可以直接编辑吗(pdf可以直接编辑原图吗)

  • wechat是微信吗(wechat属于腾讯吗)

    wechat是微信吗(wechat属于腾讯吗)

  • 怎么自动双面打印(怎么自动双面打印机设置)

    怎么自动双面打印(怎么自动双面打印机设置)

  • microsoft visual studio是什么软件(microsoft visual studio下载)

    microsoft visual studio是什么软件(microsoft visual studio下载)

  • 苹果7plus闪退是怎么回事(苹果7plus闪退是什么原因)

    苹果7plus闪退是怎么回事(苹果7plus闪退是什么原因)

  • office在c盘什么位置(office在c盘 文件也只能在c盘吗)

    office在c盘什么位置(office在c盘 文件也只能在c盘吗)

  • ipad为什么无法创建账户(ipad为什么无法连接app store 明明网络正常)

    ipad为什么无法创建账户(ipad为什么无法连接app store 明明网络正常)

  • 抖音被删评论自己知道吗(抖音被删评论自己能看到吗)

    抖音被删评论自己知道吗(抖音被删评论自己能看到吗)

  • 快手官方在哪里(快手官方在哪里视频)

    快手官方在哪里(快手官方在哪里视频)

  • 语音备忘录能录多长时间(语音备忘录能录音电话吗)

    语音备忘录能录多长时间(语音备忘录能录音电话吗)

  • 手机qq如何私所有人(qq资料怎么私密)

    手机qq如何私所有人(qq资料怎么私密)

  • vivo存储卡怎么装(vivo手机存储卡怎么用)

    vivo存储卡怎么装(vivo手机存储卡怎么用)

  • 对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson(json对象和js对象)

    对象 和 json 互转 四种方式 json-lib、Gson、FastJson、Jackson(json对象和js对象)

  • 力拓河中含矿物质的水,西班牙里奥廷托矿区 (© David Santiago Garcia/Getty Images)(全球矿业巨头力拓集团)

    力拓河中含矿物质的水,西班牙里奥廷托矿区 (© David Santiago Garcia/Getty Images)(全球矿业巨头力拓集团)

  • 防止数据重复提交的6种方法(超简单)!(数据库防止重复数据)

    防止数据重复提交的6种方法(超简单)!(数据库防止重复数据)

  • declare命令  声明定义新的变量(declare -i)

    declare命令 声明定义新的变量(declare -i)

  • 增值税抵扣的会计科目
  • 预提费用
  • 发票冲红重开,重开时是按新税率还是旧税率
  • 套期会计新旧准则对比
  • 购买网银盾计入什么科目
  • 未担保余值列报
  • 固定资产明细表范本
  • 工伤一次性医疗补助金由谁支付
  • 出口货物退运管理办法
  • 有留抵增值税怎么做账
  • 800多项进口关税减免
  • 企业外包项目如何确认收入成本配比?
  • 子公司取得的投资收益
  • 增值税发票备注栏不写可以吗
  • 开采石头要交什么税
  • 安装工程发票怎么开
  • 价外费用如何开普票
  • 私自安装路灯违法吗?
  • 外地预缴个人所得税如何入账及申报
  • 资产组可收回金额包含商誉的可收回金额吗
  • 调整期初数怎么做会计分录
  • 公司给员工发工资用途怎么写
  • 餐饮业现金流
  • 在windows 10中
  • mac怎么连接校园网网线
  • windows7中右键的作用
  • 如何从零开始制作地下偶像
  • 合伙企业是怎样分红的
  • 主板bios在线升级
  • linux命令使用
  • 主营业务收入发生额在哪方
  • 固定资产和固定资金的区别
  • 长期借款和应付利息
  • manager's office是什么意思
  • 增值税留抵退税政策2023
  • 应付股利属于债务吗
  • PHP:finfo_file()的用法_fileinfo函数
  • 现金盘盈后的财务分析
  • 企业收到政府奖励会计分录
  • 收据中代收款凭证
  • 偿还应付账款会使得资产报酬率增加吗
  • 计算机视觉项目论文
  • 建筑业发票范围
  • 代销手续费怎么开票
  • 彩钢板房税点
  • 契税并入土地价值吗
  • 公允价值变动是一级科目吗
  • 工资有社保是什么意思
  • 小规模纳税人出租不动产优惠政策
  • 研发费用不能加计扣除的有哪些项目
  • 应交税费的进项和销项是什么意思
  • 大家怎么看理想这个牌子
  • 主营业务收入借方什么意思
  • 支付给个人的佣金没有发票
  • 航天信息税票
  • 财务费用手续费借贷方向
  • 本年利润的会计科目
  • 深入分析换一种说法
  • ms17010补丁怎么安装
  • linux系统的基本特征
  • u盘安装linux系统遇到的问题
  • xp系统安装版合集
  • windows8怎么设置锁屏时间
  • 如何在win7上打开win10软件
  • linux shell命令大全
  • config_system_switchs
  • python怎么学啊
  • unity物体移动速度怎么设置
  • vue mint-ui 官网
  • activity之间的数据回传
  • shell 字符串比较
  • dos下重命名
  • jq写css样式
  • android 加载大图
  • 封装是借助什么达到的
  • 安卓修改udid
  • android draglistview中拖动异常显示,无法移动到原先位置
  • 如何查询车辆购买的保险是哪家保险公司
  • 宿豫区国税分局电话
  • 全国初中应用物理知识竞赛获奖名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设