html2canvas导出图片踩坑解决导出截屏的长度和图表导出空白

html2canvas官网

如何导出PDF可以去看看

最近要将一个页面的所有数据导出成图片,,踩了不少坑,
百度了不少,不是导出时只能导出眼前所看的数据,就是导出全部时没办法导出图表数据差点搞炸了,看了官网后发现
windowHeight这个东西可以控制截屏的长度就可以解决,
y和X这个东西控制的是截图的偏移感觉没啥用,
useCORS自然开启的是跨域不用多说
scale 好像是放大但好像没啥用

	downloadResult(name) {
		let canvasID = document.querySelector("#mianType");
		var width = document.getElementById("mianType").scrollWidth
		var height = document.getElementById("mianType").scrollHeight
		html2canvas(canvasID, {
			width: width,
			height: height,
			allowTaint: false,
			useCORS: true,
			windowHeight: height * 2, // 获取y方向滚动条中的内容

		}).then(canvas => {
			let dom = document.body.appendChild(canvas);
			let a = document.createElement('a');
			dom.style.display = "none";
			a.style.display = "none";
			let blob = this.dataURLToBlob(dom.toDataURL("image/png").replace("image/png", "image/octet-stream"));
			a.setAttribute("href", URL.createObjectURL(blob));
			a.setAttribute("download", name + ".png")
			document.body.appendChild(a);
			a.click();
			URL.revokeObjectURL(blob);
			document.body.removeChild(dom);
			document.body.removeChild(a);
		});
	},
	
dataURLToBlob(dataurl) { //ie 图片转格式
			var arr = dataurl.split(','),
				mime = arr[0].match(/:(.*?);/)[1],
				bstr = atob(arr[1]),
				n = bstr.length,
				u8arr = new Uint8Array(n);
			while (n--) {
				u8arr[n] = bstr.charCodeAt(n);
			}
			return new Blob([u8arr], {
				type: mime
			})
		},
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值