我正在开发一个凭证打印应用程序,它可以从MySQL表中打印序列号和引脚,并将它们显示在页面中。
php代码每行显示两条记录。它们位于一个单独的列中,即两列并排显示 由于页面的格式(每行两个记录)..我不能在单独的表中显示每个记录。相反,所有记录都包含在" general"表
凭证打印需要在每页上显示两行。
我实施了一个" page-break-after:always"每行的样式不能分为两行,但分页符不显示。我的代码如下所示:
$aray=array();
while($row=mysqli_fetch_array($sql_res))
{
$aray[]=$row;
}
$nr_elm=count($aray);
$table='<table width=100%><tr>';
$nr_col=2;
if($nr_elm>0)
{
$p=1;//This is the row counter
for($i=0;$i<$nr_elm;$i++)
{
$table.='<td><div style="border: 2px dashed #000;" ><div id="image" style="float:left;">
'.$p.' <img src="crswb1.png" height=80 width=60 />
</div><div id="texts" style=" float: none;
margin-left:60px;">
<p> Amount:'.$aray[$i]['amount'].' </p><p> Pin:17263648409</p><p> Serial:5374748548
</div></div></td>';
$col_to_add=($i+1)%$nr_col;
if($col_to_add==0)
{
if($p % 2 == 0) {
$table.="<tr style='page-break-after:always'>";
}
$table.='</tr><tr>';
$p++;
}
}
}
$table.='</tr></table>';
$table=str_replace('<tr></tr>','',$table);
echo $table;
?>
我查看了网页来源和&#34;分页符&#34;样式显示为必要的行,如下所示
<tr style='page-break-after:always'></tr><tr><td><div style="border: 2px dashed #000;" ><div id="image" style="float:left;">
3 <img src="crswb1.png" height=80 width=60 />
</div><div id="texts" style=" float: none;
如何确保显示分页符,以便每页只能打印两行?..谢谢。
答案 0 :(得分:0)
页面的格式不会阻止您为每两个值使用一个表。例如。使用以下HTML代码:
<table id="table1">
<tr>
<td>This is cell No. 1 in Table 1</td>
<td>This is cell No. 2 in Table 1</td>
</tr>
</table>
<table id="table1">
<tr>
<td>This is cell No. 1 in Table 2</td>
<td>This is cell No. 2 in Table 2</td>
</tr>
</table>
以及以下CSS代码:
@media print {
table {page-break-after: always;}
/* prevent blank page at end */
table:last-of-type {page-break-after: auto;}
}
/* If you want the fields on one line */
table, tr {
width: 100%;
/* If the fields still don't fit on one line
* make the font-size smaller */
font-size: 0.9em
}
每页打印一个table
。请注意,即使是最后一个表也会导致分页。
为了看到这项工作,我准备了codepen here。打开codepen并尝试打印页面。您应该在其自己的页面上看到每个table
。