html - html表在一定数量的db处中断
问题描述
我正在使用 CodeIgniter 使用 mpdf 生成 pdf。我尝试在 html 中以 7 的计数打破表格,同时在 mpdf 中生成 pdf,但我的代码不起作用。
我的控制器:
$htmlheader = $this->load->view('sales/header1', $data, true);
$htmlheader1 = $this->load->view('sales/header2', $data, true);
$htmlfooter1 = $this->load->view('sales/footer1', $data, true);
$data['htmlheader'] = $this->load->view('sales/header1', $data, true);
$html = $this->load->view('sales/invoice_pdf8', $data, true);
$data['html'] = $this->load->view('sales/invoice_pdf8', $data, true);
$header1 =$htmlheader.$htmlheader1 ;
$data['header1'] =$htmlheader.$htmlheader1 ;
$stylesheet = file_get_contents(FCPATH.'assets/css/invoice.css');
$data['stylesheet'] = file_get_contents(FCPATH.'assets/css/invoice.css');
$pdf->WriteHTML($stylesheet,1);
$pdf->SetHeader($header1);
$pdf->setFooter($htmlfooter1);
$pdf->AddPage();
$pdf->SetHeader($htmlheader);
$pdf->WriteHTML($html,2);
if($type=='print'){
$pdf->SetJS('this.print();');
}else{
$pdf->Output($filename, 'D');
}
$pdf->Output();
我的分贝数是 28
我的查看页面
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">-->
</head>
<body>
<div class="invoice-box">
<table border="" class="" style=" border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse; ">
<tr class="heading" style="background-color: #b3b3b3; margin-top: auto; margin-bottom: auto; ">
<small>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="5%">#</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="32%"> Material Description </td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="17%"> HSN Code</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="7%"><?= lang('qty') ?></td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="7%">Unit</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="14%">Unit Price</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;" width="18%"><?= lang('total') ?></td>
</small>
</tr>
<?php $i=1 ; foreach ($order_details as $item){?>
<tr class="" style="font-size: 10px !important; margin-right: 0; border-bottom:1px solid #000; border-left:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?= $i ?>
</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?php
$productsize= $this->db->get_where('product',array('id'=>$item->product_id))->row('product_size');
?>
<?= $item->product_name."- ". $productsize ?> <small><?= $item->description ?></small>
</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?php
$id =$item->product_id;
$hsncode = $this->db->get_where('product',array('id'=>$id))->row('hsncode');
echo $hsncode;
?>
</td>
<?php
$cqty = $item->qty;
$returnqty = $item->return_qty;
$qty = $cqty-$returnqty;
// echo $item->qty
?>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?= $qty ?>
</td>
<td style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?php $productid= $item->product_id; $unitcode = $this->sales->unitcodes($productid); echo $unitcode; ?>
</td>
<td align="right" style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?= "₹".' '.$this->localization->currencyFormat($item->sales_cost) ?>
</td>
<td align="right" style="border: 1px solid #000; border-bottom:1px solid #000; border-left:1px solid #000; border-right:1px solid #000; border-top:1px solid #000; border-collapse: collapse;">
<?= "₹".' '.$this->localization->currencyFormat($item->sales_cost * $qty) ?>
</td>
<?php
if($i % 7 == 0){
?>
<div style="page-break-after:always; clear: both; display: block;">
<!-- <pagebreak /> -->
</div>
<?php
} ?>
</tr>
<?php $i++; } ?>
</table>
</div>
</body>
</html>
html tr 和 td 中的分页符不起作用我曾尝试过 page-break-inside:avoid 但 pdf 缩小为发票中 80 个产品的单页
所以我尝试了 page-break-after 和 page-break-before 但表格行已经被打破了
解决方案
推荐阅读
- bash - How can I sort urls in bash shell such as hostnames are evaluated before subdomain names?
- spring - Google Guava 缓存 + Spring 示例
- python - ttk notebook 加粗标签
- laravel - 在日期之后获取特定的工作日日期
- python - 使用 Python 从 3 个矩阵中存储的数据实现 3D 绘图
- sql-server - ')' 附近的语法不正确
- powershell - Dry method for getting function name in logs
- python - 特征提取并取颜色直方图
- mongodb - MongoDB parallel updates to a collection
- python - SGD 实现 Python