2013-03-17 4 views
5

Sto usando html2canvas per scattare un'immagine di un div, il contenuto proviene dalla stessa pagina, stesso dominio, ma mostra le lettere arabe disconnesse, sembra che html2canvas non supporti l'arabo.Codifica araba con html2canvas

Mentre sto leggendo i dettagli disponibili su di esso sulla sua pagina web, non ho trovato alcuna informazione utile.

Ecco il codice semplice che ho usato:

$("#import").click(function(){ 
    // send the contents of the email :) 
    html2canvas(document.body, { 
     onrendered: function(canvas) { 
      document.body.appendChild(canvas); 
     }, 
     letterRendering:true 
    }); 
}); 

how html2canvas renders the div

alcun indizio?

+1

Io purtroppo ho idea di come l'araba dovrebbe apparire, ma, dopo aver preso uno sguardo al plug-in, ma non fornisce alcun supporto esteso per l'internazionalizzazione o 'i18n'. Ho scavato un po 'per github per te, ma sfortunatamente gli unici progetti sono per olandese e mandarino. L'unica cosa che ho trovato [anche lontanamente vicino, era questa] (https://vaadin.com/directory#addon/js-screenshot) - sfortunatamente, è un wrapper che dovresti usare sul lato server e * probabilmente * richiede una curva di apprendimento. buona fortuna. – Ohgodwhy

+0

grazie mille lo sto verificando ora – mfadel

risposta

0

Si sta utilizzando la codifica UTF-8? Se non hai <meta http-equiv="content-type" content="text/html; charset=UTF8"> nella tua testa, sicuramente non funzionerà :) Spero che questo aiuti.

+0

sì, certo, sto usando utf-8, comunque grazie :) – mfadel

+0

@mfadel okay stavo giusto assicurandomi, qualsiasi motivo per cui hai scelto html2canvas? Penso che jCanvas potrebbe essere migliore e più semplice perché potresti incontrare più volte il problema. –

+0

Lo controllerò, non ho alcuna perferenza, voglio solo una soluzione praticabile – mfadel

3

ho pensato di provare qualche manipolazione del codice & E unblivably funzionato. La risposta è quella di sostituire:

textList = (!options.letterRendering && /^(left|right|justify|auto)$/.test(textAlign) && noLetterSpacing(getCSS(el, "letterSpacing"))) 

con:

textList = (!options.letterRendering || /^(left|right|justify|auto)$/.test(textAlign) || noLetterSpacing(getCSS(el, "letterSpacing"))) 

preavviso (& &) segno che viene sostituito da (||).

+0

dove hai effettivamente sostituito il testo originale? Non riesco a trovarlo all'interno del file lib. – ajawadmahmoud