当前位置: 首页 > news >正文

vue中实现将页面或者div内容导出为pdf格式

将Vue单页面转成pdf并下载

步骤1:下载对应的库

npm install html2canvas;npm install jspdf --save

步骤2:创建一个htmlToPdf.js的js文件, 然后在main.js中全局引用一下,编写如下代码:

// htmlToPdf.js
// 导出页面为PDF格式
import html2Canvas from 'html2canvas'
import JsPDF from 'jspdf'
export default {install(Vue, options) {Vue.prototype.getPdf = function () {var title = this.htmlTitle  //DPF标题html2Canvas(document.querySelector('#pdfDom'), {allowTaint: true,taintTest: false,useCORS: true,y:72, // 对Y轴进行裁切// width:1200,// height:5000,dpi: window.devicePixelRatio * 4, //将分辨率提高到特定的DPI 提高四倍scale: 4 //按比例增加分辨率 }).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')})}}
}
// main.js
import htmlToPdf from '@/util/htmlToPdf'
Vue.use(htmlToPdf)

步骤三:在vue页面中给需要打印的区域一个div标签,然后给div一个id,id名和htmlToPdf.js中选择的名字一致,代码如下:

<div id="pdfDom">... 将要打印的内容放入其中
</div>

步骤四:在data节点中声明一个htmlTitle变量,指定为pdf文件的文件名

data() {return {htmlTitle: '要生成pdf的文件名'}
}

步骤五:在vue页面中添加一个button按钮,事件名和htmlToPdf.js中的方法名保持一致。

<el-button @click="getPdf()">PDF</el-button>

欧克了,完成以上步骤就可以实现div中内容的转为pdf并下载文件

http://www.lryc.cn/news/139186.html

相关文章:

  • Ubuntu 配置国内源
  • 分布式核心知识
  • 【JMeter】常用线程组设置策略
  • 【数据结构】回溯算法公式化解题 leetcode经典题目带刷:全排列、组合、子集
  • WPF基础入门-Class3-WPF数据模板
  • js将搜索的关键字加颜色
  • Docker安装Oracle数据库打开、链接速度很慢
  • 学生分班查询系统的创建与使用指南
  • 全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!
  • ffmpeg
  • CH03_代码的坏味道(下)
  • journal日志导致服务器磁盘满
  • “Go程序员面试笔试宝典”复习便签
  • 数组的度(指数组里任一元素出现频数的最大值)
  • scala array类型参数
  • 构建 NodeJS 影院预订微服务并使用 docker 部署(03/4)
  • html写一个向flask_socketio发送消息和接收消息并显示在页面上
  • C#使用.Net Core进行跨平台开发
  • Java“牵手”天猫店铺所有商品API接口数据,通过店铺ID获取整店商品详情数据,天猫API申请指南
  • php输入post过滤函数,入库出库,显示
  • matlab-对数据集加噪声并实现tsne可视化
  • 【BASH】回顾与知识点梳理(三十八)
  • Sql注入攻击的三种方式
  • dockerfile部署前端vue打包的dist文件实战
  • [技术杂谈]MobaXterm中文乱码编码问题一种解决方法
  • mac os M1 安装并启动 postgreSQL 的问题
  • 如何使用Wireshark进行网络流量分析?
  • 抖音web主页视频爬虫
  • 常用的jar包【maven坐标格式】
  • 【分布式】VMware FT概要