Asp.Net 将HTML中通过dom-to-image.js标签div内的内容转化为图片保存到本地

由于客户的需求,将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自带的照片查看器看着会模糊 不知道是我个人电脑的问题还是都是这个问题

看着就这种。

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

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

原文地址:https://www.cnblogs.com/w5942066/p/10485263.html

时间: 2024-08-02 22:30:55

Asp.Net 将HTML中通过dom-to-image.js标签div内的内容转化为图片保存到本地的相关文章

ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片

ASP.NET下载远程图片保存到本地的方法.保存抓取远程图片 2012-05-16 11:25:51     我来说两句      收藏    我要投稿 以下介绍两种方法:1.利用WebRequest,WebResponse 类WebRequest wreq=WebRequest.Create("http://up.2cto.com/2012/0516/20120516112717995.gif");    HttpWebResponse wresp=(HttpWebResponse)

JS的三种使用方式/CSS的三种使用方式/JS中的DOM事件模型/JS中匿名函数的书写及调用/媒体查询@media的三种使用方式

一.JS的三种使用方式 1.html标签中内嵌JS(不提倡使用.)                <button onclick="javascript:alert('你真点啊.')" > 有本事点我呀!!!!</button>                                2.HTML页面中直接使用JS:                <script type="text/javascript">        

获取远程图片保存到本地文件夹中

1 /** 2 * 抓取远程图片到本地,可以抓取不带有后缀的图片 3 * @author YanYing <[email protected]> 4 * @link bidianer.com 5 */ 6 class GrabImage{ 7 8 /** 9 * @var string 需要抓取的远程图片的地址 10 * 例如:http://www.bidianer.com/img/icon_mugs.jpg 11 * 有一些远程文件路径可能不带拓展名 12 * 形如:http://www.x

JS中的DOM对象及JS对document对像的操作

DOM对象 windows:属性:opener(打开者) 方法:open().close(),setTimeout().setInterval()... location:属性:href 方法:reload()刷新 history:方法:go() status:不常用 document:下面详细介绍 JS对document对像的操作 分两个: 找到对象.操作对象. 找到对象的方法:document.getElementById().document.getElementsByName(). do

app开发中,苹果端可编辑标签,无法输入内容解决方案

在app开发,在使用div的contentedstable属性时,出现ios端编辑框无法选择聚焦的问题,查阅资料后发现是fastclick.js中的判断导致的. 1.解决方法, a.引入“.needsclick{content: attr(placeholder);}”,类名,“needsclick”命名尽量不要修改. b.在contentedsTable 属性标签中添加内敛样式“-webkit-user-select: auto;” 2.fastclick.js中的导致不能编辑的代码 事件的分

Chrome浏览器无法将网页中的图片保存到本地的问题

今天在浏览网页时看到一张图片不错,想保存下来,在图片上点击右键>图片另存为,结果试了好多次都没有反应. 环境: Windows 7操作系统 Chrome 版本 41.0.2272.76 m (64-bit) 原因: 后来发现是这个安全警告框的原因,点击运行以后一下子弹出好多个文件保存对话框,之前试了好多次都没有反应,现在全都弹出来了.

将ImageView中的图片保存到本地相册

private void SaveImageToSysAlbum() { if (FileUtil.isSdCardExist()) { BitmapDrawable bmpDrawable = (BitmapDrawable)mFullImageView.getDrawable(); Bitmap bmp = bmpDrawable.getBitmap(); if (bmp != null) { try { ContentResolver cr = getContentResolver();

007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing views and layout pages 修改视图和布局页 2.Change the title and menu link in the layout file 在布局文件中修改标题与菜单 3.Passing Data from the Controller to the View 从控制器向视图

通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?

在<中篇>中,我们对管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.总的来说,管道由一个服务器和一个HttpApplication构成,前者负责监听请求并将接收的请求传递给给HttpApplication对象处理,后者则将请求处理任务委托给注册的中间件来完成.中间件的注册是通过ApplicationBuilder对象来完成的,所以我们先来了解一下这究竟是个怎样的对象.[本文已经同步到<ASP.NET Core框架揭秘>之中] [