Vue中将页面导出为PDF

news/2024/10/30 19:27:07/

Vue中将页面导出为PDF

  • 实现思路
    • 第一步
    • 第二步
    • 第三步
    • 第四步
    • 全部代码
    • 展示

实现思路

在Vue中实际是把页面利用canvas转换成图片,然后再用图片的base64码转成PDF,这里就使用到了两个插件html2canvas和jspdf
在这里插入图片描述

第一步

安装两个插件

npm install --save html2canvas //html页面转换成图片
npm install jspdf --save //把base64转换为PDF

第二步

在目录src下创建utils文件夹,里面创建一个exportPdf.js,将下面内容复制到js文件里面

// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'export function getPdf(title,id){html2Canvas(document.querySelector(`#${id}`), {allowTaint: true}).then(function (canvas) {let contentWidth = canvas.widthlet contentHeight = canvas.heightlet pageHeight = contentWidth / 592.28 * 841.89let leftHeight = contentHeightlet position = 0let imgWidth = 595.28let imgHeight = 592.28 / contentWidth * contentHeightlet pageData = canvas.toDataURL('image/jpeg', 1.0)let PDF = new JsPDF('', 'pt', 'a4')if (leftHeight < pageHeight) {PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight)} else {while (leftHeight > 0) {PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)leftHeight -= pageHeightposition -= 841.89if (leftHeight > 0) {PDF.addPage()}}}PDF.save(title + '.pdf')})
}

第三步

在项目或者需要用到的组件中引入方法
在这里插入图片描述

第四步

使用方法
HTML

<!-- 这里就是要变成图片的容器 -->
<div id="pdfHtml" ref="printHtml" style="text-align: center"><img src='../assets/logo.png'/>
</div> 
<button type="primary" @click="exportPDF">导出PDF</button>

JS

// 导出PDF
exportPDF() {getPdf('测试','pdfHtml');
},

全部代码

<template><div><!-- 这里就是要变成图片的容器 --><div id="pdfHtml" ref="printHtml" style="text-align: center"><img src="../assets/logo.png" /></div><button type="primary" @click="exportPDF">导出PDF</button></div>
</template><script>
import { getPdf } from '../utils/exportPdf';
export default {methods: {// 导出PDFexportPDF() {getPdf('测试', 'pdfHtml');},},
};
</script><style>
</style>

展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/437117.html

相关文章

爱奇艺2020官方下载_爱奇艺视频如何上传

软件是否好用&#xff0c;还得大家下载爱奇艺安装才知道。本文分享爱奇艺2020官方下载_爱奇艺视频如何上传。爱奇艺电影频道拥有大量高清在线电影资源&#xff0c;热门高清电影、好评电影、电影预告都可以在线观看&#xff0c;不去电影院也能看好电影&#xff0c;而且是看所有电…

vue 文件导入导出/上传下载并与后端交互操作

上传/导入 1、前端解析文件处理后再传递 依赖—解析文件 import Papa from papaparsehtml <div class"_importIn"><img title"导入文件" src"../../assets/image/tech/importIn.png" alt""><!--css中将导入文件隐藏…

Vue下载本地pdf、word、excel文件

Vue下载本地pdf、word、excel文件 项目需求具体实现注意 项目需求 在项目中需要对pdf、word、excel等文档的下载 也就是获取文件的静态路径&#xff0c;下载到本地。 方案 &#xff1a;利用 axios 下载 具体实现 项目技术 Vue2 element UI中实现 首先需要一个按钮来触发点击…

vue将页面导出pdf,vue导出pdf

vue导出pdf 新需求&#xff1a;需要前端下载把当前html下载成pdf文件 方法一&#xff1a; 菜鸟觉得牛逼啊&#xff0c;这必须记录下来嗷嗷嗷嗷 1、第一步&#xff1a;我们要添加两个模块 //第一个&#xff1a;将页面html转换成图片 npm install --save html2canvas //第二个:…

VUE页面转pdf下载

一.欢迎你们走进杭老师小学堂,今天给大家讲解一下vue页面转PDF下载,本人亲测有效哦! 随着项目体积的不断增加,我们的项目内容也逐渐越来越丰富新颖! 多了不说上需求跟代码! 1.首先我们要绑定一个按钮 点击下载pdf格式文件 源码给大家 <div class"pdf-demo">&…

vue.js+jspdf.js+html2pdf.js 实现页面导出PDF

vue.jsjspdf.jshtml2pdf.js 实现页面导出PDF 原本是导出word但客户考虑到问到的安全性要求改成了PDF&#xff0c;由于之前的word导出也是有前端生成的&#xff0c;所以为了不增加工作量导出依旧有前端完成。起初在网上找了很多方法都无法实现&#xff0c;都想放弃了让后端写&a…

mac爱奇艺下载的视频在哪里

老婆要看马向阳下乡记&#xff0c;需要我下载下来看&#xff0c;上网搜索&#xff0c;下载地址都太慢&#xff0c;后来在mac的爱奇艺上搜索下载&#xff0c;速度杠杠的&#xff0c;下载完之后&#xff0c;发现问题来了。 不能在下载列表中显示文件所在的文件目录&#xff0c;找…

uniapp: 华为离线推送

一&#xff1a;前端开发代码配置 1.1 文件配置 下载agconnect-services.json&#xff0c;与manifest.json同级&#xff0c;下载地址参考【3.3.1.2】 1.2 manifest.json配置&#xff1a; APP模块配置---->勾选以下四个模块&#xff1a; OAuth&#xff08;登录鉴权&#x…