L'élément canvas ne gère malheureusement pas bien le texte. Il y a un tas d'approches (voir par exemple http://canvaspaint.org/blog/2006/12/rendering-text/), mais elles ressemblent surtout à des hacks. Que puis-je faire qui est multi-plateforme et qui me donne le plus de flexibilité pour faire mes polices comme je veux?Quelle est la meilleure façon de dessiner du texte sur un élément de canevas HTML?
Répondre
Avez-vous regardé typeface.js, http://typeface.neocracy.org. J'entends dire que c'est assez solide pour écrire du texte. Voici leur site:
"typeface.js utilise les capacités de dessin vectoriel des navigateurs pour dessiner du texte dans des documents HTML Pendant un bon moment, les navigateurs ont supporté le dessin vectoriel - Firefox, Safari et Opera supportent l'élément <canvas>
(ainsi que SVG) et IE prend en charge VML
Le projet typeface.js comporte deux composants: le module perl pour la conversion des polices et la bibliothèque javascript pour le dessin dans le navigateur Le module perl extrait les informations de plan de glyphes truetype les polices et écrit ces données au format JSON.La bibliothèque javascript traverse ensuite le document HTML et rend le texte en utilisant <canvas>
ou VML pour dessiner les glyphes.
Dans les navigateurs qui prennent en charge <canvas>
, le texte est sélectionnable, mais vous devez avoir confiance. Lorsque vous sélectionnez, il n'y a pas de commentaires, pas de surlignage pour vous informer que cela fonctionne. Les travaux futurs viseront à mieux mettre en œuvre, le soutien multi-navigateur pour sélectionner texte mis en évidence « (citation de http://typeface.neocracy.org/usage.html)
Si vous voulez utiliser les méthodes de texte HTML5, vous devriez essayer cette bibliothèque. http://code.google.com/p/canvas-text/ Je suis . développeur principal, donc je peux aider, et faire des changements
très rapidement Les démos sont ici: http://canvas-text.googlecode.com/svn/trunk/examples/index.html
Il est encore au stade alpha, donc un rapport de bug et les commentaires sont les bienvenus :)
- 1. Quelle est la meilleure façon de dessiner du texte avec la géométrie?
- 2. quelle est la meilleure façon de marquer un texte?
- 3. Quelle est la meilleure façon d'automatiser le remplacement de texte?
- 4. La meilleure façon de prendre du texte dans un élément HTML qui est dans le nœud parent ne
- 5. Quelle est la meilleure façon de "conclure" du HTML avec un contrôle utilisateur?
- 6. Quelle est la meilleure façon de détecter si un objet Javascript donné est un élément DOM?
- 7. Quelle est la meilleure façon d'analyser HTML à partir d'un éditeur de texte enrichi en Perl?
- 8. Quelle est la meilleure façon de dessiner un contenu OpenGL en couches?
- 9. Quelle est la meilleure façon de remplacer du texte dans un fichier en utilisant C#/.NET?
- 10. Quelle est la meilleure façon de chiffrer un clob?
- 11. Quelle est la meilleure façon de glisser la section de html en utilisant javascript?
- 12. Quelle est la meilleure façon de dessiner des objets et de les traiter?
- 13. Quelle est la meilleure façon de déboguer un Oracle SP?
- 14. Quelle est la meilleure façon de rafraîchir un indice Nutch?
- 15. Quelle est la meilleure façon de vider un répertoire?
- 16. Quelle est la meilleure façon de mettre en évidence un champ obligatoire sur un formulaire Web?
- 17. Quelle est la meilleure façon de localiser un IEnumerable?
- 18. Quelle est la meilleure façon d'effacer un tableau de chaînes?
- 19. Quelle est la meilleure façon de déboguer un écrasement explorer.exe?
- 20. Quelle est la meilleure façon de structurer un projet?
- 21. Quelle est la meilleure façon de dessiner cette ellipse dans une application iPhone?
- 22. Quelle est la meilleure façon de télécharger un dossier sur un site Web?
- 23. Quelle est la meilleure façon de différencier Crystal Reports?
- 24. Quelle est la meilleure façon d'inclure l'icône dans la zone cible du texte cliquable?
- 25. Quelle est la meilleure façon d'injecter du HTML dans le DOM avec jQuery?
- 26. Quelle est la meilleure façon d'implémenter des restrictions de saisie sur un TextBox en C#?
- 27. Quelle est la meilleure façon de faire ce programme Java?
- 28. Quelle est la meilleure façon de construire un jeu sur un 3D-Engine existant
- 29. Quelle est la meilleure façon de trouver l'inverse de datetime.isocalendar()?
- 30. Quelle est la meilleure façon d'exposer l'API de mon serveur?
Ce Le lien est ancien et la spécification vers laquelle il pointe a été mise à jour compte d'un api de dessin de texte. Pour une question similaire (et j'espère utile), voir http://stackoverflow.com/questions/719848/how-do-you-draw-text-on-a-canvas-tag-in-safari –
fillText() est seulement pris en charge dans les versions bêta de Safari et Firefox (pas sûr sur les autres navigateurs), ce qui ne le rend pas très utile. Les différents hacks mentionnés dans mon lien sont principalement multi-plateforme. – swampsjohn