我试图在Yii2框架上使用mdpdf渲染一个非常大的pdf。
我创建了一个html页面,但是当我调用render
函数时,php会耗尽内存。
我不想扩展memory_limit
ini设置(256M
超出必要条件)。
我使用这个配置,$html
包含我的巨大代码:
$pdf = new Pdf([
'mode' => Pdf::MODE_CORE,
'content' => $html,
'options' => [
'title' => 'Report',
],
'marginHeader' => 2,
]);
return $pdf;
也许有一种方法来渲染步骤pdf?
答案 0 :(得分:0)
在Yii2 mpdf中,内容通常是表单布局的renderPartial 并且renderPartial由一个或多个模型填充,这些模型是查询的结果,例如:
$models = MyModel::find()->all();
$content = $this->renderPartial('_mpdf_report_scheda', [
'model' => $models,
]);
$pdf = new Pdf([
.......
'content' => $content,
可能是在你的情况下,查询的结果检索到很多行,所以你可以在一个部分中拆分你的内容
例如:使用limit()和offset()
$models = MyModel::find()
->limit(20)
->all();
$models = MyModel::find()
->limit(20)
.>offset(20)
->all();
并启动部分的pdf