ในกรณีที่เรามีรูปแบบ ข้อมูลที่ต้องการพิมพ์ มีการแสดงผลข้อมูลแบบต่อเนื่อง
แต่เราต้องการพิมพ์ข้อมูลโดย ให้ บราวเซอร์แบ่งหน้าให้โดยอัตโนมัติ ตามขอบเขต
ของข้อมูลที่เรากำหนด เพื่อให้สะดวกในการพิมพ์ข้อมูลได้ง่าย
ตัวอย่างโค้ดสำหรับทดสอบ
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>css print report table continue</title>
<style type="text/css">
* {
margin:0;
padding:0;
font-family:Arial, "times New Roman", tahoma;
font-size:12px;
}
html {
font-family:Arial, "times New Roman", tahoma;
font-size:12px;
color:#000000;
}
body {
font-family:Arial, "times New Roman", tahoma;
font-size:12px;
padding:0;
margin:0;
color:#000000;
}
.headTitle {
font-size:12px;
font-weight:bold;
text-transform:uppercase;
}
.headerTitle01 {
border:1px solid #333333;
border-left:2px solid #000;
border-bottom-width:2px;
border-top-width:2px;
font-size:11px;
}
.headerTitle01_r {
border:1px solid #333333;
border-left:2px solid #000;
border-right:2px solid #000;
border-bottom-width:2px;
border-top-width:2px;
font-size:11px;
}
/* สำหรับช่องกรอกข้อมูล */
.box_data1 {
font-family:Arial, "times New Roman", tahoma;
height:18px;
border:0px dotted #333333;
border-bottom-width:1px;
}
/* กำหนดเส้นบรรทัดซ้าย และด้านล่าง */
.left_bottom {
border-left:2px solid #000;
border-bottom:1px solid #000;
}
/* กำหนดเส้นบรรทัดซ้าย ขวา และด้านล่าง */
.left_right_bottom {
border-left:2px solid #000;
border-bottom:1px solid #000;
border-right:2px solid #000;
}
/* สร้างช่องสี่เหลี่ยมสำหรับเช็คเลือก */
.chk_box {
display:block;
width:10px;
height:10px;
overflow:hidden;
border:1px solid #000;
}
/* css ส่วนสำหรับการแบ่งหน้าข้อมูลสำหรับการพิมพ์ */
@media all
{
.page-break { display:none; }
.page-break-no{ display:none; }
}
@media print
{
.page-break { display:block;height:1px; page-break-before:always; }
.page-break-no{ display:block;height:1px; page-break-after:avoid; }
}
</style>
</head>
<body>
<?php for($i=1;$i<=5;$i++){ ?>
<div class="page-break<?=($i==1)?"-no":""?>"> </div>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="left">Page <?=$i?></td>
</tr>
<tr>
<td align="center" class="headTitle" style="font-size:15px;">ใบรับฝากรวม<br />
RECEIPT FOR BULK POSTING <br /></td>
</tr>
<tr>
<td align="left"><table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
<td align="center"><div class="chk_box"></div></td>
<td align="left">ไปรษณียภัณฑ์</td>
<td align="center"><div class="chk_box"></div></td>
<td align="left">ลงทะเบียน</td>
<td align="center"><div class="chk_box"></div></td>
<td align="left">รับรอง</td>
</tr>
<tr>
<td>ได้รับฝาก</td>
<td align="center"> </td>
<td align="left">Letter-Post items</td>
<td align="center"> </td>
<td align="left">Registered</td>
<td> </td>
<td align="left">Certified</td>
</tr>
<tr>
<td>Received</td>
<td align="center"><div class="chk_box"></div></td>
<td align="left">พัสดุไปรษณีย์</td>
<td align="center"><div class="chk_box"></div></td>
<td align="left">รับประกัน</td>
<td> </td>
<td align="left"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
<td align="left">Parcels</td>
<td align="center"> </td>
<td align="left">Insured</td>
<td> </td>
<td align="left"> </td>
</tr>
</table></td>
</tr>
<tr>
<td align="left"><table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
<td width="200" align="center"> ไว้ดังนี้ ตราประจำวัน</td>
</tr>
<tr>
<td>จาก
<input name="textfield" type="text" class="box_data1" id="textfield" style="text-align:left;width:500px;" /></td>
<td align="center">As Follows Date Stamp</td>
</tr>
</table></td>
</tr>
<tr>
<td align="left">From</td>
</tr>
<tr>
<td align="left"><table width="750" border="0" align="left" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-top:5px double #000;">
<tr>
<td width="50" rowspan="2" class="headerTitle01" align="center" valign="middle">ลำดับ<br />
No.</td>
<td width="200" rowspan="2" class="headerTitle01" align="center" valign="middle">นามผู้รับ<br />
Name Of Addressee</td>
<td width="130" rowspan="2" class="headerTitle01" align="center" valign="middle">ปลายทาง<br />
Destination</td>
<td width="70" rowspan="2" class="headerTitle01" align="center" valign="middle">เลขที่<br />
Number</td>
<td width="100" rowspan="2" class="headerTitle01" align="center" valign="middle">น้ำหนัก (กรัม)<br />
Weight (Grammes)</td>
<td colspan="2" class="headerTitle01" align="center" valign="bottom">ค่าบริการ<br />
Postal Charge</td>
<td width="100" rowspan="2" class="headerTitle01_r" align="center" valign="middle">หมายเหตุ<br />
Remarks</td>
</tr>
<tr>
<td width="70" align="center" valign="bottom" class="headerTitle01">บาท<br />
Baht</td>
<td width="30" class="headerTitle01" align="center" valign="bottom">สต.
Stg.</td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">1</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">2</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">3</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">4</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">5</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">6</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">7</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">8</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">9</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="center" class="left_bottom">10</td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td height="20" align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_bottom"> </td>
<td align="left" class="left_right_bottom"> </td>
</tr>
<tr>
<td colspan="4" align="left" style="border-top:2px solid #000;">รวมทั้งสิ้น
Total
<input name="textfield2" type="text" class="box_data1" id="textfield2" style="text-align:center;width:250px;" />
ฉบับ/ห่อ
Pieces</td>
<td align="center" style="border-top:2px solid #000;">เป็นเงิน
Amount</td>
<td height="20" align="left" class="left_bottom" style="border-bottom:5px double #000;border-top:2px solid #000;"> </td>
<td align="left" class="left_right_bottom" style="border-bottom:5px double #000;border-top:2px solid #000;"> </td>
<td align="left" style="border-top:2px solid #000;"> </td>
</tr>
</table></td>
</tr>
<tr>
<td align="left"> </td>
</tr>
<tr>
<td align="left"> </td>
</tr>
<tr>
<td align="left"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" align="left">- ใบรับฝากนี้ใช้เป็นหลักฐานการฝากส่ง โปรดเก็บรักษาไว้จนหมดอายุ<br />
การสอบสวน คือ ระยะเวลา 6 เดือน นับจากวันต่อจากวันที่ฝากส่ง<br /></td>
<td width="50%" align="left"> </td>
</tr>
<tr>
<td align="left">- การติดต่อในเรื่องใดเกี่ยวกับการฝากส่ง ต้องนำใบฝากฉบับนี้<br />
มาแสดงทุกครั้ง มิฉะนั้น ปณท อาจไม่ทำการตรวจสอบหรือสอบสวนให้</td>
<td align="left"><table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100" align="right">พนักงานรับฝาก</td>
<td width="62%"><input name="textfield10" type="text" class="box_data1" id="textfield10" style="text-align:center;width:200px;" /></td>
</tr>
<tr>
<td align="right">Counter Clerk</td>
<td> </td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<?php } ?>
</body>
</html>
ตัวอย่างโค้ดข้างต้น เป็นการสมมติ การวนลูปแสดงข้อมูลอย่างต่อเนื่อง
โดยมีการกำหนด ส่วนสำหรับแบ่งการพิมพ์ ด้วย โค้ด PHP ร่วมกับ CSS
<div class="page-break<?=($i==1)?"-no":""?>"> </div>
ซึ่งหมายถึง ถ้าเป็น ข้อมูลแรก $i==1 ให้แสดง
div ที่มี class เท่ากับ page-break-no คือยังไม่ต้องเริ่มทำการแบ่งหน้าสำหรับพิมพ์
แต่ถ้าข้อมูลที่ไม่ใช่ข้อมูลแรก ให้เริ่มทำการแบ่งหน้าสำหรับการพิมพ์ด้วย การกำหนด
div ให้มี class เท่ากับ page-break
ทดสอบตัวอย่างตามลิ้งค์ด้านล่าง
https://www.ninenik.com/demo/css_report_table2.php
เมื่อเข้าไปที่หน้าดังกล่าว แล้วให้คลิกขวา แล้วเลือก print preview
จะเห็นว่า แม้ข้อมูลที่แสดง จะเรียกต่อเนื่องกัน
แต่ข้อมูลสำหรับการพิมพ์ จะมีการแบ่งหน้าให้อัตโนมัติ ตามตำแหน่งที่เรากำหนด