Générateur de QR codes en JavaScript (Node.js) avec qrcode et qr-image

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de QR codes sur Node.js : bibliothèques qrcode et qr-image

\n\n

Les QR codes sont devenus une partie intégrante des applications web modernes : des liens vers des sites web et l'authentification jusqu'au transfert de données de contact et d'informations de paiement. Dans l'écosystème Node.js, il existe plusieurs bibliothèques matures qui permettent de générer des QR codes sans API tierces ni éditeurs graphiques lourds. Dans cet article, nous allons examiner en détail les deux plus populaires : qrcode et qr-image. Vous apprendrez comment installer chacune d'elles, quels formats de sortie elles prennent en charge, et vous obtiendrez des exemples de code prêts à l'emploi pour les intégrer dans votre projet.

\n\n

1. Bibliothèque qrcode — un générateur universel

\n\n

qrcode est une bibliothèque puissante prenant en charge JavaScript, TypeScript et même les navigateurs. Elle permet de générer des QR codes aux formats PNG, SVG, canvas et même sous forme de texte simple. Son principal avantage est la configuration détaillée : vous pouvez modifier les couleurs, le niveau de correction d'erreurs, ajouter des logos et gérer les marges.

\n\n

Installation

\n
npm install qrcode
\n\n

Exemple de base : création d'une image PNG

\n
const QRCode = require('qrcode');\n\n// Chaîne simple à encoder\nconst data = 'https://pythonlib.ru';\n\nQRCode.toFile('qrcode.png', data, {\n  color: {\n    dark: '#000000',   // couleur des modules (carrés)\n    light: '#FFFFFF'   // couleur de fond\n  },\n  errorCorrectionLevel: 'H' // correction d'erreurs maximale\n}, function (err) {\n  if (err) throw err;\n  console.log('QR code enregistré sous qrcode.png');\n});
\n\n

Génération SVG (format vectoriel)

\n
const QRCode = require('qrcode');\n\nQRCode.toString('https://pythonlib.ru', {\n  type: 'svg',\n  color: {\n    dark: '#2c3e50',\n    light: '#ecf0f1'\n  }\n}, function (err, svgString) {\n  if (err) throw err;\n  console.log(svgString); // affichage du balisage SVG dans la console\n});
\n\n

Génération en buffer (pour envoi via HTTP)

\n
const QRCode = require('qrcode');\n\nQRCode.toBuffer('https://pythonlib.ru', {\n  type: 'png',\n  width: 400,\n  margin: 2\n}, function (err, buffer) {\n  if (err) throw err;\n  // buffer est un objet Buffer qui peut être envoyé comme réponse HTTP\n  // res.setHeader('Content-Type', 'image/png');\n  // res.send(buffer);\n});
\n\n

2. Bibliothèque qr-image — une alternative légère

\n\n

qr-image est une bibliothèque minimaliste sans dépendances superflues. Elle est conçue pour une génération rapide de PNG, SVG, EPS et même PDF (via l'installation d'un module supplémentaire). Si vous n'avez pas besoin de configurations complexes de couleurs et de logos, qr-image sera un excellent choix.

\n\n

Installation

\n
npm install qr-image
\n\n

Exemple : création d'une image PNG

\n
const qr = require('qr-image');\nconst fs = require('fs');\n\nconst data = 'https://pythonlib.ru';\nconst qr_png = qr.image(data, { type: 'png', size: 10 });\nqr_png.pipe(fs.createWriteStream('qr-image.png'));\n\nconsole.log('QR code enregistré sous qr-image.png');
\n\n

Génération SVG

\n
const qr = require('qr-image');\nconst fs = require('fs');\n\nconst data = 'https://pythonlib.ru';\nconst qr_svg = qr.image(data, { type: 'svg', size: 10 });\nqr_svg.pipe(fs.createWriteStream('qr-image.svg'));\n\nconsole.log('QR code enregistré sous qr-image.svg');
\n\n

Obtention d'une chaîne SVG sans enregistrement dans un fichier

\n
const qr = require('qr-image');\n\nconst data = 'https://pythonlib.ru';\nconst svgString = qr.imageSync(data, { type: 'svg' });\nconsole.log(svgString); // balisage SVG prêt
\n\n

3. Comparaison des bibliothèques

\n\n

Recommendations