我正在使用 dompdf 0.5.2 并且遇到的问题是,当一行有重音时,下一行的第一个字符被移入其中,例如:
This is a first line with áccent. T
his is a second line.
注意第一行末尾的 T,它属于第二行。默认字体和自定义加载字体都会发生这种情况。还尝试了 UTF-8 和 ISO-8859-1 编码。
另一个对我有用的解决方案是在你的 text/string 上使用wordwrap PHP 函数。
如果有人对 0.7.0-beta 版本有同样的问题,解决方案是将以下行添加到文件 src/Dompdf/FrameReflower/Text.php 的第 272 行(就在之前if ($split == 0) {
):
$split = mb_strlen(mb_substr($this->_frame->get_text(), 0, $split), 'UTF-8');
取自此处的有效解决方案是将以下代码行添加到 dompdf 文件的include/text_frame_reflower.cls.php
第 246 行之后:
$split = mb_strlen(mb_substr($this->_frame->get_text(), 0, $split), 'UTF-8');