036:vue导出页面生成pdf文件

在这里插入图片描述

第036个

查看专栏目录: VUE ------ element UI


专栏目标

在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。

(1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,updated, beforeDestroy,destroyed,activated,deactivated,errorCaptured,components,)、 $root , $parent , $children , $slots , $refs , props, $emit , eventbus ,provide / inject, Vue.observable, $listeners, $attrs, $nextTick , v-for, v-if, v-else,v-else-if,v-on,v-pre,v-cloak,v-once,v-model, v-html, v-text, keep-alive,slot-scope, filters, v-bind,.stop, .native, directives,mixin,render,国际化,Vue Router等

(2)提供element UI的经典操作:安装,引用,国际化,el-row,el-col,el-button,el-link,el-radio,el-checkbox ,el-input,el-select, el-cascader, el-input-number, el-switch,el-slider, el-time-picker, el-date-picker, el-upload, el-rate, el-color-picker, el-transfer, el-form, el-table, el-tree, el-pagination,el-badge,el-avatar,el-skeleton, el-empty, el-descriptions, el-result, el-statistic, el-alert, v-loading, $message, $alert, $prompt, $confirm , $notify, el-breadcrumb, el-page-header,el-tabs ,el-dropdown,el-steps,el-dialog, el-tooltip, el-popover, el-popconfirm, el-card, el-carousel, el-collapse, el-timeline, el-divider, el-calendar, el-image, el-backtop,v-infinite-scroll, el-drawer等

本文章目录

    • 专栏目标
    • 需求背景
    • 示例效果
    • 导出的结果
    • 示例源代码(共62行)
    • 安装依赖
    • 创建:html2pdf.js文件
    • main.js中全局引用

需求背景

在vue项目开发中,我们有的时候是要将页面中的内容导出为pdf格式的文件。在本示例中,我们就是如何演示将html转换为pdf文件的。

示例效果

在这里插入图片描述

导出的结果

在这里插入图片描述

示例源代码(共62行)

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2022-09-20
*/
<template><div class="container"><div class="top"><h3>vue导出页面生成pdf文件</h3><div class="author">大剑师兰特, 还是大剑师兰特,gis-dajianshi</div></div><h4><el-button type="primary" @click="getPdf(htmlTitle)"> 导出为pdf文件</el-button> </h4><div  id="zjcopyPDF"><p>&nbsp;vue-router传递参数分为两大类</p><div><strong>编程式的导航 router.push</strong></div><div><strong>声明式的导航 &lt;router-link&gt;</strong></div><div>&nbsp;</div><h2>编程式导航</h2><div>1)编程式导航传递参数有两种类型:字符串、对象。</div><div><u><strong>字符串</strong></u></div><div>字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数:</div><div>this.$router.push(&quot;home&quot;);</div><div><u><strong>对象</strong></u></div><div>想要传递参数主要就是以对象的方式来写,分为两种方式:<strong>命名路由、查询参数,</strong>下面分别说明两种方式的用法和注意事项。</div></div></div>
</template>
<script>export default {data() {return {htmlTitle: 'PDF文件名' }},methods: {},}
</script>
<style scoped>.container {width: 1000px;height: 580px;margin: 50px auto;border: 1px solid green;position: relative;}.top {margin: 0 auto 30px;padding: 10px 0;background: peru;color: #fff;}#zjcopyPDF{text-align: left; padding: 10px 50px;}
</style>

安装依赖

npm install --save html2canvas
npm install jspdf --save

创建:html2pdf.js文件

import html2Canvas from 'html2canvas' 
import JsPDF from 'jspdf' 
export default{ install (Vue, options) { Vue.prototype.getPdf = function () { var title = this.htmlTitle html2Canvas(document.querySelector('#zjcopyPDF'), { allowTaint: true }).then(function (canvas) { let contentWidth = canvas.width let contentHeight = canvas.height let pageHeight = contentWidth / 592.28 * 841.89 let leftHeight = contentHeight let position = 0 let imgWidth = 595.28 let imgHeight = 592.28 / contentWidth * contentHeight let 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 -= pageHeight position -= 841.89 if (leftHeight > 0) { PDF.addPage() } } } PDF.save(title + '.pdf') } ) } } 
} 

main.js中全局引用

import htmlToPdf from ‘@/components/utils/htmlToPdf’
Vue.use(htmlToPdf)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/136785.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元数据管理平台Datahub0.10.5版本安装部署与导入各种元数据手册

官网文档连接 DataHub Quickstart Guide | DataHub (datahubproject.io) 本文所选择的Python的版本为3.8.16&#xff0c;Docker版本为20.10.0&#xff0c;Datahub为0.10.5版本 python必须为3.7以上的版本。0.10.5不支持以下的版本 如果要使用web上的 添加数据源 直接调用的…

中国提出FastSAM:在RTX3090上提升了ViT-H E(32×32) 50倍速度

文章目录 1. Abstract2. 背景介绍3. 框架详情 (Methodology)3.1 Overview3.2 All-instance Segmentation3.3 Prompt-guided Selection4. Experiments4.1 Run-time Efficiency Evaluation4.2 Zero-Shot Edge Detection4.2.1 BSDS5004.2.2 Sobel filtering4.2.3 NMS4.3 Zero-Shot…

Redis 列表操作实战(全)

目录 LINDEX 获取指定下标元素 LSET 指定下标添加元素 LPUSH 将元素插入列表头 LPUSHX RPUSH 将元素插入列表尾 RPUSHX LINSERT 将元素插入列表某位置之前 LLEN 列表长度 LPOP 取列表头元素 RPOP 取列表尾元素 BLPOP 阻塞式取列表头元素 BRPOP 阻塞式取列表尾元素…

视频监控系统/视频汇聚平台EasyCVR平台页面展示优化

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

企望制造ERP存在远程命令执行漏洞 附POC

文章目录 企望制造ERP存在远程命令执行漏洞 附POC1. 企望制造ERP简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 企望制造ERP存在远程命令执行漏洞 附POC 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播…

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

python+django学习资料在线分享系统vue

本站是一个B/S模式系统&#xff0c;采用vue框架作为开发技术&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得校园资料分享平台管理工作系统化、规范化。技术栈 后端&#xff1a;pyth…

零基础学前端(四)1. 重点讲解 CSS:盒子模型、样式选择器

1. 该篇适用于从零基础学习前端的小白 2. 初学者不懂代码得含义也要坚持模仿逐行敲代码&#xff0c;以身体感悟带动头脑去理解新知识 3. 初学者切忌&#xff0c;不要眼花缭乱&#xff0c;不要四处找其它文档&#xff0c;要坚定一个教授者的方式&#xff0c;将其学通透&#xff…

RK3568平台开发系列讲解(驱动篇)RK3568 I2C总线介绍

🚀返回专栏总目录 文章目录 一、I2C 简介1.1、起始位1.2、停止位1.3、数据传输1.4、应答信号1.5、I2C 写时序1.6、I2C 读时序1.7、I2C 多字节读写时序二、RK3568 I2C 总线介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将讲解RK3568 I2C总线特性。 一、…

使用 K 均值聚类进行颜色分割

介绍 颜色分割是计算机视觉中使用的一种技术,用于根据颜色识别和区分图像中的不同对象或区域。聚类算法可以自动将相似的颜色分组在一起,而不需要为每种颜色指定阈值。当处理具有大范围颜色的图像时,或者当事先不知道确切的阈值时,这非常有用。 在本教程中,我们将探讨如何…

Zipping

Zipping 信息收集端口扫描目录扫描webbanner信息收集 漏洞利用空字节绕过---->失败sqlI-preg_match bypass反弹shell 稳定维持 提权-共享库漏洞 参考&#xff1a;https://rouvin.gitbook.io/ibreakstuff/writeups/htb-season-2/zipping#sudo-privileges-greater-than-stock-…

【ComfyUI】RuntimeError: CUDA error: operation not supported

文章目录 前言解决办法方式一&#xff1a;黑名单策略方式二&#xff1a;启动时添加--disable-cuda-malloc 前言 最近好不容易&#xff0c;安装好ComfyUI后&#xff0c;启动也OK&#xff0c;点击生成图片时&#xff0c;报错了 got prompt model_type EPS adm 0 making attenti…

Postman应用——Collection、Folder和Request

文章目录 Collection新建CollectionCollection重命名保存Request到Collection在Collection下创建Request删除Collection Folder新建FolderFolder重命名保存Request到Folder在Folder下创建Request在Folder下创建Folder删除Folder Request创建临时RequestRequest重命名删除Reques…

【AAAI2023】Spatial-Spectral Transformer for Hyperspectral Image Denoising

论文&#xff1a;https://readpaper.com/paper/4694783227240398849 代码&#xff1a;https://github.com/MyuLi/SST 1、总体介绍 高光谱图像&#xff08;HSI&#xff09;去噪是后续HSI应用的关键预处理过程&#xff0c;但是基于CNN的方法需要在计算效率与非局部特征建模能力之…

如何快速走出网站沙盒期(关于优化百度SEO提升排名)

网站沙盒期是指新建立的网站在百度搜索引擎中无法获得好的排名&#xff0c;甚至被完全忽略的现象。这个现象往往发生在新建立的网站上&#xff0c;因为百度需要时间来评估网站的质量和内容。蘑菇号www.mooogu.cn 为了快速走出网站沙盒期&#xff0c;需要优化百度SEO。以下是5个…

【Linux】【网络】应用层协议:HTTPS

文章目录 HTTPS1. 加密方式2. 数据摘要 \ 数据指纹3. 数字签名 HTTPS 的 工作过程HTTPS 工作过程中的密钥 HTTP HTTPS HTTP&#xff08;HyperText Transfer Protocol&#xff09;&#xff1a; 是客户端浏览器或其他程序与 Web 服务器之间的应用层通信协议。 HTTPS&#xff0…

Mysql002:(库和表)操作SQL语句

目录&#xff1a; 》SQL通用规则说明 SQL分类&#xff1a; 》DDL&#xff08;数据定义&#xff1a;用于操作数据库、表、字段&#xff09; 》DML&#xff08;数据编辑&#xff1a;用于对表中的数据进行增删改&#xff09; 》DQL&#xff08;数据查询&#xff1a;用于对表中的数…

FFMpeg zoompan 镜头聚焦和移动走位

案例 原始图片 # 输出帧数&#xff0c;默认25帧/秒&#xff0c;25*4 代表4秒 # s1280x80 # 输出视频比例&#xff0c;可以设置和输入图片大小一致 # zoom0.002 表示每帧放大的倍数&#xff0c;下面代码是25帧/每秒 * 4秒&#xff0c;共1000帧 # 最终是 0.002*25*4 0.2&…

Cesium 生成点位坐标

文章目录 需求分析1. 点击坐标点实现2. 输入坐标实现 需求 用 Cesium 生成点位坐标&#xff0c;并明显标识 分析 以下是我的两种实现方式 第一种是坐标点击实现 第二种是输入坐标实现 1. 点击坐标点实现 //点位坐标getLocation() {this.hoverIndex 0;let that this;this.view…

VR全景需要加盟吗?简述VR全景加盟的意义

对于一个刚开始了解VR全景行业的新人来说&#xff0c;VR全景不是有软件、有设备、会拍摄就行了吗&#xff1f;为什么还要找全景平台进行加盟呢&#xff1f;VR全景加盟的作用又是什么呢&#xff1f;那么&#xff0c;我们就不得不多问几个问题了&#xff0c;例如不加盟的话&#…