HTML5 Canvas fillText mit der Zeichenfolge von rechts nach links

8

Ich versuche, die fillText () -Methode für einen HTML5-Canvas-2d-Kontext zu verwenden, um eine in Arabisch geschriebene Zeichenfolge zu zeichnen. Es funktioniert einwandfrei, bis ich ein Satzzeichen am Ende der Saite anlege. Dann erscheint das Interpunktionszeichen auf der falschen Seite der Zeichenkette (am Anfang und nicht am Ende, als ob es eine ltr not rtl Zeichenkette wäre). Ich habe mit der Context.textAlign-Eigenschaft gespielt, aber das scheint nur die Art zu betreffen, wie die Zeichenkette relativ zur angegebenen Position gezeichnet wird, nicht die tatsächliche Richtung des Textes. Kennt jemand eine Lösung dafür?

Danke.

Update: Die Antwort, die ich gefunden habe, besteht darin, dem Canvas-Element auf der Seite ein "dir" -Attribut hinzuzufügen. Zum Beispiel

%Vor%

Ich weiß jedoch immer noch nicht, wie man das Attribut dir für einzelne Zeichenketten ändert, die an fillText gesendet werden. Irgendwelche Ideen?

    
user1145886 22.01.2012, 14:08
quelle

3 Antworten

9

Sie müssen die Richtung für jede einzelne Zeichenfolge nicht festlegen. Siehe das folgende Beispiel, das auch die ordnungsgemäße Verwendung von impliziten Bidi-Kontrollzeichen für die richtige Anzeigereihenfolge zeigt:

%Vor%

Und hier ist die Ausgabe:

    
Shervin 12.04.2013 19:57
quelle
1

Die Option dir wird für die gesamte Zeichenfläche gesetzt - für einzelne Zeichenfolgen, die sich schlecht verhalten, können Sie nach dem Zitat manuell einen RTL-Marker (U + 200F) hinzufügen.

    
Ansari 06.05.2012 16:21
quelle
0

Das kannst du damit machen:
ctx.textAlign="Ende";
 oder
ctx.textAlign="richtig"

Und um es wieder von links nach rechts zu machen:
ctx.textAlign="Start";

    
mansim 28.01.2018 18:14
quelle

Tags und Links