Domanda

Ho un sacco di righe di testo in arabo in UTF-8. Il dispositivo che sto cercando di visualizzare questa non supporta testo arabo visualizzato. Pertanto, ho bisogno di convertire il testo in immagini.

Vorrei salvare ogni linea di testo come immagine con una larghezza specifica. Ho bisogno di utilizzare un carattere specifico pure. Qual è il modo migliore per farlo? Qualcuno sa di uno strumento che può essere utile qui?

I problemi che ho incontrato finora:

PHP + GD: lettere arabe appaiono separati e non in corsivo come dovrebbero. VB.net: Posso scaricare ogni riga di testo in un RichTextBox ... ma non so come esportare l'immagine del proprio questo controllo. Flash:. Alcun supporto per testo da destra a sinistra

È stato utile?

Soluzione

Per quanto riguarda la arabo , è necessario una libreria per invertire carboni / glifi per PHP / GD . si veda ad esempio http://sourceforge.net/projects/ar-php/ o all'indirizzo http://www.ar-php.org/ .

Assicurati che file PHP di codifica è in unicode / UTF .
per esempio. > Blocco note aperto> Salva con nome> codifica UTF-8:

Utilizzo di esempio per la tipografia araba in PHP utilizzando 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); 
?>

Uscite:

entrare descrizione dell'immagine qui

Altri suggerimenti

Ho sentito dire che Pango gestisce il layout arabo abbastanza bene. Non hanno usato però.

Aggiornamento:

Il pango-view utilità può rendere il testo in qualsiasi lingua e di uscita come immagine

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

oppure si può fornire il testo come una scelta così:

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

È inoltre possibile specificare una larghezza:

--width=50 -wrap=word

<< fine aggiornamento

In alternativa, ci sono alcuni programmi che utilizzano i caratteri Unicode che rappresentano forme lettera araba contestuali e testo di processo e lo rendono di rendering correttamente su sistemi che non possono rendere il testo in arabo correttamente.

Qui ci sono quelli che conosco di:

Sono tutti open source, quindi, anche se non si utilizza una di queste lingue, si può studiare il codice e creare una soluzione nel linguaggio di programmazione di scelta.

Ci sono molti modi; utilizzando Windows.Forms per esempio, è penso:

  • Creare un'istanza Immagine vuota; Credo che a questo punto si definisce dimensioni dell'immagine
  • Creare un'istanza Graphics dall'immagine, utilizzando il metodo Graphics.FromImage
  • Richiamare il metodo del controllo (RichTextBox), che dice di pittura stessa:. Ed a quel metodo, passare l'istanza Graphics associato con la vostra immagine, in modo che esso si dipinge sull'immagine

Non sono sicuro se ancora in attesa di una risposta, ma non v'è soluzione molto pulita e ordinata per il vostro problema. È possibile modificare qualsiasi testo, inclusi rtl, per l'immagine in base alla loro classe CSS. Ma lasciate che vi dica prima, PHP e GD che cosa mai, non fa nulla di buono per il testo RTL. Si dovrebbe cercare di sostituzione del testo asp.net in base alla larghezza.

Una volta che ho camminato lo stesso percorso e lottato per giorni. Ecco cosa si dovrebbe fare.

Per prima cosa vai al seguente indirizzo e vedere il tutorial e scaricare i file. http://weblogs.asp.net /yaneshtyagi/archive/2008/11/07/text-to-image-convertor.aspx

In secondo luogo è necessario un server asp.net. È possibile installarlo oppure è possibile utilizzare uno di questi server virtuale, come ad esempio server di mono asp.net, oppure è possibile utilizzare sviluppatore web visual.

Il codice si otterrà converte il testo un'immagine singola linea in, anche se è possibile specificare la larghezza. In quella linea lungo caso di testo restringersi e diventa illeggibile. Quello che vi serve è quello di Testo a capo in base alla larghezza specificata.

Qui in questo link che spiega come modificare il codice in fontwriter.ashx per raggiungere avvolgere il testo. http://www.codeproject.com/Questions /189513/Dynamic-Image-Replacement-Method-with-Csharp.aspx

In terzo luogo eseguire la tua pagina tramite server asp.net. Una volta che avete le immagini è possibile salvarlo, fare clic destro e salva con nome, con Firefox, Firefox funziona migliore finora.

Ora, tutto il testo viene convertito in immagini e testo originale verrà aggiunto alla immagine come tag alt. Spero che sia d'aiuto.

Ho intenzione di inviare un tutorial sulla questione al più presto. Controllare www.codeproject.com più tardi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top