html2pdf:溢出:隐藏似乎不起作用

时间:2021-03-16 16:22:51

标签: html2pdf

我有文本要输出到单元格中,文本可能太长,在这种情况下,我希望将溢出隐藏起来。
测试的版本是 html2pdf v. 5.2.2 .
我找不到关于哪些 CSS 被识别,哪些不被识别的文档。
相反,我在 /src/Parsing/Css.php 代码中发现似乎暗示“溢出”至少对于“可见”和“隐藏”值被识别:

            case 'overflow':
                if (!in_array($val, array('visible', 'hidden'))) {
                    $val = 'visible';
                }
                $this->value['overflow'] = $val;
                break;

所以我尝试了以下测试用例:

<?php
require __DIR__.'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;

$html = <<<EOT
<body>
    <style>
        .red {
            color:red;
            width:30px;max-width:30px;
            overflow:hidden;
        }
        .blue {
            color:blue;
        }
    </style>
    <table>
        <tr>
            <td class="red" >totototototototototototototototo</td>
            <td class="blue">titi</td>
        </tr>
    </table>
</body>
</html>
EOT;

$toPdf=false;

if($toPdf) {
    $html2pdf = new Html2Pdf();
    $html2pdf->writeHTML($html);
    $html2pdf->output();
}
else { echo $html; }

我想要在 html 浏览器中呈现的预期输出。
但是 html2pdf 的输出只是忽略了 css 溢出指令(请参阅捕获)。
我做错了什么吗?
有办法吗?
如果可能的话,我想要一个 CSS 解决方案/周转,没有基于子字符串截断的解决方案(因为这样的解决方案会产生灾难性的结果,例如“WWWMMWMWWM”与“iiilliilli”这样的字符串,每个 10 个字符,宽度完全不同)。

我将不胜感激任何解决方案或对解决方案的任何提示。
提前致谢。

这里是浏览器输出的html,以及html2pdf制作的PDF输出。

Captures

1 个答案:

答案 0 :(得分:0)

overflow:hidden 似乎终于可以使用 DIV 元素了。
但是 display:inline-blockfloat:left 都没有,这将允许并排 DIV...

再进行几次测试,我发现了我的转变:每个 TD 中带有 overflow:hidden 的 DIV...

相关问题