Vue实现pdf(excel)及压缩包或其他类型在线预览、导出下载功能总结(后端返回流,pdf.js)

Vue中使用echarts实现仪表盘 实现效果: echarts使用说明请查看:Vue中使用echarts实现常用图表总结 option配置: option = { tooltip: { formatter: '{a} <br/>{b} : {c}%' }, toolbox: { feature: { restore: {}, saveAsImage: {} } }, series: [ 阅读详情

先说这次的需求,需要在一个vue页面中的一部分实现预览pdf功能

一、全屏预览模式

先说直接全屏预览的,直接axios获取到数据,将流转为二进制文件,

  • 可以window.open
  • 也可以嵌入到a标签的href属性中

二、利用pdf.js嵌入到iframe中预览

第一步跟全屏一样,就是最后打开方式不一样
pdf.js官网下载pdf.js文件
将文件解压缩,将里面的build和web文件夹放在static目录下面,一定要是static目录
目录结构如下
在这里插入图片描述
接着在组件里就可以直接使用了,
iframe的原理是将一个html页面嵌入在另一个html页面中

<iframe ref="pdfCotainer" :src="pdfUrl" width="100%"></iframe>

附代码:
vue组件中:

<iframe ref="pdfCotainer" :src="pdfUrl" width="100%"></iframe>

首先通过axios调用后台接口获取流数据

// 获取流
export function getStream(url, params) {
   
   
  return new Promise((resolve, reject) => {
   
   
    axios.get(url, {
   
   
      params: params,
      responseType: 'arraybuffer' // 关键,必须要设置响应类型,否则pdf没有内容都是空白页 
    }).then(res => {
   
   
      resolve(res.data)
    }).catch(err => {
   
   
      reject(err.data)
    })
  })
}

流转成二进制文件方法

// 生成数据报告->pdf预览
    pdfPreview(year) 
微信小程序Echarts图标组件库使用方法详细解答 1.Earcharts官方网站,找到在“在微信小程序中使用ECharts” https://www.echartsjs.com/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%AD%E4%BD%BF%E7%94%A8%20ECharts 2.下载(ps:在官网进入到github界面,把源码... 阅读详情

相关推荐

vue+ts+elementUI:后端返回文件流,前端预览pdf文件

vue+ts+elementUI:后端返回文件流,前端预览pdf文件 1.配置接口 //获取pdf文件流 export const getPdfService = (paramsData: any) => { const res: any = service.post('/idsapi/api/dispatch/dispatch_file_stream',paramsData, {responseType: 'blob'}); return res; } 2.ts方法 async

Hello_Wade的博客 1724

vue实现文件预览和文件上传、下载、预览——多图、模型、dwg图纸、文档(word、excel、ppt、pdf)

【代码】vue实现文件预览和文件上传、下载、预览——多图、模型、dwg图纸、文档(word、excel、ppt、pdf)

xuehu999727的博客 1321

Vue文件预览全攻略:PDF、Excel、Word、图片混合方案与避坑实践

文件预览是现代Web应用中的常见需求,其核心原理是让浏览器或特定组件能够解析并展示不同格式文件的内容。从技术实现上,主要分为浏览器原生渲染、服务器端转换和纯前端解析三大路径,每种方案在兼容性、性能与架构复杂度上各有取舍。对于Vue开发者而言,采用混合策略能有效平衡开发效率与用户体验:利用pdf.js处理PDF,结合sheetjs与luckysheet应对Excel,并选用mammoth.js或docx-preview渲染Word文档。在工程实践中,需特别注意内存泄漏、大文件性能、XSS安全等常见问题,并通过

weixin_34343308的博客 448

纯前端实现Office文档在线预览:从原理到实战

本文深入探讨了纯前端实现Word、Excel、PPT、PDF等Office文档在线预览的技术原理与实战方案。文章对比了格式转换与浏览器原生嵌入两种核心路径,并详细介绍了使用docx-preview、SheetJS、pdf.js、PPTXjs等主流库进行预览的具体实现步骤、优缺点及选型指南,为开发者提供了一套完整、安全的解决方案。

weixin_29229261的博客 614

Vue项目导出Excel功能必备工具库详解

s2ab全称为 “string to array buffer”,其职责是将一个“伪二进制字符串”转换为真正的二进制缓冲区。i!获取Unicode码点& 0xFF取低8位,防止超出单字节范围返回,可用于构造Blob该函数虽小,却是连接 JavaScript 字符串与二进制流的关键桥梁。

weixin_30598047的博客 406

基于LSTM算法的股票预测详解

一、需求 给定几个已知的股市因素(开盘、收盘、最高、最低、成交量、成交额)及各因素对应的大量数据,训练一个该股票的涨跌趋势的预测模型。并在给定的测试数据的条件下求出接下来的涨跌趋势。即得到下图中的label值。-1代表跌、1代表涨。 二、分析 1、LSTM简单介绍 LSTM这个算法是专门训练有时间序列信息的数据的,即这些数据不仅按照时间递增的顺序排布,并且前后的数据都有着很强的联系。个人认为与马尔可夫的思想差不多,即后面的值由前面的值来决定。本次需求是要根据已知的股市数据来分析某个时间段的涨跌趋势,并预测

Zhang_713的博客 1万+

yanshee 机器人全流程指南

2.点击yanshee app右上角根据提示操作 3.当手机显示成功连接 ,按下机器人胸前按钮说出“ip地址”4.根据机器人播报的ip地址加上:8888使用浏览器访问,你就会看到 jupyterd的界面,里面可以新建文件也可以改他存在的文件。我们使了yanshee机器人,这个是面向K12、中高职、高校学生推出的开源人形机器人教育平台,应用于课程教学、竞赛、科研活动等场景。我们接下来可以根据这些apl做许多好玩的,比如控制他运动,跳舞唱歌,it`s easy。注意电脑,手机,机器人必须连同一个网。

qq_44827929的博客 7612

狗都能看懂的Proximal Policy Optimization(PPO)PPO算法详解

李宏毅老师的PPO算法讲解笔记

个人学习笔记 2万+

【亲测有效】OpenClaw Gateway 出现 “(no output)“ 卡死问题完整解决指南:从手动重启到 systemd Watchdog 自动恢复

最近在使用 OpenClaw(自托管 AI 助手框架,前身 Clawdbot/Moltbot)时,遇到了一个非常常见的顽疾:TUI(终端界面)或 Telegram 等通道经常显示 "(no output)",消息发出去后机器人完全没反应,看起来像是卡死了。

hampeter的博客 8609

避坑指南:新手爬百度图片3个致命错,改完批量保存本地(亲测有效)

新手爬百度图片的核心是“绕开静态HTML,抓准API接口+处理反爬+提取原图”,改完本文提到的3个核心错,就能稳定批量保存高清图片。这套思路可复用在其他图片网站(如必应图片、360图片),只需修改API接口和参数即可。如果想进一步优化,可添加代理IP池、多线程下载(新手不建议,容易触发反爬)、图片去重等功能!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1586

支付域——“清算、结算、清结算”

本文深入探讨了支付系统中的清算和结算流程,包括核心流程、模块设计及特殊场景处理。文章详细阐述了交易收单、资金冻结、清分规则、清算批处理、结算出账等关键步骤,并讨论了交易失败、数据不一致、退款、汇率波动等异常情况的处理方法。

庄小焱 2559

把外部系统接到 SAP Build Process Automation 的两条路:前台直连与后台编排的完整范式

想把外部系统接入到你的【销售订单管理】审批流程,最稳妥的路径是:在流程里开一个,在 BTP 配好以为核心的 Destination,让前端经由approuter代理、后台通过 Cloud SDK 直连,任务处理用My Inbox或Task APIs,异步对接用。这套组合拳,既满足安全边界与运维规范,又能让前台与后台两个世界各取所需、自然衔接。SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1660

在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误

摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。

金牌架构师 802

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Elementui el-tabs 选项卡 踩坑记录
下一篇: Vue中使用moment格式化日期格式
是日前端
博客等级 码龄11年 1万+粉丝 80原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值