PHP-GD: Umgang mit Unicode-Zeichen

8

Ich entwickle einen Webservice, der Zeichen mithilfe der PHP GD-Erweiterung unter Verwendung einer benutzerdefinierten TTF-Schriftart rendert.

Das funktioniert im ASCII-Land gut, aber es gibt ein paar Probleme:

  1. Die zu rendernde Zeichenfolge wird als UTF-8 angezeigt. Ich möchte die Liste der vom Benutzer auswählbaren Schriftarten auf diejenigen beschränken, die die Zeichenfolge richtig darstellen können, da einige Schriftarten nur Glyphen für ASCII-Zeichen, ISO 8601 usw. haben.

  2. Wenn einige dekorative Zeichen enthalten sind, wäre es in Ordnung, die Mehrzahl der Zeichen in der ausgewählten Schriftart zu rendern und die dekorativen Zeichen in Arial zu rendern (oder welche Schriftart die erweiterten Zeichen enthält).

    >

Es scheint nicht so zu sein, dass PHP-GD die Font-Metadaten ausreichend abfragt, um herauszufinden, ob ein Zeichen in einer bestimmten Schriftart dargestellt werden kann. Was ist ein guter Weg, um Font-Metriken in PHP zu bekommen? Gibt es ein Befehlszeilendienstprogramm, das in XML oder einem anderen parsefähigen Format ausgeben kann?

    
sehugg 21.05.2010, 02:42
quelle

4 Antworten

0

Am Ende habe ich das TTX -Dienstprogramm verwendet, um die Schriftartmetriken zu speichern. Ich könnte dann die resultierenden .ttx-Dateien untersuchen und die Zeichen- & gt; -Glyphenkarte betrachten. Ich habe das manuell gemacht, aber das automatische Parsen der XML-Dateien ist möglich.

Ein Beispiel für ein GNU-Makefile, das die .ttx-Dateien aus einer Reihe von TrueType-Schriften im selben Verzeichnis erzeugt:

%Vor%     
sehugg 17.08.2010, 23:39
quelle
2

PHP-Cairo , das gegen Pango gebaut wurde, und fontconfig sollten genug Verstand haben, um die Font-Ersetzung zu ermöglichen, wenn es angebracht ist.

    
Ignacio Vazquez-Abrams 21.05.2010 02:52
quelle
1

Sie können versuchen, pdf_info_font () aus der Erweiterung pdflib zu verwenden. Ein gutes Beispiel ist dort: Ссылка

    
Zyava 21.05.2010 18:46
quelle
1

Wenn Sie keine Unicode-Schriftart haben, müssen Sie etwas wie

versuchen %Vor%

Entnommen aus Ссылка

Wenn die gemischten und utf-8 Zeichen gleich sind, können Sie sie verwenden. Wenn nicht, dann können Sie nicht.

    
Scott 26.05.2010 11:37
quelle

Tags und Links