zoukankan      html  css  js  c++  java
  • angular5 引入 html2canvas 组件库 实现下载和打印的功能

    1. angular5 引入

      npm install --save html2canvas

    2. component或者service中使用(angular5使用typescript)

    import * as html2canvas from 'html2canvas';

    下载的方法实现如下:(es6 promise方式实现)

    #element: 页面某个元素 如div的class name=".report-view"

    public download(element, fileName): void {

        html2canvas(document.querySelector(element)).then(canvas => {

          var img = canvas.toDataURL("image/png");

          let a = document.createElement("a");

          a.href = img;

          a.download = fileName + ".png";

          document.body.appendChild(a);

          a.click();

          a.remove();

        });

    }

    调用方式: 

    download(".report-view", this.title);

    打印功能的实现:

    public print(element): void {

        let title = this.printTitle;

        var printWindow = window.open();

        html2canvas(document.querySelector(element)).then(canvas => {

          var compress = document.createElement('canvas');

          // change the image size

          compress.width = canvas.width;

          compress.height = canvas.height;

          var imageStr = canvas.toDataURL("image/png");

          var image = new Image();

          image.src = imageStr;

          image.onload = function () {

            compress.getContext("2d").drawImage(image, 0, 0, compress.width, compress.height);

            var imgString = compress.toDataURL("image/png");

            var iframe = '<iframe src="' + imgString + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; 100%; height:100%;" allowfullscreen></iframe>'

            printWindow.document.open();

            printWindow.document.write("<head><title>" + title +"</title></head>");

            printWindow.document.write(iframe);

            printWindow.document.close();

            printWindow.onload = function() {

              printWindow.print();

            };

            printWindow.focus();

          }

        });

    }

    调用方式: 

    print(".report-view", this.title);

    参考资料

    1. http://html2canvas.hertzen.com

  • 相关阅读:
    安装spark-1.5遇到的一些问题
    spark遇到的一些问题及其解决办法
    spark-client 一直 accepted,无法提交任务,报错Failed to connect to driver at
    spark-sql用hive表格,在spark-submit运行jar包时遇到的问题
    hive streaming 使用的时候的一些心得
    [BZOJ]1063 道路设计(Noi2008)
    PKUWC2018划水记
    [BZOJ]3527 力(ZJOI2014)
    [Codeforces]906D Power Tower
    [BZOJ]1071 组队(SCOI2007)
  • 原文地址:https://www.cnblogs.com/vincegod/p/10552006.html
Copyright © 2011-2022 走看看