QR-Code-Generierung auf Node.js: Bibliotheken qrcode und qr-image
\n\nQR-Codes sind zu einem festen Bestandteil moderner Webanwendungen geworden: von Links zu Websites und Authentifizierung bis hin zur Übertragung von Kontaktdaten und Zahlungsinformationen. Im Node.js-Ökosystem gibt es mehrere ausgereifte Bibliotheken, mit denen Sie QR-Codes ohne externe APIs und schwere Grafikeditoren generieren können. In diesem Artikel betrachten wir die beiden beliebtesten im Detail: qrcode und qr-image. Sie erfahren, wie Sie jede installieren, welche Ausgabeformate sie unterstützen, und erhalten fertige Codebeispiele für die Integration in Ihr Projekt.
1. Bibliothek qrcode — universeller Generator
\n\nqrcode ist eine leistungsstarke Bibliothek mit Unterstützung für JavaScript, TypeScript und sogar Browser. Sie ermöglicht die Generierung von QR-Codes in den Formaten PNG, SVG, canvas und sogar als einfachen Text. Der Hauptvorteil ist die detaillierte Anpassung: Sie können Farben ändern, die Fehlerkorrekturstufe einstellen, Logos hinzufügen und Ränder verwalten.
\n\nInstallation
\nnpm install qrcode\n\nBasisbeispiel: Erstellen eines PNG-Bildes
\nconst QRCode = require('qrcode');\n\n// Einfacher zu codierender String\nconst data = 'https://pythonlib.ru';\n\nQRCode.toFile('qrcode.png', data, {\n color: {\n dark: '#000000', // Farbe der Module (Quadrate)\n light: '#FFFFFF' // Hintergrundfarbe\n },\n errorCorrectionLevel: 'H' // maximale Fehlerkorrektur\n}, function (err) {\n if (err) throw err;\n console.log('QR-Code gespeichert als qrcode.png');\n});\n\nSVG-Generierung (Vektorformat)
\nconst 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); // SVG-Markup in der Konsole ausgeben\n});\n\nGenerierung in einen Buffer (zum Senden über HTTP)
\nconst 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 ist ein Buffer-Objekt, das als HTTP-Antwort gesendet werden kann\n // res.setHeader('Content-Type', 'image/png');\n // res.send(buffer);\n});\n\n2. Bibliothek qr-image — leichte Alternative
\n\nqr-image ist eine minimalistische Bibliothek ohne überflüssige Abhängigkeiten. Sie ist auf die schnelle Generierung von PNG, SVG, EPS und sogar PDF (durch Installation eines zusätzlichen Moduls) ausgerichtet. Wenn Sie keine komplexen Farbeinstellungen und Logos benötigen, ist qr-image eine ausgezeichnete Wahl.
Installation
\nnpm install qr-image\n\nBeispiel: Erstellen eines PNG-Bildes
\nconst 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 gespeichert als qr-image.png');\n\nSVG-Generierung
\nconst 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 gespeichert als qr-image.svg');\n\nSVG-String ohne Dateispeicherung abrufen
\nconst qr = require('qr-image');\n\nconst data = 'https://pythonlib.ru';\nconst svgString = qr.imageSync(data, { type: 'svg' });\nconsole.log(svgString); // fertiges SVG-Markup\n\n3. Vergleich der Bibliotheken
\n\n- \n
- qrcode — mehr Einstellungen (Farbe, Ränder, Fehlerkorrektur, Logo), Unterstützung für TypeScript, Promises und async/await. Besser geeignet für Produktionsprojekte, bei denen benutzerdefinierte Farben und hohe Zuverlässigkeit erforderlich sind.
Auch in der Bibliothek
Arbeiten mit Bildern in Rust: Überblick über die Bibliotheken image, fast_image_resize und andere
PDF-Generierung in Java: Überblick über die besten Bibliotheken (iText, Apache PDFBox, OpenPDF)
GraphQL in Go: Vollständiger Leitfaden zur Bibliothek gqlgen
Datenvalidierung in Swift: Die Bibliothek Validator