Frage

Ich habe eine Reihe von Zeilen von arabischem Text in UTF-8. Die Gerät ich diese anzuzeigen versuchen nicht unterstützt arabischen Text angezeigt wird. Daher muss ich den Text in Bilder konvertieren.

Ich mag jede Textzeile als ein Bild mit einer bestimmten Breite speichern. Ich brauche auch eine bestimmte Schriftart zu verwenden. Was ist der beste Weg, dies zu tun? Weiß jemand, der ein Werkzeug, das hier hilfreich sein kann?

Probleme Ich habe so weit laufen in:

PHP + GD: arabische Buchstaben erscheinen getrennt und nicht in Kursiv wie sie sollten. VB.net: Ich kann jede Textzeile in eine richtextbox Dump ... aber ich weiß nicht, wie das Bild nur, dass die Steuerung zu exportieren. Blitz:. Keine Unterstützung für die von rechts nach links Text

War es hilfreich?

Lösung

Wie bei Arabisch , müssen Sie eine Bibliothek Reverse Zeichen / Glyphen PHP / GD . siehe z.B. http://sourceforge.net/projects/ar-php/ oder unter http://www.ar-php.org/ .

Stellen Sie sicher, PHP-Datei Codierung ist in Unicode / UTF .
z.B. > Open Notepad> Speichern unter> Codierung als UTF-8:

Verwendungsbeispiel für arabische Typographie in PHP imagettftext :

<?php 
    // The text to draw
    require('./I18N/Arabic.php'); 
    $Arabic = new I18N_Arabic('Glyphs'); 
    $font = './DroidNaskh-Bold.ttf';
    $text = $Arabic->utf8Glyphs('لغةٌ عربيّة');

    // Create the image
    $im = imagecreatetruecolor(600, 300);

    // Create some colors
    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 128, 128, 128);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 599, 299, $white);

    // Add the text
    imagettftext($im, 50, 0, 90, 90, $black, $font, $text);

    // Using imagepng() results in clearer text compared with imagejpeg()
    imagepng($im, "./output_arabic_image.png");
    echo 'open: ./output_arabic_image.png';
    imagedestroy($im); 
?>

Ausgänge:

eingeben Bild Beschreibung hier

Andere Tipps

Ich habe das pango ziemlich gut Arabisch Layout behandelt. obwohl haben es nicht verwendet wird.

Update:

Das Dienstprogramm pango-view können Text machen in jeder Sprache und gibt es als Bild

$ pango-view input_file.txt --no-display --output=image.png

oder Sie können den Text als Option liefern auch:

$ pango-view --no-display --output=image.png --text="your sentence"

Sie können auch eine Breite angeben:

--width=50 -wrap=word

<< Ende update

Alternativ gibt es einige Programme, die Unicode-Zeichen verwenden, die kontextuellen arabische Buchstaben Formen und Bearbeiten von Texten darstellen und es ordnungsgemäß auf Systeme machen machen, die nicht richtig arabischen Text machen können.

Hier sind die, die ich kenne:

Sie sind alle Open Source, so dass selbst wenn Sie nicht über eine dieser Sprachen verwenden, können Sie den Code untersuchen und eine Lösung in Ihrer Programmiersprache der Wahl erstellen.

Es gibt viele Möglichkeiten; mit Windows.Forms zum Beispiel, ich glaube, Sie:

  • Erstellen Sie eine leere Bild Instanz; Ich denke, an diesem Punkt, dass Sie das Bild der Dimensionen definieren
  • Erstellen Sie eine Grafik-Instanz aus dem Bild, die Graphics.FromImage Methode mit
  • Rufen Sie die Methode der Steuerung (die RichTextBox), die sie selbst malen sagt:. Und dieses Verfahren wird die Graphics-Instanz mit dem Bild verbunden passieren, so dass sie sich auf das Bild malt

Ich bin nicht sicher, ob Sie immer noch auf eine Antwort zu warten, aber es ist sehr sauber und ordentlich Lösung für Ihr Problem. Sie können einen beliebigen Text ändern, einschließlich rtl, die dem Bild auf der Grundlage ihrer CSS-Klasse. Aber lassen Sie mich Ihnen sagen, zuerst, PHP und GD was auch immer, nicht für rtl Text etwas Gutes tun. Sie sollten asp.net Ersetzen von Text basiert auf Breite versuchen.

Wenn ich den gleichen Weg gegangen und kämpfte für Tage. Hier ist, was Sie tun sollten.

Erste an folgende Adresse gehen und das Tutorial sehen und die Dateien herunterladen. http://weblogs.asp.net /yaneshtyagi/archive/2008/11/07/text-to-image-convertor.aspx

Zweitens benötigen Sie einen asp.net Server. Sie können es installieren, oder Sie können eines dieser virtuellen Server, wie Mono- asp.net-Server verwenden, oder können Sie Visual Web Developer verwenden.

Der Code Sie wandelt den Text in einer einzigen Zeile Bild erhalten, wenn Sie Breite angeben. In diesem Fall lange Textzeile schrumpfen und wird unleserlich. Was Sie brauchen, ist Wrap auf Text basiert auf angegebene Breite.

Hier in diesem Link, der erklärt, wie Sie den Code in fontwriter.ashx verändern Textumbruch zu erreichen. http://www.codeproject.com/Questions /189513/Dynamic-Image-Replacement-Method-with-Csharp.aspx

Dritte die Ihre Seite über asp.net Server ausgeführt werden. Sobald Sie die Bilder haben es Sie sparen können, kopieren und speichern als mit Firefox funktioniert Firefox am besten so weit.

Nun, der gesamte Text in Bilder umgewandelt und ursprüngliche Text wird als alt -Tag Bild hinzugefügt werden. Ich hoffe es hilft.

Ich plane, bald ein Tutorial zu diesem Thema zu schreiben. Prüfen www.codeproject.com später.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top