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

Large data tables on MPDF - Can i avoid resize?

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

有什么办法可以防止这种情况发生吗?我用来生成的代码如下。我尝试将 "shrink_tables_to_fit" 设置为 0 和 1,但均未成功。还尝试将 autosize=1 设置为每个 table.

$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');

在 table 开始标记中试试这个:

<table autosize="1">

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

<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

我找到了。

我不能在里面放一个 table 和其他 table。发生这种情况时,MPDF 会在调整大小时丢失。

我遇到了同样的问题。尝试了我在 Whosebug 上以不同组合找到的所有内容:shrink_tables_to_fitautosize="0"page-break-inside:...overflow:... 等...

在我的例子中,我的 table 位于 div 内,其内联样式具有 position:absolute。在我将其更改为相对或完全删除位置后,table 在页面之间正确划分。