使用jqPrint.js调用浏览器打印界面,打印网页中的某一部分该部分含有ECharts图表
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图表的更多相关文章
- js调用浏览器打印
<input type="button" id="print" onclick="printdiv('list');" value=& ...
- js调用浏览器“打印”与“打印预览”
用到html <object>标签,具体做法如下: 1.在html文档任意位置添加<object>标签: <div style="border: 1px sol ...
- js获取浏览器宽高、网页宽高、屏幕宽高、鼠标位置等(带图片说明)
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;(点击查看大图) 网页可见区域宽: document.bo ...
- js调用浏览器打印指定div内容
--打印按钮事件 function printForm(){ var headstr = '<html xmlns:th="http://www.thymeleaf.org&qu ...
- js 调用IE内置打印控件
转自学网(http://www.xue5.com/itedu/200802/102909.html) WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 < ...
- requests-html调用浏览器内核界面化源码改动
在实例化HTMLSession时传入参数:headless=False即可在r.html.render()时显示界面化的浏览器
- js调用浏览器
定义和用法 open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法 window.open(URL,name,specs,replace) 参数 说明 URL 可选.打开指定的页面 ...
- js调用浏览器复制
<script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...
- js调用浏览器下载
$scope.Download = function (url) { var save_link = document.createElementNS("http://www.w3.org/ ...
随机推荐
- java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
请求验证码时后台报错:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment ...
- C# Dictionary增加的方法
1.简单的函数,实现Dictionary如果有就替换,没有就增加的功能. /// <summary> /// Dictionary增加的方法 /// </ ...
- Android native进程间通信实例-binder篇之——解决实际问题inputreader内建类清楚缓存
我在实际开发中,遇到一个问题,在电容屏驱动中没有发送input_sync 给上层,导致电容屏有的数据缓存在inputreader 中,会导致系统一系列奇怪问题发生, 至于为什么驱动不发送input_s ...
- 微信小程序动画之圆形进度条
微信小程序动画之圆形进度条 上图: js: //获取应用实例 var app = getApp() var interval; var varName; var ctx = wx.createCanv ...
- python中集合
去重 无序 没有索引 #remove 删除元素 >>> s1 = {1,2,3,4,5} >>> s1.remove(2) >>> print(s ...
- python字符减运算
在C语言等高级语言中,字符之间的减运算都是支持的,但是python不然,在python中直接进行字符减运算是不被允许的. >>> print('c'-'a') Traceback ( ...
- Shell命令-用户用户组管理之visudo、sudo
文件及内容处理 - visudo.sudo 1. visudo:编辑/etc/sudoers文件的专属命令 visudo命令的功能说明 visudo命令专门用来编辑/etc/sudoers这个文件的. ...
- CodeForces - 1251C (思维+贪心+归并排序)
题意 https://vjudge.net/problem/CodeForces-1251C 一个字符串,相邻的偶数奇数不能交换位置,其他相邻的情况可以交换,问字符串代表的数最小是多少. 思路 相邻的 ...
- caffe初体验
caffe是一个深度学习的框架, 具体我也不太清楚, 可以自行百度吧, 我也是刚刚知道有这么一个框架, 才疏学浅啊. 在安装完caffe, 我的第一个想法就是, 别管他是个啥东西, 总得先让我运行一些 ...
- 新建全色或者resize(毫无价值,只是做记录)
import glob import os,sys import shutil import numpy as np import cv2 import matplotlib.pyplot as pl ...