2016-08-02 19 views
1

Ich habe dompdf 0.5.1 zum Generieren von PDF-Dateien verwendet. Aber die Sonderzeichen zeigen nicht richtig.dompdf Sonderzeichen mit Fragezeichen?

Zum Beispiel Enter image description here.

Es zeigt so etwas wie – “ in der generierten PDF-Datei.

Ich verwendete UTF-8 Codierung wie <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> in der HTML-Seite, die von der Dompdf gerendert wird.

Ich habe auch die Codierung vor dem Senden an dompdf, wie $dompdf->load_html(utf8_decode($html)); verwendet.

Aber ich bekomme ? Marken anstelle der oben genannten Zeichen.

Wie löse ich das obige Problem?

Antwort

1

Dompdf 0.5.1 hat eingeschränkte Unterstützung für Zeichen, die von Windows ANSI-Codierung nicht unterstützt werden. Wenn Sie diese Zeichen unterstützen müssen, sollten Sie mindestens auf Dompdf 0.6.2 aktualisieren. Obwohl ich empfehlen würde, Dompdf 0.7.0 zu verwenden, wenn Sie können.

Sie müssen eine Schriftart bereitstellen, die Ihre Zeichen unterstützt (siehe Unicode How-To), aber solange Sie nicht versuchen, CJK-Zeichen zu rendern, können Sie sich wahrscheinlich auf die enthaltenen DejaVu-Schriftarten verlassen.

<!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> 

Außerdem sollten Sie nie Verwendung utf8_decode() da es destruktiv zu iso-8859-1 Codierung konvertieren. Zerstörerisch meine ich, dass es Zeichen ändern wird, die nicht direkt in iso-8859-1 in Fragezeichen (?) Umgewandelt werden können.

+0

Ich aktualisierte es zu Dompdf 0.6.2 .. es funktioniert gut. Danke @BrianS. –