|
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>课程表打印</title>
- </head>
- <body>
- <style>
- #table td {
- text-align: center;
- width: 100px;
- }
-
- #pdfDom {
- /* width: 100%; */
- /* overflow-x: auto; */
- }
-
- #table {
- width: 100%;
- /* overflow-x: auto; */
- border-spacing: 0;
- }
-
- #table tr {
- }
-
- #exportReport {
- background-color: #409eff;
- border-radius: 4px;
- width: 100px;
- height: 40px;
- color: white;
- text-align: center;
- line-height: 40px;
- margin: 50px auto 0;
- }
-
- #exportReport:hover {
- cursor: pointer;
- background-color: #66b1ff;
- }
- </style>
- <div id="pdfDom">
- <table id="table" border="1"></table>
- </div>
- <div id="exportReport">导出</div>
- <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
- <script src="~/Content/js/PrintLesson/debug.js"></script>
- <script src="~/Content/js/PrintLesson/html2canvas.js"></script>
- <script>
- var url = '/PersonnelManagement/TimeTable/GetDataInEducation?'
- var search = window.location.href.split('?')[1].split('&')
- for (var i = 0; i < search.length; i++) {
- var data = search[i].split('=')
- url += data[0] + '=' + data[1] + '&'
- }
- url = url.slice(0, url.length - 1)
- $.get(window.origin + url, function (result) {
- var data = JSON.parse(result).data
- var classList = data.classinfolist;
- var classListNow = [];
-
- for (var i = 0; i < classList.length; i++) {
- classListNow.push(classList[i][0]);
- }
-
- data.classinfolist = classListNow;
- var dom = '<tr><td></td>'
- var week = 7
- var weekObj = {
- 0: '一',
- 1: '二',
- 2: '三',
- 3: '四',
- 4: '五',
- 5: '六',
- 6: '日',
- }
- // 生成一周七天表头
- for (var i = 0; i < week; i++) {
- dom += '<td colspan=' + data.maxlessontime + '>星期' + weekObj[i] + '</td>'
- }
- dom += '</tr><tr><td>班级|节次</td>'
- // 生成课程节次表头
- for (var j = 0; j < week; j++) {
- var index = 0
- for (var i = 0; i < data.maxlessontime; i++) {
- index++
- dom += '<td>' + (index) + '</td>'
- }
- }
- dom += '</tr>'
- // 生成每个班级的课程
- for (var i = 0; i < data.classinfolist.length; i++) {
- var classMsg = data.classinfolist[i]
- dom += '<tr classId=' + classMsg.TeachClassNo + '><td>' + classMsg.ClassName + '</td>'
- for (var j = 0; j < week; j++) {
- var index = 0
- for (var k = 0; k < data.maxlessontime; k++) {
- index++
- dom += '<td classId=' + classMsg.TeachClassNo + ' week=' + (j + 1) + ' time=' + index + '></td>'
- }
- }
- dom += '</td>'
- }
- table.innerHTML = dom
-
- var tableWidth = data.maxlessontime * 7 * 100
- table.style.width = tableWidth + 'px'
- // 开始渲染数据
- var domObj = {}
- var trsObj = {}
- var trs = document.getElementsByTagName('tr')
- for (var j = 0; j < trs.length; j++) {
- var id = trs[j].getAttribute('classId')
- if (id) {
- trsObj[id] = trs[j]
- }
-
- }
- //console.log(trsObj,'trsObj')
- for (var i = 0; i < data.weekList.length; i++) {
- var weekObj = data.weekList[i]
- for (var j = 0; j < weekObj.list.length; j++) {
- var weekList = weekObj.list[j]
- weekList['time'] = weekObj.time
-
- var tds = trsObj[weekList.teachClassNo].getElementsByTagName('td')
- for (var k = 0; k < tds.length; k++) {
- var time = tds[k].getAttribute('time')
- var classId = tds[k].getAttribute('classId')
- var week = tds[k].getAttribute('week')
- if (week == weekList.day && classId == weekList.teachClassNo && time == weekList.time) {
- tds[k].innerHTML = '<div>课程:' + weekList.curriculum + '</div><div>教师:' + weekList.teacher + '</div><div>教室:' + weekList.classRoom + '</div>'
- }
- }
- }
- }
-
-
-
- var downPdf = document.getElementById("exportReport"); //点击导出事件
- //console.log(downPdf, 'downPdf')
- function htmlToPdf() {
-
- html2canvas(document.body, {
- onrendered: function (canvas) {
-
- var contentWidth = canvas.width;
- var contentHeight = canvas.height;
- // 竖版打印
- // var a4Width = 592.28
- // var a4Height = 841.89
- // 横板打印
- var a4Height = 592.28
- var a4Width = 841.89
-
- //一页pdf显示html页面生成的canvas高度;
- var pageHeight = contentWidth / a4Width * a4Height;
- //未生成pdf的html页面高度
- var leftHeight = contentHeight;
- //pdf页面偏移
- var position = 0;
- //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
- var imgWidth = a4Width;
- var imgHeight = a4Width / contentWidth * contentHeight;
-
- var pageData = canvas.toDataURL('image/jpeg', 1.0);
-
- var pdf = new jsPDF('l', 'pt', 'a4');
- //console.log(imgWidth, imgHeight, '===')
- //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
- //当内容未超过pdf一页显示的范围,无需分页
- if (leftHeight < pageHeight) {
- pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
- } else {
- while (leftHeight > 0) {
- pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight)
- leftHeight -= pageHeight;
- position -= a4Height;
- //避免添加空白页
- if (leftHeight > 0) {
- pdf.addPage();
- }
- }
- }
- pdf.save('课程表.pdf');
- var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
- parent.layer.close(index); //再执行关闭
- parent.layer.msg('导出成功', {
- icon: 1
- });
- }
- })
- }
- downPdf.onclick = htmlToPdf
- });
-
-
-
- </script>
- </body>
- </html>
|