天天看點

js調用列印,并且将頁面縮放後進行列印,同時可自定義分頁列印demo

話不多說,直接上demo,注釋備注相當清晰
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>縮放列印與分頁</title>
<script type="text/javascript"> 
	function printpage1(){    
			
			// body全局列印
			// 頁面縮放,此處縮放為50%,不縮放的話頁面超出就列印不出來,這個需要自己調試,看自己
			document.getElementsByTagName('body')[0].style.zoom=0.5;
			
			// 調用window的列印功能
			window.print(); 
			
			// 将頁面縮放調整到最初狀态
			document.getElementsByTagName('body')[0].style.zoom=1;
			return false; 
		}
		
		function printpage2(){    
			// 局部列印
			// 擷取局部列印資料
			var newstr = document.getElementById("println_div").innerHTML;
			// 緩存body全部資料
			var oldstr = document.body.innerHTML; 
			// 将局部資料放入body内
			document.body.innerHTML = newstr; 
			
			// 頁面縮放,此處縮放為50%,不縮放的話頁面超出就列印不出來,這個需要自己調試,看自己
			document.getElementsByTagName('body')[0].style.zoom=0.5;
			
			// 調用window的列印功能
			window.print(); 
			
			// 列印完成将body資料還回去
			document.body.innerHTML = oldstr; 

			// 将頁面縮放調整到最初狀态
			document.getElementsByTagName('body')[0].style.zoom=1;
			return false; 
		}
</script>
</head>
  
<body>
<p>1</p>
<p>2</p>
<div id="println_div">
	<h1>列印标題</h1>
	<p>列印内容~~</p>
	<!-- style屬性這裡是在列印的時候,在标簽之前的将作為1頁,标簽之後作為新的頁 -->
	<div style="page-break-before:always;"><br /></div>
	<h1>列印标題</h1>
	<p>列印内容~~</p>
	<div  style="page-break-before:always;"><br /></div>
	<h1>列印标題</h1>
	<p>列印内容~~</p>
</div>
<button type="button" onclick="printpage1()">全局列印</button>
<button type="button" onclick="printpage2()">局部列印</button>
<p>1</p>
<p>2</p>
</body>
</html>