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自帶的照片查看器看着會模糊 不知道是我個人電腦的問題還是都是這個問題

看着就這種。

用附件中的畫畫和其他工具打開又沒有什麼問題

下了班等下回去家裏的電腦看看!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章