1. 程式人生 > >分頁打印,只打印指定內容

分頁打印,只打印指定內容

mar 實現 javascrip class always 分頁 lang gin 內容

  知識點:用CSS控制分頁

在調用window.print()時,可以實現打印效果,但內容太多時要進行分頁打印。

在樣式中有規定幾個打印的樣式

page-break-before和page-break-after CSS屬性並不會修改網頁在屏幕上的顯示,這兩個屬性是用來控制文件的打印方式。

每個打印屬性都可以設定4種設定值:auto、always、left和right。其中Auto是默認值,示例中使用的是always。

page-break-before若設定成always,則是在遇到特定的組件時,打印機會重新開始一個新的打印頁。

page-break-after屬性會將分頁符號加在指定組件後,而非之前。

  

  html代碼:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>分頁測試</title>
<style type="text/css">
@page{margin:0;}/*此行表示不打印頁眉頁腳,也不打印頁碼*/
.A4{page-break-before: always;}/*遇到這個樣式則打印分頁,不影響網頁顯示*/
</style>
<script language="javascript" src="test.js"></script>
</head>
<body>
<input type="button" value="打印" onclick="myPrint()" style="float:right;"></input>
<!--startprint-->					<!--從這裏開始打印-->
    <div>第一頁</div>				<!--第一頁不用設置分頁符-->
    <div class="A4">第二頁</div>		<!--需要分頁的地方引入CSS樣式-->
<!--endprint-->						<!--到這裏結束打印-->
</body>
</html>

  JS代碼:

function myPrint(str) {
	bdhtml=window.document.body.innerHTML;//獲取當前頁的html代碼
	var sprnstr="<!--startprint-->"
	var eprnstr="<!--endprint-->"
	prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+17); //從開始代碼向後取html
	prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//從結束代碼向前取html
	window.document.body.innerHTML=prnhtml;
	window.print();
	window.document.body.innerHTML=bdhtml;
}

 

分頁打印,只打印指定內容