vue 将base64 的文件流转换成pdf 并预览、下载, 兼容 IE10+

Vue中使用jspdf转为pdf并文件下载(附:解决文件中文乱码 github中搜索jspdf,clone或者下载zip文件,下载之后找到 ’fontconverter‘ 打开 里面有一个'fontconverter.html',在浏览器中运行。打开之后就是这个样子,选择你的字体文件(xx.ttf) 然后点击Create会自动下载一个依赖你上传的字体文件的js,将这个js拖动到你的项目中使用。然后再项目中引入 回到第 3 步的方法内部中,可以看到我们使用了这个字体并定义了字体格式。有某些场景,比如说页面有一个下载按钮,点击了下载按钮之后,会下载一个pdf文件。 阅读详情

前提是先下载并引进需求

1.下载: npm install vue-pdf --save-dev

2.引进:import pdf from "vue-pdf";

1.预览:

// data为后端给的base64格式的pdf
import { data } from "../../tempData";
import pdf from 'vue-pdf'
// 解决部分文字不显示的问题
import CMapReaderFactory from 'vue-pdf/src/CMapReaderFactory.js'
// html
    <pdf v-for="i in numPages" :key="i" :src="src" :page="i" ref="myPdfComponent"></pdf>
  data () {
    return {
      src: '',
      numPages: 0,
      page: 1,
      currentPage: 0
    };
  },
  components: {
    pdf
  },
  mounted () {
    let da = data.fileToBase64
    let datas = 'data:application/pdf;base64,' + da
    this.src = pdf.createLoadingTask({ url: datas, CMapReaderFactory });
    this.src.promise.then(pdf => {
      this.numPages = pdf.numPages;
    });
  },

2.下载:

//base64 转换 blob

dataURLtoBlob(dataurl) {

  var bstr = atob(dataurl)

  var n = bstr.length;

  var u8arr = new Uint8Array(n);

  while (n--) {

    u8arr[n] = bstr.charCodeAt(n);

  }

  return new Blob([u8arr], { type: 'pdf' });

}



// res.data   就是后台返回的base64的 文件流

let URL = this.dataURLtoBlob(res.data);

var reader = new FileReader();

  reader.readAsDataURL(URL);

  reader.onload = function (e) {

    // 兼容IE

    if (window.navigator.msSaveOrOpenBlob) {

      var bstr = atob(e.target.result.split(",")[1]);

      var n = bstr.length;

      var u8arr = new Uint8Array(n);

      while (n--) {

        u8arr[n] = bstr.charCodeAt(n);

      }

      var blob = new Blob([u8arr]);

      window.navigator.msSaveOrOpenBlob(blob,'采购单.pdf');

    } else {

      // 转换完成,创建一个a标签用于下载

      const a = document.createElement('a');

      a.download = '采购单.pdf'; // 这里写你的文件名

      a.href = e.target.result;

      document.body.appendChild(a)

      a.click();

      document.body.removeChild(a)

  }

}

 

转载于:vue 将base64 的文件流转换成pdf 并下载, 兼容 IE10+          vue-pdf预览base64数据为pdf

前端base64文件流转PDF并下载 阅读详情

相关推荐

base64文件流转换成pdf格式下载/打印,兼容IE浏览器

需求: 后端返回的是一个base64的文件流,需要前端自行处理,把它处理成PDF格式并在浏览器中打印出来 代码: getPrint(data).then(res => { const URL = this.dataURLtoBlob(res.data) // res.data是后端返回的base64流 const reader = new FileReader() reader.readAsDataURL(URL) reader.onload = function(e) { //兼容IE if (wi

Scholar___的博客 2999

vue 将base64 的文件流转换成pdf 预览并下载

<el-tooltip placement="right-start" effect="light"> <div slot="content" class="content" @click="downFile(photosList[index])" > 下载 ...

lqlq54321的博客 7452

Vue3使用kkFileView预览文件pdf

kkFileView - 在线文件预览kkFileView官网 - kkFileView使用Spring Boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,图片等等业务场景:需要点击按钮,弹出弹框预览pdf文件这里使用的是3.x.x 版本,需要下载base64。

前端程序媛_Ying博客 2871

vue 把PDF的base64 转成图片 预览

PDF和img图片一起预览把PDF的base64转成图片预览

Jw_1201的博客 7300

Vue项目中优雅处理Base64 PDF预览与下载:iframe与PDF.js对比

本文深入对比了在Vue项目中处理Base64格式PDF预览与下载的两种主流方案:iframe与PDF.js。分析了iframe方案简单直接但存在自定义文件名困难等局限,而PDF.js方案功能强大、支持自定义下载名称等高级功能但复杂度较高。文章提供了详细的代码实现、性能优化策略及结合两者优势的混合方案选型建议,帮助开发者根据项目需求做出优雅的技术决策。

weixin_29196613的博客 421

uniapp(全端兼容) - 最新详细实现预览pdf文件功能,uniapp安卓苹果app、H5网页、微信小程序、nvue等端打开本地或在线PDF文档进行预览,uniapp预览pdf教程(详细示例代码)

uni-app,pdf,打开预览PDF,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,uniapp预览PDF,App端 实现pdf文件预览,在app端怎么预览pdf,网页h5怎么预览pdf,pdf下载、上传和预览,H5预览pdf文件,小程序预览pdf,nvue平台怎么打开预览pdf呢,除了uni.opendocument还有什么方法打开,预览pdf的插件,pdf预览组件,uni-app实现PDF预览功能,app查看下载pdf文件,如何做pd

✅ 精选推荐文章 1万+

vue3实现excel文件预览(base64转blob文件流结合vue-office-excel组件)

vue3实现excel文件预览(base64转blob文件流结合vue-office-excel组件)

weixin_60886885的博客 7848

Vue页面转PDF文件并下载

安装插件 npm install -S jspdf npm install -S html2canvas 使用: 1)新建htmlToPdf.js(可放在libs文件下) import html2Canvas from 'html2canvas' import JsPDF from 'jspdf' export default{ install (Vue, options) { Vu...

日常笔记/总结/系列知识梳理 1523

vue 将base64 的文件流转换成pdf 并下载, 兼容 IE10+

//base64 转换 blob dataURLtoBlob(dataurl) {   var bstr = atob(dataurl)   var n = bstr.length;   var u8arr = new Uint8Array(n);   while (n--) {     u8arr[n] = bstr.charCodeAt(n);   }   return new...

weixin_30364325的博客 4498

vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,

*

兔子的博客 2551

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2762

关于pdf.js在线预览base64格式的实现以及出现的问题

首先我接收到的是后台返回的标准格式的base64 编码流 有png格式的和pdf格式的编码流两种 可以使用base64在线转换工具来查看png和pdf需要加的格式 png : "data:image/png;base64," + 后台返回的数据流; pdf:"data:application/pdf;base64," + 后台返回的数据流; 使用pdf.js实现base64编码流实现pdf文件的...

zyqgt960812的博客 5418

百度飞桨+文心大模型实战:生成式AI工程师认证备考全攻略(含真题解析)

本文详细解析百度飞桨与文心大模型结合的生成式AI工程师认证备考策略,涵盖认证体系、学习路径、核心技能突破及真题分析。帮助开发者掌握大模型原理、飞桨平台操作和文心大模型应用,高效通过工信部与百度联合认证考试。

loss4bartender的博客 681

vue3中将base64的pdf文件流转换成pdf并预览(三)——base64数据转pdf & pdf工具栏不显示 & vue3-seamless-scroll组件的使用-事件捕获 & 给接口追加数据

vue3中将base64的pdf文件流转换成pdf并预览(三)——接口base64数据转pdf的处理 & pdf工具栏不显示 & vue3-seamless-scroll组件的使用-事件捕获 & 给接口追加数据 1、效果 pdf详细版 2、代码 核心代码 1、pdf工具栏不显示 :src="zbUrl+'#toolbar=0'" 2、接口中base64的处理 1、接口 接口名称 接口地址 接口释义 文件下载(根据文件ID) /common/file/getFi

weixin_44867717的博客 3124

STM32 DMA串口重定向printf:高效调试与性能优化实战

本文详细介绍了STM32 DMA串口重定向printf的实现方法与性能优势。通过对比传统方式的CPU高占用问题,阐述了DMA技术如何实现高效数据传输,大幅降低CPU负载。文章包含完整的代码实现、缓冲区管理技巧及实战调试方案,帮助开发者优化嵌入式系统调试效率。

lake5的博客 98

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+

Vue-PDF的Base64在线预览

第一步:导入所需要的依赖 "pdfjs-dist": "2.10.377", 第二步: 引入 : main.js中 import Vue from 'vue'; import { YPdf } from '@ylz/vant'; Vue.use(YPdf); 导包:import YPdf from "@/components/plugins/y-pdf" 组件:components: {YPdf} 控件:<y-pdf ...

涂山山主的博客 4万+

代码审计工具学习之Seay(安装以及初步认识)

目录 1.1名词解释 1.2代码审计的重要性 1.3代码审计的步骤 1.4代码审计的内容 1.5常见的代码审计工具 2 Seay 2.1什么是Seay 2.2Seay的安装过程 3典型漏洞分析 3.1什么是命令注入漏洞 3.2 如何理解命令注入漏洞 3.3 如何防御命令注入漏洞 4 利用工具对命令注入漏洞进行分析 4.1DVWA靶场命令注入漏洞分析 4.2 Pikachu靶场命令注入漏洞分析 1.1名词解释 软件代码审计是对编程项目中源代码的全面...

weixin_52515588的博客 2万+

通过pdfjs实现在VUE-CLI中进行PDF预览,并禁用打印及下载功能

官网:PDF.js官方demo:PDF.js viewer下载本文主要针对vue-cli4版本的文件 因为pdf.js是不支持跨域文件加载的 直接加载是不会成功的。会报 “file origin doesnot match viewer”错误,所以需要把viewer.js文件内的抛出错误这一行报错注释掉 既然是新框架,肯定想先玩玩试试效果,很简单,页面放一个iframe,然后src等于到viewer.html的public路径,直接(pdfjs/***)即可。 效果就跟 官方

qq_24800489的博客 6469

ChatTutor:让AI老师“会写会画”,打造可视化、互动式智能教育新范式

ChatTutor是一款突破性的开源AI教学助手,通过可视化电子白板实现"边讲边写"的沉浸式教学体验。该项目支持数学公式手写输入、动态函数绘图、自动生成思维导图等功能,采用多智能体架构实现专业协同。未来将扩展至编程、物理等STEM教育领域,适用于学生自学、教师备课和教育平台集成。作为MIT协议开源项目,ChatTutor通过赋予AI"教学肢体语言",推动教育从信息传递转向可视化互动建构,重新定义了AI助教的可能性。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 423

SAP MM ME21N保存前检查增强

想在ME21N保存前做一些数据检查, 可以做一个增强功能,  运行 CMOD 新增,   增强接口 输入 MM06E005  (  EXIT_SAPMM06E_012 ) ,在 NCLUDE ZXM06U43 .  里写代码功能。  例子如下: *&---------------------------------------------------------------------*

heng0757的专栏 1万+

vue PDF下载与预览(文件流格式和base64格式)

1、pdf下载 2、pdf新开窗口预览

皮卡丘 2863

什么是 SAP S/4HANA 的 VDM Layering Architecture 的 CDS Hierarchy View

当涉及SAP S/4HANA的CDS Hierarchy View时,我们正在谈论一种高级数据建模技术,用于构建层次结构化的数据视图,以支持树状和分层数据的处理和分析。CDS(Core Data Services)是SAP的一种数据建模和定义语言,而CDS Hierarchy View则是CDS的一个重要组成部分,用于处理层次数据,如组织结构、产品分类、地理区域等。首先,您可以使用CDS语言创建一个新的CDS Hierarchy View,定义产品分类的层次结构。您还可以定义其他与库存相关的属性。

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

关于对pdf.js(v2.1)在线预览base64格式所出现的问题

先从第一步开始说吧 从官网下载 pdf.js文件 附官网地址:http://mozilla.github.io/pdf.js/getting_started/#download 下载下来后将会有一个build文件夹和web文件夹,然后将这两个文件放在vue的public下面 如下图: 在网上查了很多关于pdf.js在线预览base64格式的使用方式,虽然基本上说的都一样,注释掉 var ...

超超的博客 7291

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IE11线上显示pdf文件以及pdf.js用法

最近公司要求能够在ie上线上预览pdf插件 vue有vue-pdf插件可以用 但是js虽然有pdfjs等 但是新版本只支持谷歌浏览器(语法有箭头函数),所以在github找到了老版本的pdfjs,发现可用 代码为 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>'Hello, world!' example</title> <sty

weixin_38992765的博客 3329

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pdf

前提是先下载并引进需求 1.下载: npm install vue-pdf --save-dev 2.引进:importpdffrom"vue-pdf"; 1.预览: // data为后端给的base64格式的pdf import { data } from "../../tempData"; import pdf from 'vue-pdf' // 解决部分文字不显示的问题 import CMapReaderFactory from 'v...

weixin_39888214的博客 146

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: SpringBoot中配置Mybatis打印sql
下一篇: 在vue项目中使用pdf.js渲染base64编码的pdf进行预览
筱小虾米
博客等级 码龄9年 32粉丝 40原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值