2016-08-02 5 views
1

Я использовал dompdf 0.5.1 для создания PDF-файлов. Но специальные символы не отображаются должным образом.домpdf специальный знак, отображающий знак вопроса?

Например, Enter image description here.

В созданном PDF-файле отображается что-то вроде – “.

Я использовал кодировку UTF-8 как <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> на странице HTML, которая отображается dompdf.

Я также использовал кодировку перед отправкой ее в dompdf, например $dompdf->load_html(utf8_decode($html));.

Но вместо вышеуказанных символов я получаю ?.

Как решить вышеуказанную проблему?

ответ

1

Dompdf 0.5.1 имеет ограниченную поддержку символов, которые не поддерживаются кодировкой ANSI Windows. Если вам необходимо поддерживать эти символы, вы должны обновить, по крайней мере, Dompdf 0.6.2. Хотя я бы рекомендовал использовать Dompdf 0.7.0, если можно.

Вам необходимо указать шрифт, который поддерживает ваши символы (см. Unicode How-To), но пока вы не пытаетесь отображать символы CJK, вы, вероятно, можете полагаться на включенные шрифты DejaVu.

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <style> 
    * { font-family: DejaVu Sans, sans-serif; } 
    </style> 
</head> 
<body> 
    <p>—</p> 
</body> 
</html> 

Кроме того, вы должны никогда использовать utf8_decode(), как это будет деструктивным преобразовать в ISO-8859-1 кодирования. Деструктивно я подразумеваю, что он изменит символы, которые он не может напрямую преобразовать в iso-8859-1 в вопросительные знаки (?).

+0

Я обновил его до Dompdf 0.6.2 .. он работает нормально. Спасибо @BrianS. –

Смежные вопросы