MPDF上的大型数据表 - 我可以避免调整大小吗?

时间:2018-01-29 12:49:04

标签: php mpdf

我正在为我的管理员生成一些报告,并使用MPDF library导出为PDF。但是当它有大量数据时,MPDF正在调整表的大小以适应页面,因此它变得很笨拙。

enter image description here

有没有办法防止这种情况发生?我用来生成的代码如下。我试图将“shrink_tables_to_fit”设置为0和1,两者都不成功。还尝试将autosize = 1设置为每个表。

$stylesheet = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/site/css/layout/pdf.css');
$bootstrap = file_get_contents('https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css');

$mpdf = new mPDF('pt', 'a4');

$mpdf->shrink_tables_to_fit = 1;
$mpdf->setAutoTopMargin = 'stretch';
$mpdf->setAutoBottomMargin = 'stretch';

$mpdf->SetHTMLHeader('<img src="'.$_SERVER['DOCUMENT_ROOT'].'/site/img/content/pdf/header.jpg">');
$mpdf->SetFooter('{DATE j/m/Y H:i}|{PAGENO}/{nb}');

$mpdf->WriteHTML($bootstrap, 1);
$mpdf->WriteHTML($stylesheet, 1);
$mpdf->WriteHTML($html);

$mpdf->Output($_SERVER['DOCUMENT_ROOT'].'/upload/consultas-pre/'.$nomeArquivo.'.pdf', 'F');

3 个答案:

答案 0 :(得分:1)

您可以将整个表拆分为不同的表,并在每个表的末尾添加:

<div style="page-break-after: always;">&nbsp;</div>

这将创建一个分页符。

示例:

<?php $rows=1; foreach($allData as $data){ ?>

    <table>
      <tr>
        <td>Your table data</td>
      </tr>
    </table> 

    <?php if($row == 10) { ?>
        <div style="page-break-after: always;">&nbsp;</div>
    <?php } ?>

<?php } ?>

您可以阅读有关mpdf分页符here

的更多信息

答案 1 :(得分:0)

Try this in the table opening tag:

<table autosize="1">

答案 2 :(得分:0)

我找到了。

我里面没有其他桌子的桌子。发生这种情况时,MPDF会在调整大小时丢失。