Hopp til hovedinnhold
Meny

lmfaole.party / designsystem / funksjoner / QR-kodegenerator

  • Forside
  • Turer
  • Økonomi
  • Slides
  • generateQrSvg – QR-kodegenerator / QR code generator

    Om funksjonen

    Formål

    Genererer QR-koder fra tekst uten eksternt bibliotek: egen koding, feilretting og maskevalg etter ISO/IEC 18004. Funksjonen er domenenøytral for alle steder som trenger en skannbar kode for tekst eller URL.

    Egner seg for

    • Generering av ferdig SVG for korte URL-er og andre tekststrenger, eller generateQrMatrix(...) når samme kode skal rendres på annen måte.

    Egner seg ikke for

    • Ikke for valgbar feilretting, alfanumerisk eller kanji-optimalisering, egne farger/logoer eller svært lange payloads. Implementasjonen er avgrenset til byte-modus, feilrettingsnivå M og data som får plass i versjon 1-40.

    Signatur(er)

    generateQrMatrix(text: string) => boolean[][]

    Parameter Type Beskrivelse
    textstringTeksten som skal kodes inn i QR-koden.

    Returnerer: Den rå modulmatrisen (true/false per rute) for text, uten presentasjonslogikk. Velger automatisk minste QR-versjon som har plass, bruker byte-modus og feilrettingsnivå M, og velger maskemønsteret med lavest total straff blant de 8 standardmaskene.

    Kaster: RangeError - Hvis teksten overstiger 65535 byte i byte-modus.

    Kaster: RangeError - Hvis teksten er for lang til å få plass i QR-versjon 40 med feilrettingsnivå M.

    import {generateQrMatrix} from "/designsystem/funksjoner/generering/qr-kode/qr-kode.js";
    
    const matrix = generateQrMatrix("https://eksempel.no/rom/AB12");

    generateQrSvg(text: string) => string

    Parameter Type Beskrivelse
    textstringTeksten som skal kodes inn i QR-koden.

    Returnerer: En komplett SVG-markup-streng for text, klar til å settes inn med innerHTML eller insertAdjacentHTML.

    Kaster: RangeError - Hvis teksten overstiger 65535 byte i byte-modus.

    Kaster: RangeError - Hvis teksten er for lang til å få plass i QR-versjon 40 med feilrettingsnivå M.

    import {generateQrSvg} from "/designsystem/funksjoner/generering/qr-kode/qr-kode.js";
    
    container.innerHTML = generateQrSvg("https://eksempel.no/rom/AB12");
    // Intern struktur:
    // - qr-kode.js - offentlig API (`generateQrMatrix`/`generateQrSvg`), orkestrerer de andre modulene.
    // - matrise.js - modul-/finder-/juster-/versjonsmønstre, selve matrise-oppsettet og databit-plassering.
    // - reed-solomon.js - feilrettingskodeord, Galois-felt-aritmetikk.
    // - masking.js - de 8 maskemønstrene + straffberegning.
    // - bit-buffer.js - små bit-nivå-hjelpere (`addBits`/`getBit`).

    Prøv selv

    Rediger uttrykket under - returverdien oppdateres live.

    Tilgjengelighet

    Ikke relevant: ren logikk uten DOM eller UI.

    Referanser

    Se også:

    Brukes av:

    • slides/komponenter/slide-nav/relay.js (QR-kode for presenter-lenken)

    Avhengigheter: ./bit-buffer.js, ./reed-solomon.js, ./matrise.js, ./masking.js