Html2pdf不支持word-break:break-all css

sri*_*ini 7 php word-wrap word-break html2pdf

我每个人都在使用html2pdf,它不支持word-break:break-all css任何想法?

   <td style="width:30%;word-break:break-all ;">
      testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets
    </td>
Run Code Online (Sandbox Code Playgroud)

输出pdf取宽度超过30%,如字符串长度大小

输出pdf:testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets

我想输出:

testtestetstetstetstetstettstets
tetstetstetstetstetstetstetstets

Ber*_*rak 11

嗯,这很复杂.你的teststring太长了,但它不是由多个单词组成的.这意味着分词不会起作用,因为没有任何词可以打破.显然,这可能只是一个例子,在这种情况下,html2pdf可能不支持相对宽度word-break,所以你可以尝试使用绝对宽度和word-break.

也就是说,这里有一些我知道会起作用的东西:PHP中的wordwrap.因此,相反,echo $yourvar;你可以使用echo wordwrap($yourvar, 75, "\n", true)它,它总是会剪切字符串,即使它只是一个长字符串.获得与您正在寻找的宽度相匹配的字符数需要一点点小费,但它会起作用.

<?php
$foo = str_repeat('test',12);
echo wordwrap($foo, 20, '<br />', true);
Run Code Online (Sandbox Code Playgroud)

输出:

testtesttesttesttest
testtesttesttesttest
testtest
Run Code Online (Sandbox Code Playgroud)


小智 6

试试这个;

<td style="width:30%; word-wrap:break-word;">
   testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets
</td>
Run Code Online (Sandbox Code Playgroud)

没有word-breakword-wrap;


Ben*_*n D 5

如果您希望长字符串在边界容器中一致地包装,我认为您应该能够通过在orignial字符串的每个字母之间插入零宽度空格字符(&#8203;\xe2\x80\x8b)来实现此目的.这将具有包装的效果,就像每个字符都是它自己的单词一样,但不向最终用户显示空格.这可能会导致您在最终产品上进行文本搜索或索引时出现问题,但它应该从美学角度可靠地完成任务.

从而:

testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets
Run Code Online (Sandbox Code Playgroud)

t&#8203;e&#8203;s&#8203;t&#8203;t&#8203;e&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s&#8203;t&#8203;e&#8203;t&#8203;s
Run Code Online (Sandbox Code Playgroud)

(显示:"具体情况" T E T T [式T(E T)式T(E T)式T(E T)式T(E T)式T(E T)小号T E吨式T(E T)式T(E T)式T(E T)式T(E T)的")

因此,如果你包装它,它将完全包装到其容器的边界.这里有一个小提琴作为例子.

只需编写一个PHP脚本来循环遍历字符串并插入空格:

$string="testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets";
$new_string = "";
for($i=0;$i<strlen($string);$i++){
   if ($string[$i]==' ' || $string[$i+1]==' '){ //if it is a space or the next letter is a space, there's no reason to add a break character
      continue;
   }
   $new_string .= $string[$i]."&#8203;";
}
echo $new_string
Run Code Online (Sandbox Code Playgroud)

这是一个特别好的解决方案,因为wordwrap()它不同于自动调整非固定宽度字体(基本上是实际使用的字体的99%).

同样,如果您需要生成可搜索的PDF,这不是一个好方法,但它会使它看起来像您想要的那样.


sri*_*ini 2

html2pdf 不支持此 word-break:break-all css

参考: http: //www.yaronet.com/en/posts.php? sl=&h=0&s=151321#0