1、准备好js文件(我用的是谷歌浏览器)

这个文件是为了防止你的jQuery版本过高而不适配的问题

这是调用浏览器打印的js插件

2、引入js文件

 <script src="js/jquery.jqprint-0.3.js"></script>
<script src="js/jquery-migrate-1.2.1.min.js"></script>

3、给你的网页添加一个按钮来出发打印事件

 <input type="button" onclick="printClassReport()" value="打印班级报告"/>

4、为了保持打印预览的时候你的网页样式不会发生变化,应该打印一个全局的div,然后再讲不想打印的部分隐藏起来,打印完了再把它们显示出来

5、打印的时候将echarts转成图片,让图片显示echarts隐藏,不然的话echarts打印的时候是空白。(没有echarts图表的用户请自动忽略)

6、编写js的处理逻辑

     <script src="js/jquery.jqprint-0.3.js"></script>
<script src="js/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript">
function printClassReport(){
// 获取echarts图表
var myChart1 = echarts.init(document.getElementById('report_classanalyze'));
var myChart2 = echarts.init(document.getElementById('report_overall'));
var myChart3 = echarts.init(document.getElementById('report_studentPassRank'));
var myChart4 = echarts.init(document.getElementById('report_problemSubmitRank'));
//myChart2.setOption(option3);
// 获取图片(此时还未实现转换暂时处于隐藏状态)
var img1 = document.getElementById('img_report_classanalyze');
var img2 = document.getElementById('img_report_overall');
var img3 = document.getElementById('img_report_studentPassRank');
var img4 = document.getElementById('img_report_problemSubmitRank');
// 将图表转换成图片,并保存在图片域当中
img1.src = myChart1.getDataURL({
pixelRatio: 2,
backgroundColor: '#fff'
});
img2.src = myChart2.getDataURL({
pixelRatio: 2,
backgroundColor: '#fff'
});
img3.src = myChart3.getDataURL({
pixelRatio: 2,
backgroundColor: '#fff'
});
img4.src = myChart4.getDataURL({
pixelRatio: 2,
backgroundColor: '#fff'
});
// 先把图表隐藏,让图片先显示出来
document.getElementById('img_report_classanalyze').style.display="block";
document.getElementById('img_report_overall').style.display="block";
document.getElementById('img_report_studentPassRank').style.display="block";
document.getElementById('img_report_problemSubmitRank').style.display="block";
document.getElementById('report_classanalyze').style.display="none";
document.getElementById('report_overall').style.display="none";
document.getElementById('report_studentPassRank').style.display="none";
document.getElementById('report_problemSubmitRank').style.display="none";
// 隐藏不想显示的区域
$(".content_l").hide();
$(".search").hide();
$("form").hide();
// 打印选定的web页面
$("#print").jqprint();
// 将之前隐藏的页面重新显示出来
$("form").show();
$(".search").show();
$(".content_l").show();
// 再将图片隐藏,将动态echarts突变显示出来
document.getElementById('img_report_classanalyze').style.display="none";
document.getElementById('img_report_overall').style.display="none";
document.getElementById('img_report_studentPassRank').style.display="none";
document.getElementById('img_report_problemSubmitRank').style.display="none";
document.getElementById('report_classanalyze').style.display="block";
document.getElementById('report_overall').style.display="block";
document.getElementById('report_studentPassRank').style.display="block";
document.getElementById('report_problemSubmitRank').style.display="block";
}
</script>

我有四张echarts图表所以js代码比较繁琐,如果你的echarts表只有一张,把代码中多余的东西删除即可。

展示区:

打印的时候只显示了红色框里的内容。

最后祝成功!!!

使用jqPrint.js调用浏览器打印界面,打印网页中的某一部分该部分含有ECharts图表的更多相关文章

  1. js调用浏览器打印

    <input type="button" id="print" onclick="printdiv('list');" value=& ...

  2. js调用浏览器“打印”与“打印预览”

    用到html <object>标签,具体做法如下: 1.在html文档任意位置添加<object>标签: <div style="border: 1px sol ...

  3. js获取浏览器宽高、网页宽高、屏幕宽高、鼠标位置等(带图片说明)

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;(点击查看大图) 网页可见区域宽: document.bo ...

  4. js调用浏览器打印指定div内容

    --打印按钮事件 function printForm(){    var headstr = '<html xmlns:th="http://www.thymeleaf.org&qu ...

  5. js 调用IE内置打印控件

    转自学网(http://www.xue5.com/itedu/200802/102909.html) WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 < ...

  6. requests-html调用浏览器内核界面化源码改动

    在实例化HTMLSession时传入参数:headless=False即可在r.html.render()时显示界面化的浏览器

  7. js调用浏览器

    定义和用法 open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法 window.open(URL,name,specs,replace) 参数 说明 URL 可选.打开指定的页面 ...

  8. js调用浏览器复制

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...

  9. js调用浏览器下载

    $scope.Download = function (url) { var save_link = document.createElementNS("http://www.w3.org/ ...

随机推荐

  1. SSH免密码登录和Git免密操作

    SSH免密码登录和Git免密操作 每次打完包后都需要把包传到对应的服务器上从而让测试人员下载安装,但是每次ssh或scp时都需要重新输入密码:使用git代码托管平台只要修改了密码就需要输入密码.本文主 ...

  2. [20190524]浅谈模糊查询.txt

    [20190524]浅谈模糊查询.txt --//一台生产系统遇到监听进程莫名down的情况,3月份曾经遇到的情况,链接:http://blog.itpub.net/267265/viewspace- ...

  3. PHP统计二维数组个数

    count($arr) $arr = [ ['id'=>1,'name'=>'Tom'], ['id'=>2,'name'=>'Sun'], ['id'=>3,'name ...

  4. Shell脚本(1)

    在创建Shell脚本时,必须在文件的第一行指定要使用的shell.格式为:#!/bin/bash 除了第一行外,在shell脚本中井号(#)用作注释行 若出现错误:command not found ...

  5. html里js的execCommand的一点用法

    editorDoc.execCommand ('italic', false, null); 添加斜体 参考 http://help.dottoro.com/ljcvtcaw.php

  6. 3.Java基础_Java变量

    /* 变量定义格式 数据类型 变量名=变量值 基本数据类型: byte,short,int,long,float,double,char,boolean 变量的使用: 取值格式: 变量名 修改值格式: ...

  7. 【第4题】 什么是https

    https是基于http和SSL/TLS实现的一个协议,他可以保证在网络上传输的数据都是加密的,从而保证数据安全. 接下来我们从http协议开始,提出想法并逐步进行分析,最终实现Https. 1. h ...

  8. luoguP3306 [SDOI2013]随机数生成器

    题意 将\(x_1,x_2,x_3...x_n\)写出来可以发现通项为\(a^{i-1}*x_1+b*\sum\limits_{j=0}^{i-2}a^j=a^{i-1}*x_1+b*\frac{1- ...

  9. C++面向对象程序设计学习笔记(6)

    多态性 编译时的多态性与运行时的多态性 在面向对象方法中,所谓多态性就是不同对象收到相同信息时,产生不同的行为.在c++程序设计中,即"一个接口,多种方法" 在C++中,多态性的实 ...

  10. Paper | Residual Dense Network for Image Super-Resolution

    目录 Residual dense block & network 和DenseNet的不同 摘要和结论 发表在2018年CVPR. 摘要和结论都在强调方法的优势.我们还是先从RDN的结构看起 ...