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. 判断map是否包含另一个map

    判断map是否包含另一个map: map不同与list集合,list集合有直接判断集合是否包含其他集合或者元素的方法. boolean contains(Object o) 如果list包含指定的元素 ...

  2. Linux(二)-- Linux配置及指令

    一.linux中常用软件的安装 yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix ...

  3. Mysql—数据类型详解

    在MySQL中常用数据类型主要分为以下几类:数值类型.字符串类型.日期时间类型. 数值类型 字符串类型 日期时间类型  数据类型  字节数  取值范围  格式 备注   year  1  1901~2 ...

  4. Linux—系统关机命令详解

    不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中.将数据由内存同步写入到硬盘中. [root@localhost ~]# sync 一.shutdown命令 # 立刻关 ...

  5. Shell命令-网络操作之基础之scp、wget

    文件及内容处理 - scp.wget 1. scp:用于不同主机之间复制文件 scp命令的功能说明 scp 命令用于 Linux 之间复制文件和目录.scp 是 secure copy 的缩写, sc ...

  6. JavaScript 看不见的类型转换

    本章是我阅读JavaScript权威指南时着重留意的内容,同时也推荐正在学习前端的小伙伴可以留意一下这本书<JavaScript权威指南> JavaScript可以很灵活的将一种类型的值转 ...

  7. LeetCode 676. Implement Magic Dictionary实现一个魔法字典 (C++/Java)

    题目: Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll ...

  8. luoguP4248 [AHOI2013]差异

    题意 考虑式子前面那段其实是\((n-1)*\frac{n*(n+1)}{2}\),因为每个后缀出现了\(n-1\)次,后缀总长为\(\frac{n*(n+1)}{2}\). 现在考虑后面怎么求: \ ...

  9. ionic4 ion-picker用法

    ion-picker实际开发中肯定多处使用,所以封装成服务的形式调用 新建picker.service服务模块   ionic g service picker import { Injectable ...

  10. 冒泡排序法(C语言)

    冒泡排序(Bubble Sort)一种计算机科学领域的较简单的排序算法.它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从从Z到A)错误就把他们交换过来.走访元素的工 ...