在服务器上部署时,PDF上的Yii2引导表为半角

问题描述

在我的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.