由于客户的需求,将js写出来的一个统计能够保存到本地。作为码奴的我只能慢慢搬砖咯!一开始使用的是html2canvas.js。功能是可以实现,但是有缺陷。话不多说开始搞!

1、引入几个JS库

①:jquery 版本还没试过我用的是3.1.1 (不贴链接了,这个要找很容易)

②:dom-to-image.js (点击下载  下载下来解压开在src目录里面)

③:FileSaver.js (点击下载  下载下来解压开在src目录里面)

2、新建HTML引入第一步中的几个库

3、生成图片

3.1、生成png图片

<script>
var jd= document.getElementById('标签ID');
domtoimage.toPng(jd)
.then(function (url) {
var img = new Image();
img.src = url;
document.body.appendChild(img);
})
.catch(function (e) {
console.log('生成图片出错', e);
});
</script>

3.2、生成下载图片

//保存图片
$("#btnToImg").click(function () {
domtoimage.toBlob(document.getElementById('chartdiv'))
.then(function (blob) {
window.saveAs(blob, 'ImgName.jpg');
});
});

我写的是一个按钮的安吉事件

3.3、生成jpeg图片

 domtoimage.toJpeg(document.getElementById('chartdiv'), { quality: 0.95 })
.then(function (dataUrl) {
var link = document.createElement('a');
link.download = 'Imgname.jpeg';
link.href = dataUrl;
link.click();
});

  

使用的额时候只要调方法就可以了

下面贴上Demo源码

<html>
<head>
<script type="text/javascript" src="jquery-3.3.1.js"></script>
<script type="text/javascript" src="dom-to-image.js"></script>
<script type="text/javascript" src="FileSaver.js"></script> <script type="text/javascript">
$(function () {
$("#btnSave").click(function () {
// 下载png图片
domtoimage.toBlob(document.getElementById('dvMain'))
.then(function (blob) {
window.saveAs(blob, '123.png');
});
});
});
</script>
</head>
<body>
<input type="button" id="btnSave" value="保存图片" />
<div id="dvMain">
<h1>123456789</h1> <h2>H2H2H2</h2>
<p>段落里面的内容</p>
<span>span里面的内容</span>
<table id="table" border="1" style="width:200px;border-collapse: collapse;border:1px solid black; width:80%;">
<tr>
<td rowspan="3">111</td>
<td>222</td>
<td>333300</td>
</tr>
<tr>
<td rowspan="2">444</td>
<td>555</td>
</tr>
<tr >
<td>666</td>
</tr>
<tr>
<td rowspan="3">77</td>
<td>888</td>
<td>999</td>
</tr>
<tr >
<td>000</td>
<td>QQQ</td>
</tr>
<tr>
<td>WWW</td>
<td>EEE</td>
</tr>
</table>
</div>
</body>
</html>

中间表格中海油跨行跨列的都没有什么问题。

4、问题:

我现在是弄好了保存成png或者是jpg的时候用win10 系统自带的windows自带的照片查看器看着会模糊 不知道是我个人电脑的问题还是都是这个问题

看着就这种。

用附件中的画画和其他工具打开又没有什么问题

下了班等下回去家里的电脑看看!

最新文章

  1. HDU--跑道相遇
  2. css3整理--filter
  3. 比较好用的web打印控件&mdash;&mdash;Lodop
  4. android 弹出框(输入框和选择框)
  5. sqlserver客户端连接只显示特定数据库的配置方法
  6. Pods was rejected as an implicit dependency for &amp;#39;libPods.a&amp;#39; because its architectures &amp;#39;x86_64&amp;#39; didn
  7. Linux下gcc,g++,gdb,scon部分用法笔记
  8. 跟着刚哥梳理java知识点——异常(十一)
  9. Java常用类之【八种基本数据类型】
  10. 关于 Integer 值比较的问题
  11. Python数据结构应用4——搜索(search)
  12. macOS Sierra上面的php开发环境安装
  13. 1013 ACM 杭电 root
  14. 函数使用五:MIR7 发票预制 BAPI_INCOMINGINVOICE_PARK
  15. hdu2732 Leapin&#39; Lizards 最大流+拆点
  16. 2018.10.26 NOIP模拟 性感手枪(搜索)
  17. 常见数据结构的Java实现
  18. php 会话控制(了解cookie与session之间的区别与联系)
  19. RECONSUME_LATER
  20. 获得sql server的table的表结构 -- 转到word中

热门文章

  1. asp.net core系列 46 Identity介绍
  2. Go:学习笔记兼吐槽(1)
  3. Linux也有后悔药,五种方案快速恢复你的系统
  4. 游戏服务器h2engine架构优化和跨平台设计
  5. ioremap_nocache() 函数的使用【转】
  6. Certbot为域名申请免费SSL证书
  7. Shell中map的使用
  8. java日志框架log4j详细配置及与slf4j联合使用教程
  9. POS Tagging 标签类型查询表(Penn Treebank Project)
  10. Activity 之使用