在不同风格的字符上使用dompdf单词分词

时间:2016-04-12 08:01:23

标签: css dompdf word-break

我正在尝试使用dompdf渲染文本。它看起来应该与浏览器完全一样。这是有效的,只要单词的字符没有格式化:

使用HTML:

<span style="color: #000000; font-family:'opensans'">
    <p style="font-size: 30.57465524239px;">
        This Text is a test to show the different behaviour!
    </p>
</span>

无格式的浏览器文字

enter image description here

没有格式的dompdf文字

enter image description here

但是,如果我想给字符赋予不同的样式,请使用HTML:

<span style="color: #000000; font-family:'opensans'">
    <p style="font-size: 30px;">
        This Text is a test to 
        <span style="color: #800080;">s</span>
        <span style="color: #ff0000;">h</span>
        <span style="color: #000080;">o</span>
        <span style="color: #003300;">w</span>  
        <span style="color: #000080;">t</span>
        <span style="color: #ff00ff;">h</span>
        <span style="color: #ff0000;">e
            <span style="color: #000000;">different behaviour!</span>
        </span>
    </p>
</span>

浏览器仍然按预期显示:

enter image description here

但是dompdf显示它会像word-break: break-all;一样活跃。

enter image description here

我已尝试将word-break: keep-all;添加到周围的<span><p>。我还试图用另一个<span><nobr>元素包围这些单词,但这并没有改变任何内容。

所以,我的问题是,如何让dompdf对带有格式化字符的单词保持正常word-break规则?

1 个答案:

答案 0 :(得分:0)

现在我已经找到了一个PHP函数,它使用dompdf来测量格式化的文本宽度,并在需要的地方添加必要的<br>

这不是最佳解决方案,我希望有人能找到更好的解决方案。 但是现在它适用于我,我会在这里发布,也许它会帮助别人。

PHP dompdf wrapText

它采用以下格式的HTML代码:

<span style="color: #000000; font-family:'opensans'">
    <p style="font-size: 30.57465524239px;">
        This Text is a test to show the different behaviour!
    </p>
</span>

并以以下格式返回HTML代码:

<span style="color: #000000; font-family: opensans; font-weight: normal; font-size: 30.57px;">T</span>
<span style="color: #000000; font-family: opensans; font-weight: normal; font-size: 30.57px;">h</span>
...
<span style="color: #000000; font-family: opensans; font-weight: normal; font-size: 30.57px;">t</span>
<br>
<span style="color: #000000; font-family: opensans; font-weight: normal; font-size: 30.57px;">t</span>
...

它对我来说非常可靠,因为我的输入文本总是形成完全相同的。

它采用内联样式标记中的大多数样式信息以及周围<strong>

的粗体信息