我使用dompdf来转换使用dompdf的html页面,但它以相反的顺序显示阿拉伯语文本
例如,如果文本是
ايبنسيالرمس
然后它显示为
مرلايسنبيا的PDF格式
知道为什么吗?
dompdf目前不支持方向性,因此RTL语言在字符流方面无法正确显示.有一个hack用于以正确的顺序显示字符,但它确实需要修改dompdf代码.
如果您想尝试修改,则需要两个步骤.首先,设置应显示RTL的任何文本的样式direction: rtl; text-align: right;.然后,在文件dompdf/include/text_renderer.cls.php中,在每个实例$canvas->text()(或任何变体,例如$this->_canvas->text())之前添加以下行:
if (strtolower($style->direction) == 'rtl') {
preg_match_all('/./us', $text, $ar);
$text = join('',array_reverse($ar[0]));
}
Run Code Online (Sandbox Code Playgroud)
(您可能必须更改$text变量的名称以匹配代码中使用的名称.)
参考文献:
另外,我们已经看到了在渲染单词时字符不能按预期连接在一起的问题.这是一个我们还没有机会探索的问题.
参考文献:
你现在最好的选择就是使用无头浏览器,例如PhantomJS.