部署在服务器上时,PDF 上的 Yii2 引导表是半角
Posted
技术标签:
【中文标题】部署在服务器上时,PDF 上的 Yii2 引导表是半角【英文标题】:Yii2 bootstrap table on the PDF is half width when deployed on the server 【发布时间】:2020-10-12 02:18:55 【问题描述】:在我的 Yii2 应用程序中,我使用 kartik mpdf 从 html 生成 PDF。 我在我的本地机器(Windows)中有一个全宽的 PDF 表格,这是预期的行为。但是,当我将它部署在 Ubuntu 服务器上时,表格是半宽的。
我已经交叉检查了依赖版本,两个环境也有相同的依赖。
我通过在其中放置文本确认表的父容器 (div) 行为正常。它只有 <table>
元素在部署时会在整个 PDF 中缩小。
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="table-responsive">
<table class="table table-bordered" >
<tbody>
</tbody>
</table>
</div>
</div>
</div>
这是我的没有正文的表格的代码。
知道背后发生了什么以及如何解决吗?
【问题讨论】:
【参考方案1】:您可以添加额外的 CSS:
$pdf = new Pdf([
..........
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
'cssInline' => '',
.........
]);
有了这个 css 文件,我的表格是 100% 宽度的。您可以插入自己的 css 文件或在 cssInline 中添加 css 类
【讨论】:
但是这个cssFile是默认应用的不是吗?由于 mpdf 库对 CSS 的所有限制,最好使用这个,而不是一般的引导程序。【参考方案2】:几天前我在与伟大的kartik/yii2-mpdf 斗争,我学到了一些东西。只需给它您需要的最低 CSS。例如,包含!important
的规则将被完全忽略。
对于这个全宽表格,请尝试将style="width: 100%;"
添加到表格标记中。
【讨论】:
【参考方案3】:经过多次努力,我发现 MPDF 会缩小表格以将最高行放入一页中。如果您有多行(单元格)垂直合并,那么您会遇到这种情况。
表格将调整大小,以使最高行(单元格)适合一页 - 这是唯一不能被覆盖的行
It is mentioned in the troubleshooting section of the documentation.
【讨论】:
以上是关于部署在服务器上时,PDF 上的 Yii2 引导表是半角的主要内容,如果未能解决你的问题,请参考以下文章
PDO 异常 SQLSTATE[HY000] [2002] Yii2 上的 Elastic Beanstalk 和 RDS 连接超时