问题描述
在我的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>
这是我没有主体的桌子的代码。
任何想法背后发生了什么以及如何解决?
解决方法
您可以添加其他CSS:
$pdf = new Pdf([
..........
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css','cssInline' => '',.........
]);
有了这个CSS文件,我的表的宽度为100%。您可以插入自己的css文件或在cssInline中添加css类
,几天前,我正与伟大的kartik/yii2-mpdf挣扎,我学到了一些东西。只需提供所需的最低CSS。例如,包含!important
的规则将被完全忽略。
对于此全角表格,请尝试在表格标签中添加style="width: 100%;"
。
经过多番努力,我发现MPDF将表缩小以适合最高的一行到一页。如果您有垂直合并的多行(单元格),则会遇到此问题。
表格将调整大小,以使最高的行(单元格)适合页面-这是唯一无法覆盖的页面
It is mentioned in the troubleshooting section of the documentation.