打印 手動設置頁面打印高度自動分頁(需設置紙張高度)

 

僅做個人項目記錄 , 略微混亂  ,僅做參考  

(另一種版本   設置頁面打印固定條數      參考  https://www.cnblogs.com/tenie/p/4851772.html)

大致原理 ------模板化 --   頭尾中間數據加一起總高度小於A4紙高度, 打印前序列化一次, 獲取每個列的高度加一起,數據過多自動換行高度自動變化,   打印分頁 使用    <div style='page-break-after:always;'></div>   強制換行

 

<!DOCTYPE html>
<html lang="ch">
<head>
  <meta charset="UTF-8">
    <title>XXXXXXXX</title>
	<script src="../js/jquery-1.9.1.min.js"></script>
  <style>
    * {
      margin: 0 auto;
      padding: 0
    }
    .clear:after {
      content: "";
      display: block;
      height: 0;
      visibility: hidden;
      clear: both;
    }

    .table {
      width: 90%;
      margin: 0 auto
    }

    table {
      font-size: 14px;
      width: 95%;
      border-collapse: collapse
    }

    thead td {
      background: rgb(0, 170, 148);
      color: #fff;
      text-align: center;
    }

    table td {
      border: 1px solid #dedede;
      line-height: 26px;
      padding: 3px;
    }

    .tool tr:first-child td {
      border-top: none
    }

    .list tr:first-child td {
      border-top: none
    }

    .allTable {
      margin-top: 30px
    }
	
  </style>
</head>
<body>
<button id="serialization">打印</button>
<div class="box2">
  <div>

    <div style="font-weight:bold;font-size:25px;color:red;line-height:22px;text-align:center;">XXXXXXXXXXXXXXX</div>
    <div class="title">
      <table>
        <tr>
			<td style="width:16.6%">工作內容:</td>
			<td class="czrw" style="width:16.6%" colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">* 類型:</td>
			<td class="tylx"  style="width:16.6%" colspan="2"></td>
			<td  style="width:16.6%">編號:</td>
			<td class="bh" style="width:16.6%"  colspan="2"></td>
		</tr>
		<tr>
			<td style="width:16.6%">申請書號:</td>
			<td class="jxpno" style="width:16.6%" colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">擬票人:</td>
			<td class="nprname" style="width:16.6%"></td>
			<td style="width:16.6%">擬票日期:</td>
			<td class="npsj" style="width:16.6%"></td>
			<td style="width:16.6%">執行日期:</td>
			<td class="startdate" style="width:16.6%"></td>
		</tr>
      </table>
    </div>
    <div>
      <table class="list listTable3">
        <thead>
        <tr>
         <td>順序</td>
          <td>受令單位</td>
          <td>操作內容</td>
          <td>備註</td>
        </tr>
        </thead>
      </table>
    </div>
    <div class="tool">
      <table>
        <tr>
          <td style="width:30%">審覈人</td>
          <td class="shr"></td>
        </tr>
      </table>
    </div>
  </div>
</div>



<div class="table" id="content" style="height: 0;opacity: 0">

  <div style="font-weight:bold;font-size:25px;color:red;line-height:22px;text-align:center;">XXXXXXXXXXXX</div>

  <div class="allTable table0">
    <div class="title">
      <table>
        <tr>
			<td style="width:16.6%">工作內容:</td>
			<td class="czrw"  colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">* 類型:</td>
			<td class="tylx"   colspan="2"></td>
			<td  style="width:16.6%">編號:</td>
			<td class="bh"   colspan="2"></td>
		</tr>
		<tr>
			<td style="width:16.6%">申請書號:</td>
			<td class="jxpno" colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">擬票人:</td>
			<td class="nprname" style="width:16.6%"></td>
			<td style="width:16.6%">擬票日期:</td>
			<td class="npsj" style="width:16.6%"></td>
			<td style="width:16.6%">執行日期:</td>
			<td class="startdate" style="width:16.6%"></td>
		</tr>
      </table>
    </div>
    <div>
      <table class="list">
        <thead>
        <tr>
          <td>順序</td>
          <td>受令單位</td>
          <td>操作內容</td>
          <td>備註</td>
        </tr>
        </thead>
      </table>
    </div>
    <div class="tool">
      <table>
        <tr>
          <td style="width:30%">審覈人</td>
          <td class="shr"></td>
        </tr>
      </table>
    </div>
  </div>
</div>
<script type="text/html" id="templateHTml">

<div></div>
<div style='page-break-after:always;'></div>
  <div style="font-weight:bold;font-size:25px;color:red;line-height:22px;text-align:center;">XXXXXXXXXXX</div>


  <div class="allTable {{claAll}}">


    
    

      <div class="title">
        <table>
         <tr>
			<td style="width:16.6%">工作內容:</td>
			<td class="czrw1" style="width:16.6%" colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">* 類型:</td>
			<td class="tylx1"  style="width:16.6%" colspan="2"></td>
			<td  style="width:16.6%">編號:</td>
			<td class="bh1" style="width:16.6%"  colspan="2"></td>
		</tr>
		<tr>
			<td style="width:16.6%">申請書號:</td>
			<td class="jxpno1" style="width:16.6%" colspan="5"></td>
		</tr>
		<tr>
			<td style="width:16.6%">擬票人:</td>
			<td class="nprname1" style="width:16.6%"></td>
			<td style="width:16.6%">擬票日期:</td>
			<td class="npsj1" style="width:16.6%"></td>
			<td style="width:16.6%">執行日期:</td>
			<td class="startdate1" style="width:16.6%"></td>
		</tr>
        </table>
      </div>
      <div>
        <table class="list">
          <thead>
          <tr>
          <td>順序</td>
          <td>受令單位</td>
          <td>操作內容</td>
          <td>備註</td>
        </tr>
          </thead>
        </table>
      </div>
      <div class="tool">
        <table>
          <tr>
            <td style="width:30%">審覈人</td>
			<td class="shr1"></td>
          </tr>
        </table>
      </div>




  </div>
</script>
</body>

<script>
function decodeUrl() {
    if (window.location.href.indexOf("?") !== -1) {
        var code = decodeURIComponent(window.location.href).split('?')[1]
        var objUrl = {}
        code.split('&')
        for (var i = 0; i < code.split('&').length; i++) {
            objUrl[code.split('&')[i].split('=')[0]] = code.split('&')[i].split('=')[1]
        }
        return objUrl
    }
}

var  data = "";

printGetCzpZBandMX();
function printGetCzpZBandMX(){
$.ajax({
	async : false,
	url : "/netorder/mlcz/czp/printGetCzpZBandMX",
	type : "post",
	dataType : "json",
	data:{
		zbid: decodeUrl().zbid
	},
	success : function(result) {
		var mxlist = result.mxList;
		var zbMap = result.zbMap;
		if(result!=null){
			if(zbMap!=null){
				$(".shr").append('<p>'+ ifNull(zbMap.SHR) +'</p>')
				$(".jxpno").append('<p>'+ ifNull(zbMap.JXPNO) +'</p>')
				$(".bh").append('<p>'+ ifNull(zbMap.BH) +'</p>')
				$(".nprname").append('<p>'+ ifNull(zbMap.NPRNAME) +'</p>')
				$(".tylx").append('<p>'+ ifNull(zbMap.TYLX) +'</p>')
				$(".czrw").append('<p>'+ ifNull(zbMap.CZRW) +'</p>')
				$(".npsj").append('<p>'+ ifNull(zbMap.NPSJ) +'</p>')
				$(".startdate").append('<p>'+ ifNull(zbMap.STARTDATE) +'</p>')
			}
			if(mxlist.length>0){
				data = result;
			}
		}
		
	},
	error : function(msg) {
		console.log("獲取 主表-明細 失敗")
	}
});
}	

  for (let i = 0; i < data.mxList.length; i++) {
    $('.listTable3').append(
      `<tr>
      <td>${ifNull(data.mxList[i].ZLXH)}</td>
      <td>${ifNull(data.mxList[i].CZSN)}</td>
      <td>${ifNull(data.mxList[i].CZNR)}</td>
      <td>${ifNull(data.mxList[i].REMARK)}</td>
    </tr>`
    )
  }
  $('#serialization').click(function () {
    serializationList(data)
  })

  function serializationList(str) {
    let startIndex = 0
    
   /*  domTableAllName.find('.shr').append(`<p>${ifNull(data.zbMap.SHR)}</p>`)
    domTableAllName.find('.jxpno').append(`<p>${ifNull(data.zbMap.JXPNO)}</p>`)
    domTableAllName.find('.bh').append(`<p>${ifNull(data.zbMap.BH)}</p>`)
    domTableAllName.find('.nprname').append(`<p>${ifNull(data.zbMap.NPRNAME)}</p>`)
    domTableAllName.find('.tylx').append(`<p>${ifNull(data.zbMap.TYLX)}</p>`)
    domTableAllName.find('.czrw').append(`<p>${ifNull(data.zbMap.CZRW)}</p>`)
    domTableAllName.find('.npsj').append(`<p>${ifNull(data.zbMap.NPSJ.time)}</p>`)
    domTableAllName.find('.startdate').append(`<p>${ifNull(data.zbMap.STARTDATE.time)}</p>`) */
    for (let i = 0; i < str.mxList.length; i++) {
      let tableAllName = `table${startIndex}`
      let domTableAllName = $(`.${tableAllName}`)
      //console.log(domTableAllName[0].offsetHeight)
      if (domTableAllName[0].offsetHeight > 570) {
        if (i === str.mxList.length - 1) {
          return
        }
        startIndex++
        tableAllName = `table${startIndex}`
        let templateHtml = $('#templateHTml').html().replace(/{{claAll}}/, tableAllName)
        $('#content').append(templateHtml)
      }
      domTableAllName.find('.list').append(
        `<tr>
      <td>${ifNull(data.mxList[i].ZLXH)}</td>
      <td>${ifNull(data.mxList[i].CZSN)}</td>
      <td>${ifNull(data.mxList[i].CZNR)}</td>
      <td>${ifNull(data.mxList[i].REMARK)}</td>
    </tr>`
      )
    
    }
  		  
    $(".shr1").append('<p>'+ ifNull(data.zbMap.SHR) +'</p>')
	$(".jxpno1").append('<p>'+ ifNull(data.zbMap.JXPNO) +'</p>')
	$(".bh1").append('<p>'+ ifNull(data.zbMap.BH) +'</p>')
	$(".nprname1").append('<p>'+ ifNull(data.zbMap.NPRNAME) +'</p>')
	$(".tylx1").append('<p>'+ ifNull(data.zbMap.TYLX) +'</p>')
	$(".czrw1").append('<p>'+ ifNull(data.zbMap.CZRW) +'</p>')
    $(".npsj1").append('<p>'+ ifNull(data.zbMap.NPSJ) +'</p>')
    $(".startdate1").append('<p>'+ ifNull(data.zbMap.STARTDATE) +'</p>')
    
    $('#content').removeAttr('style')
    $('.box2').hide()
    $('#serialization').hide()
    $('.dayin').hide()
    
    window.print();
  }
	function ifNull(data) {
				if (data===null){
					return ""
				}else {
					return data;
				}
			}
	
	
</script>
</html>

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章