DOMPDF不支持阿拉伯字符


DOMPDF Doesn't support arabic characters

有人能帮我吗?

我正在使用DOMPDF,它工作良好,但不与阿拉伯字符。它显示了这些(??)

我试着使用:<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />在head标签中,也:<style type="text/css">html,body{font-family: 'tahoma' ;}</style>

但它不起作用。请帮我一下提前感谢:)

在你的html中使用下面的样式

<style> 
 * { font-family: DejaVu Sans, sans-serif; }
</style>

dompdf/dompdf_config.inc.php

def("DOMPDF_DEFAULT_FONT", "sarif");

替换:

def("DOMPDF_DEFAULT_FONT", "dejavu sans");

为了在dompdf中添加字体,您不需要执行wiki中描述的所有步骤。我有同样的问题,我所做的就是下载字体。ttf文件,然后添加以下css到我的html:

@font-face {
    font-family: Arial;
    src: url(template/fonts/Arial Regular.ttf);
}
body {
    background: #FFF;
    font-family: Arial;
}

由于我们已经在样式中添加了font-face, dompdf将获取ttf文件并显示字体。


另一种方法是上传。ttf和。afm字体文件(例如:arial-regular.ttf, arial-regular.afm)到"lib/fonts/",然后通过添加以下代码更新"lib/fonts/"中名为"dompdf_font_family_cache.dist.php"的文件:

'arial' => 
  array (
    'normal' => DOMPDF_FONT_DIR . 'arial-regular',
    'bold' => DOMPDF_FONT_DIR . 'arial-regular',
    'italic' => DOMPDF_FONT_DIR . 'arial-regular',
    'bold_italic' => DOMPDF_FONT_DIR . 'arial-regular',
  ),

这样当你在html页面上使用arial字体时,它会自动加载arial-regular.ttf &arial-regular。并正确显示字体


如果您有。ttf文件而不是。afm文件,您可以使用此在线工具http://everythingfonts.com/ttf-to-afm

将。ttf转换为。afm。

受@Meldin Xavier回答的启发,您可以在文档中放置任何您想要的字体,并将阿拉伯语部分的字体设置为"DejaVu sans"。我必须使用它,因为我有阿拉伯语和英语,我希望英语部分有不同的字体。

参见打开DOMPDF unicode支持的快速指南:https://code.google.com/p/dompdf/wiki/CPDFUnicode

要使DOMPDF正确处理字符,必须在配置中启用Unicode支持。编辑dompdf_config.inc.php或dompdf_config.custom.inc.php,使DOMPDF_UNICODE_ENABLED为true。如果不启用此设置,当插入到PDF中时,文本将被重新编码为Windows ANSI,并且任何不在此编码范围内的字符将被转换为问号。