60 votes

Bibliothèque de génération de codes QR en javascript

Je suis actuellement à la recherche d'une bibliothèque js qui peut encoder du texte dans des codes QR. Le seul que j'ai pu trouver jusqu'à présent semble cassé, bien que d'autres personnes prétendent l'utiliser. La page d'exemple ne fonctionne pas. En jouant un peu avec, j'ai réussi à générer des codes mais ils ne sont pas décodés par le logiciel du téléphone.

Existe-t-il une autre bibliothèque pour cela ? Quelqu'un a-t-il réussi à la faire fonctionner ?

Je ne suis pas intéressé par une solution qui tire le code d'un service en ligne (kaywa, google etc.).


Mise à jour :

Eh bien, vous avez raison, cette bibliothèque fait travail. Mon problème est que j'ai essayé de l'inclure dans une page HTML5 Boilerplate, et document.write ne semble pas fonctionner dans ce cas. J'ai quand même modifié l'exemple de code pour que le navigateur dessine dans un canevas et non dans un tableau et j'ai inversé l'ordre de la fonction fillRect. Voici l'appel de fonction corrigé.

context.fillRect(c * UNIT_SIZE, r * UNIT_SIZE, UNIT_SIZE, UNIT_SIZE);
// it's column-row, not row-column; don't ask why :)

Depuis que je n'ai plus de transposition de mon image :), maintenant le qr décode bien. Merci pour votre aide.

2 votes

Si vous prévoyez de prendre en charge des téléphones mobiles, vous aurez beaucoup moins de problèmes en optant pour une solution côté serveur. Le javascript mobile n'est pas aussi bien supporté que dans les navigateurs.

0 votes

Je ne vise pas les mobiles avec ça, je veux juste un générateur que je puisse déployer n'importe où :), il sera utilisé par des personnes travaillant sur ordinateur. Puisque javascript fait l'affaire, je ne voyais pas l'intérêt de le créer comme un service web.

0 votes

Il semble y avoir un grand nombre de plugins et de snippets si je les recherche : google.com/search?q=QR+codes+javascript .

26voto

tz1 Points 226

J'ai écrit un simple encodeur qr GPLv3 en javascript qui est local, utilise HTML5 et est vraiment rapide car c'est un portage d'une version C embarquée que j'ai écrite pour les processeurs Atmel AVR.

http://code.google.com/p/jsqrencode/downloads/list

Il existe une version en direct (qui peut être sauvegardée en tant que webapp sur les appareils iOS) à l'adresse suivante http://zdez.org/qrenc3.html (enregistrer à la maison, s'ouvre dans safari pour que vous puissiez copier l'image ou utiliser airprint)

Voici le lien vers le code source téléchargeable .

0 votes

Bien, je vais essayer... désolé pour la réponse tardive, mais je viens de voir votre message.

1 votes

@Muhd qrcode.js fonctionne bien dans IE6~8. Il utilise la balise table si le navigateur de l'utilisateur ne supporte pas Canvas. Consultez le site davidshimjs.github.com/qrcodejs

0 votes

Sympa. @tz1- Pouvez-vous le mettre à jour pour inclure une image définie par l'utilisateur intégrée dans le QR comme- goqr.me/qr-code-logo

23voto

webarto Points 11803

Script que vous avez posté fonctionne, sample.html n'est pas analysé comme HTML.

alt text

1 votes

Vous pouvez essayer d'arranger ça d-project.googlecode.com/svn/trunk/misc/qrcode/js/qrcode.js mais j'opterais pour un script côté serveur, que faire si l'utilisateur désactive JS ou autre chose.

0 votes

Il fera partie d'une application intranet, donc le javascript ne sera pas désactivé. J'ai pensé à corriger le code, mais il n'est pas du tout documenté, j'aimerais éviter cela si possible.

0 votes

Pour info, ce JS fonctionne très bien :) debconf11.com/so2.php le fichier sample.html n'est pas analysé comme du HTML :)

19voto

the_archer Points 1551

Il existe une bibliothèque JavaScript simple que j'ai trouvée il y a quelque temps et qui s'appelle QRCode.js .

QRCode.js est une bibliothèque JavaScript multi-navigateurs qui vous permet de générer des QRCodes à la volée, côté client. Elle fait appel à HTMl5 Canvas et à des tableaux pour afficher le QRCode. La bibliothèque elle-même n'a aucune dépendance.

Pour générer un QRCode, il vous suffit d'inclure la bibliothèque JavaScript et de passer comme paramètres à la fonction QRCode, le texte que vous souhaitez encoder en tant que QRCode, la largeur et la hauteur du QRCode que vous souhaitez afficher, ainsi que la couleur d'avant-plan et la couleur d'arrière-plan que vous avez spécifiées.

1 votes

La bibliothèque est sympa, mais si vous voulez que je change le downvote en upvote, merci de faire un lien direct vers la source et non vers la page d'agrégateur pleine de publicité :)

1 votes

C'est ma faute - c'est comme ça que j'ai mis la ressource en signet ! J'ai mis à jour le lien :)

0 votes

Comment se comporte-t-il avec des entrées de tailles différentes ? Pouvez-vous régler la taille du module (taille de chaque "point") ou seulement la taille globale ? C'est mieux si vous pouvez régler la taille du module car cela permet de s'adapter plus facilement à des tailles d'entrée différentes.

8voto

J'ai trouvé un générateur de qrcode basé sur javascript-jquery qui pourrait vous intéresser. C'est opensource et ça marche vraiment. Voici le lien : https://github.com/jeromeetienne/jquery-qrcode

Ce qui est bien avec celui-ci, c'est qu'il est léger et qu'il n'appelle aucun service ou site Web à distance.

1 votes

En interne, cela utilise la même bibliothèque que le post original - ( github.com/jeromeetienne/jquery-qrcode/blob/master/src/ )

0 votes

La version en date de ce commentaire (2016) contient de nombreuses fonctionnalités intéressantes : mode toile/image/div, réglable : couleur, rayon d'angle, plus superposition d'image et de texte personnalisable.

4voto

Enzo Tran Points 2564

Le code QR figurant dans le message initial ne prend en charge que 271 octets au maximum (version 10, taille = 57x57, niveau EC L).

Pour qu'il supporte les spécifications complètes du code QR (version 40, 177x177, 2953 octets), vous devez ajouter plus de valeurs dans sa RS_BLOCK_TABLE.

Voir les autres matrices (version 11-40) ici : http://two.pairlist.net/pipermail/reportlab-users/2010-September/009707.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X