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-break它word-wrap;
如果您希望长字符串在边界容器中一致地包装,我认为您应该能够通过在orignial字符串的每个字母之间插入零宽度空格字符(​或\xe2\x80\x8b)来实现此目的.这将具有包装的效果,就像每个字符都是它自己的单词一样,但不向最终用户显示空格.这可能会导致您在最终产品上进行文本搜索或索引时出现问题,但它应该从美学角度可靠地完成任务.
从而:
testtestetstetstetstetstettstetstetstetstetstetstetstetstetstetstets
Run Code Online (Sandbox Code Playgroud)
变
t​e​s​t​t​e​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​s​t​e​t​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]."​";
}
echo $new_string
Run Code Online (Sandbox Code Playgroud)
这是一个特别好的解决方案,因为wordwrap()它不同于自动调整非固定宽度字体(基本上是实际使用的字体的99%).
同样,如果您需要生成可搜索的PDF,这不是一个好方法,但它会使它看起来像您想要的那样.