如何在 Yii2 mpdf 中将 <br> 标签实际呈现为换行符

Posted

技术标签:

【中文标题】如何在 Yii2 mpdf 中将 <br> 标签实际呈现为换行符【英文标题】:How to render <br> tags actually as line breaks in Yii2 mpdf 【发布时间】:2020-12-16 11:46:52 【问题描述】:

我的一个模型中有这个:

public function getDispname() 
    return $this->step . '<br>' . $this->pm->dispname;

在视图 (_pdf.php) 中,我在 Gridview 中调用它。 当我在控制器中生成关于此的 pdf 时:

$pdf = \Yii::$app->pdf;
$pdf->content = $this->render('_pdf', [
    'model' => $model,
]);
$pdf->render();

我得到了这个结果:

7. - sometext<br>sometext

显然,我希望在那里有一个实际的换行符,而不是 &lt;br&gt; 标签:

7. - sometext
sometext

您能告诉我如何使 mpdf 将 &lt;br&gt; 标记呈现为换行符吗?

【问题讨论】:

&lt;br&gt; 是否在 Gridview 之外工作?我刚刚运行了您的代码(在 Gridview 之外),没有任何问题。 GridView 的代码是什么?您可以尝试在您的专栏中添加'format' =&gt; 'raw', 【参考方案1】:

GridView 中列的文本是自动编码的。

因此,要呈现 html,您需要将此列格式化为原始文本。

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ...
        // a column with html inside as raw text
        [
            'attribute' => 'content',
            'format' => 'raw', // this will enable html output
        ],
        ...
    ],
]); ?>

【讨论】:

以上是关于如何在 Yii2 mpdf 中将 <br> 标签实际呈现为换行符的主要内容,如果未能解决你的问题,请参考以下文章

Yii2:如何在 mPDF 中添加模型和模型 id

如何在yii2中向kartik yii-mpdf添加自定义字体

在 MPDF 中将文本与底部对齐

最后打印页的页脚 MPDF

yii2 mpdf 视图显示调试工具栏代码

Yii2 mpdf更改下载的文件名