前端vue需求:将当前页面转成图片或者PDF并下载

2023-05-16

一,下载依赖并引用

npm install html2canvas jspdf

import html2canvas from "html2canvas";

import jsPDF from "jspdf";

二,选取div

<div class="app-container" id="vueCapture">xxxx</div>

如果页面里有元素不想要,必须用样式消失

:class="hideHeader ? 'hideClass' : ''"

data(){

return{

hideHeader: false,

}

}

.hideClass {

display: none;

}

建议用nextTick包裹,确保样式生效

this.hideHeader = true;

this.$nextTick(() => {

...

});

三,前端转化

html2canvas(document.querySelector("#vueCapture"), {

// allowTaint: true, //允许跨域

// taintTest: false,

// useCORS: true,

// y: 0, // 对Y轴进行裁切

// // width:1200,

// // height:5000,

dpi: window.devicePixelRatio * 2, //将分辨率提高到特定的DPI 提高四倍

scale: 2, //按比例增加分辨率

}).then((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", [595.28, imgHeight]);

PDF.addImage(pageData, "JPEG", 0, 0, imgWidth, imgHeight);

//方式二:pdf里分页,但是会有图片被截俩半的风险,需要根据实际情况调整

// 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("capture.pdf");

this.hideHeader = false;

});

});

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端vue需求:将当前页面转成图片或者PDF并下载 的相关文章

随机推荐

  • 【图像处理】C++实现模板匹配

    预先判断 3 3十字中心 区域是否相似 xff0c 如果相似 xff0c 则再匹配判断 这样可以减少判断次数 前提 xff1a 模板大于9 9 BOOL Judgement BYTE pTempDataBuf BYTE pTemplateB
  • CPython的命令行与python文件的执行

    在Windows系统中 xff0c 下载并安装了Python解析器后 xff0c 就可以运行Python文件了 可以使用任何编辑器 xff0c 编写并保存Python文件 Python运行时提供了多种执行Python文件的方法 1 编写并保
  • Java运行时的shutdown hook

    Hook作为一种回调方式 xff0c 广泛应用于软件中 从Java 1 3开始 xff0c JVM的Runtime也提供了hook的机制 xff0c 即shutdown hook 提供给出shutdown hook xff0c 在退出JVM
  • Apache Maven Resources Plugin插件详解

    Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件 xff0c 能够将Maven项目中的各种资源文件复制到指定的输出目录中 1 在Maven项目中的资源可以分为两类 main资源 xf
  • TestNG测试的并发执行详解

    TestNG在执行测试时 xff0c 默认suitethreadpoolsize 61 1 xff0c randomizesuites 61 false xff0c 即非并发顺序执行测试 但是TestNG提供了多种方式 xff0c 以支持测
  • Maven的pom.xml文件结构之Build配置build

    在Maven的pom xml文件中 xff0c Build相关配置包含两个部分 xff0c 一个是 lt build gt xff0c 另一个是 lt reporting gt xff0c 这里我们只介绍 lt build gt 1 在Ma
  • Docker容器的重启策略及docker run的--restart选项详解

    1 Docker容器的重启策略 Docker容器的重启策略是面向生产环境的一个启动策略 xff0c 在开发过程中可以忽略该策略 Docker容器的重启都是由Docker守护进程完成的 xff0c 因此与守护进程息息相关 Docker容器的重
  • docker run的--rm选项详解

    在Docker容器退出时 xff0c 默认容器内部的文件系统仍然被保留 xff0c 以方便调试并保留用户数据 但是 xff0c 对于foreground容器 xff0c 由于其只是在开发调试过程中短期运行 xff0c 其用户数据并无保留的必
  • Spring Boot的Maven插件Spring Boot Maven plugin详解

    Spring Boot的Maven插件 xff08 Spring Boot Maven plugin xff09 能够以Maven的方式为应用提供Spring Boot的支持 xff0c 即为Spring Boot应用提供了执行Maven操
  • Django项目与Django应用的关系及django.apps模块

    1 Django项目与Django应用 Django项目通常是使用django admin工具创建的项目结构 xff0c 执行如下命令创建Django项目myproject xff1a django admin startproject m
  • Gradle-7.0.3 build.gradle字段有改变

    如果你使用最新的 Gradle 7 0 3 build gradle文件里 defaultConfig 作用域内个别字段有变化 defaultConfig span class token punctuation span applicat
  • Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean异常解析

    Spring Boot升级到2 0 1 xff0c 再次按照其官网的Quick Start做了一下上手练习 xff0c Maven构建成功 xff0c 但是启动应用总是报错如下 xff1a Unable to start ServletWe
  • Spring Boot 2.0中嵌入式Web容器(如Tomcat)对HTTP2的支持详解

    Spring Boot应用往往作为服务发布 xff0c 这里对HTTP2的支持 xff0c 主要是对通过嵌入式Web容器支持HTTP2 1 在最新的Spring Boot 2 0 3 RELEASE中 xff0c 集成的三种嵌入式Web容器
  • Spring Cloud OpenFeign详解

    作为Spring Cloud的子项目之一 xff0c Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式 xff0c 为微服务架构下服务之间的调用提供了解决方案 首先 xff0c 利用
  • Docker容器支持IPv6的方法

    1 设置Docker Engine支持IPv6 1 启动Docker Engine时即开启对IPv6的支持 默认启动时Docker Engine只支持IPv4 启动Docker Engine时 xff0c 指定 ipv6选项即可支持IPv6
  • 总线带宽计算公式(解析)

    总线带宽 xff1a 一定时间内总线上可以传输的数据量 xff0c 使用MByte s表示 总线位宽 xff1a 总线能同时传送的数位数 xff0c 使用bit表示 xff08 常见的如32位 xff0c 64位 xff09 总线频率 xf
  • macOS终端命令行配置网络代理

    一 前言 xff1a 在下载一些需要vpn下载公司内网的源码或者认证时 xff0c 必不可少的需要使用代理 xff0c 与普通的网页及应用代理不同 xff0c 在mac的终端中并没有开启默认的代理模式 xff0c 所以需要手动进行设置 xf
  • VUE源码浅读

    首先我们要知道vue代码如何运行的 xff1f 初始化及挂载 61 gt 编译 xff08 parse optimize generate xff09 61 gt render function渲染 xff08 响应式 xff09 61 g
  • 一文解决Vue2过渡Vue3痛点

    项目升级vue3 0总结 醉逍遥neo的博客 CSDN博客 升级项目vue版本
  • 前端vue需求:将当前页面转成图片或者PDF并下载

    一 xff0c 下载依赖并引用 npm install html2canvas jspdf import html2canvas from 34 html2canvas 34 import jsPDF from 34 jspdf 34 二