分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

js把某个div或其他元素用图片的形式导出或下载

发布时间:2023-09-06 01:51责任编辑:傅花花关键词:jsdiv

很多时候需要用到把页面上的某个块元素用图片的形式导出来,例如导出一些表格构成的单据
思路:把指定的html内容转换成canvas,然后再转换成图片
这里推荐使用这两个库

<script src="https://superal.github.io/canvas2image/canvas2image.js"></script><script src="https://html2canvas.hertzen.com/dist/html2canvas.js"></script><script>//使用例子var html2Img = { ?init: function() { ???this.initDom(); ???this.initEvent(); ?}, ?initDom: function() { ???this.$el = {}; ???this.$el.$startBtn = $(‘#clickBtn‘);//触发元素 ???this.$el.$htmlSource = $(‘#youhtml‘);//要导出的html ???this.$el.$pngContent = $(‘#imgshow‘);//转换后的图片展示 ?}, ?initEvent: function() { ???var me = this; ???this.$el.$startBtn.on(‘click‘, function() { ?????me.initSavePng(2); ???}); ?}, ?initSavePng: function(N) { ???var me = this; ???var sourceContent = me.$el.$htmlSource; ???var width = sourceContent.width(); ???var height = sourceContent.height(); ???var offsetTop = sourceContent.offset().top; ???var offsetLeft = sourceContent.offset().left; ???var canvas = document.createElement("canvas"); ???var canvas2D = canvas.getContext("2d"); ???// 不能小于1,否则图片不完整 ???var scale = N; ???canvas.width = (width + offsetLeft) * scale; ???canvas.height = (height + offsetTop) * scale; ???canvas2D.scale(scale, scale); ???canvas2D.font = "Microsoft YaHei"; ???var options = { ?????//检测每张图片都已经加载完成 ?????tainttest: true, ?????canvas: canvas, ?????scale: scale, ?????//dom 放大的宽度,放大倍数和清晰度在一定范围内成正相关 ?????width: width + offsetLeft, ?????// 开启日志,可以方便调试 ?????logging: true, ?????//dom 放大的宽度,放大倍数和清晰度在一定范围内成正相关 ?????height: height + offsetTop ???}; ???html2canvas(sourceContent, options).then(function(canvas) { ?????//显示图片-start ?????var img = window.Canvas2Image.convertToPNG(canvas, width * scale, height * scale); ?????me.$el.$pngContent.append(img); ?????// 将图片恢复到原始大小 ?????me.$el.$pngContent.find(‘img‘).css({ ???????width: width, ???????height: height ?????}); ?????//显示图片-end ?????//导出图片 ?????window.Canvas2Image.saveAsPNG(canvas, width * scale, height * scale); ???}); ?}};html2Img.init();</script>

js把某个div或其他元素用图片的形式导出或下载

原文地址:https://www.cnblogs.com/chriiess/p/8952028.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved