我正在处理发票打印输出。
我在打印发票时遇到问题。我们假设有一张发票,其中包含完全在1页内的商品。问题是所有项目后都有小计,税和总计。
在这种情况下,这3个将位于第二页(新页面),而这些项目位于第1页。
我已经检查了一个页面可以在tcpdf中保存的行(在我的所有布局格式之后等),并且发现1页将包含28个项目。如果所有项目都包含1行,这将很有效。但是,如果某些项目由2行或更多行组成,则计算将面临问题,整个结构将变得混乱。
如果总项目是28项,如何自动将某些项目移动到第二页,那么第二页不仅包括小计,税金和总计?
这是我的代码
$count = 0;
$i = 0;
if(count($finalProduct)>0){
foreach($finalProduct as $product){
foreach($product['product'] as $prod){
if($prod['qty'] > 0){
/* check the row */
if($count >= 27){
$PDFCONTENT .= '<tr style="page-break-after:initial"><td colspan="6"></td></tr>';
$PDFCONTENT .= '<tr><td colspan="6"></td></tr>';
$count = 0;
}
$PDFCONTENT .= '
<tr nobr="true">';
$PDFCONTENT .= '<td align="center" width="7%">'.$prod['index_number'].'</td>';
</tr>';
}
$count++;
}
$PDFCONTENT .= '<tr><td></td></tr>';
}
}
$PDFCONTENT .= '<tfoot>
<tr> <td> </td> </tr>
<tr>
<th align="right" colspan="6">SUB TOTAL $:-</th>
<th style="border-top: 1px solid black;border-bottom: 1px solid black;" align="center">'.number_format($data['total'],2).'</th>
</tr>
<tr>
<th align="right" colspan="6">ADD '.number_format($data['transaction_tax_percentage']).'% $:-</th>
<th style="border-top: 1px solid black;border-bottom: 1px solid black;" align="center">'.number_format($data['transaction_tax_amount'],2).'</th>
</tr>
<tr>
<th align="right" colspan="6">TOTAL $:-</th>
<th style="border-top: 1px solid black;border-bottom: 1px solid black;" align="center">'.number_format($data['grand_total'],2).'</th>
</tr>
</tfoot>';
答案 0 :(得分:0)
我记得这是表格的真正问题。所以我们计算是否有要设置的分页符。如果是这样,我们关闭了表格,添加了一个新网站并重新打开了表格,并将表格的其余部分放入其中。
要强制分页,我们使用了<br pagebreak="true"/>
如果你没有关闭桌子,就会导致其他问题。
SO上也有一个好的威胁:Manual Page Break in TCPDF