qr-pure - v2.1.0
    Preparing search index...

    Class NumericEncoder

    Codificador de modo Numérico para códigos QR.

    El modo Numérico codifica solo dígitos (0-9) de forma muy eficiente: aproximadamente 3.33 bits por carácter.

    Los dígitos se agrupan en bloques de 3 y cada grupo se codifica como un número de 10 bits. Grupos de 2 usan 7 bits, y dígitos sueltos usan 4 bits.

    Comparación de eficiencia:

    • Numérico: 3.33 bits/carácter (óptimo para dígitos)
    • Alfanumérico: 5.5 bits/carácter
    • Byte: 8 bits/carácter
    const encoder = new NumericEncoder();

    // Verificar si puede codificar
    encoder.canEncode('12345'); // true
    encoder.canEncode('123A'); // false

    // Codificar dígitos
    const bits = encoder.encode('8675309');
    // Grupos: '867' → 1101100011 (10 bits)
    // '530' → 1000010010 (10 bits)
    // '9' → 1001 (4 bits)

    // Segmento completo
    const segment = encoder.encodeSegment('123', 1);
    // '0001' + '0000001111' + '0001111011'

    Hierarchy

    • BaseEncoder
      • NumericEncoder
    Index

    Constructors

    Properties

    mode: EncodingMode = "numeric"

    Modo de codificación.

    modeIndicator: string = MODE_INDICATORS.numeric

    Indicador de modo Numérico: '0001'.

    Methods

    • Verifica si el texto puede ser codificado en modo Numérico.

      Parameters

      • text: string

        Texto a verificar

      Returns boolean

      true si el texto solo contiene dígitos

      Solo acepta dígitos del 0 al 9.

      const encoder = new NumericEncoder();
      encoder.canEncode('12345'); // true
      encoder.canEncode('0'); // true
      encoder.canEncode('123.45'); // false (contiene punto)
      encoder.canEncode('12 34'); // false (contiene espacio)
      encoder.canEncode('12A34'); // false (contiene letra)
      encoder.canEncode(''); // false (vacío)
    • Codifica dígitos en modo Numérico.

      Parameters

      • text: string

        Cadena de dígitos a codificar

      Returns string

      Cadena de bits codificados

      Agrupa los dígitos en bloques de 3 y los codifica:

      • 3 dígitos → 10 bits (0-999)
      • 2 dígitos → 7 bits (0-99)
      • 1 dígito → 4 bits (0-9)

      Error si el texto contiene caracteres no numéricos

      const encoder = new NumericEncoder();
      encoder.encode('123'); // '0001111011' (123 en 10 bits)
      encoder.encode('12'); // '0001100' (12 en 7 bits)
      encoder.encode('1'); // '0001' (1 en 4 bits)
      encoder.encode('12345'); // '0001111011' + '0101101' (123, 45)
      encoder.encode('1234567'); // '0001111011' + '1000101100' + '0111' (123, 456, 7)
    • Genera el segmento completo de datos codificados.

      Parameters

      • text: string

        Texto a codificar

      • version: QRVersion

        Versión del QR

      Returns string

      Cadena de bits completa del segmento

      Incluye: modo + CCI + datos codificados

      const segment = encoder.encodeSegment('Hi', 1);
      // '0100' + '00000010' + '01001000 01101001'
    • Obtiene el conteo de caracteres para el CCI.

      Parameters

      • text: string

        Texto a contar

      Returns number

      Número de caracteres

      Por defecto es la longitud del texto. Puede ser sobrescrito para modos que cuentan diferente (ej: Kanji).

    • Obtiene el número de bits para el Character Count Indicator.

      Parameters

      Returns number

      Número de bits para el CCI

      Para modo Numérico:

      • Versiones 1-9: 10 bits (hasta 1023 caracteres)
      • Versiones 10-26: 12 bits (hasta 4095 caracteres)
      • Versiones 27-40: 14 bits (hasta 16383 caracteres)
      const encoder = new NumericEncoder();
      encoder.getCharacterCountBits(1); // 10
      encoder.getCharacterCountBits(9); // 10
      encoder.getCharacterCountBits(10); // 12
      encoder.getCharacterCountBits(26); // 12
      encoder.getCharacterCountBits(27); // 14
      encoder.getCharacterCountBits(40); // 14
    • Genera el Character Count Indicator.

      Parameters

      • text: string

        Texto a codificar

      • version: QRVersion

        Versión del QR

      Returns string

      Cadena de bits del CCI

      encoder.getCharacterCountIndicator('Hello', 1); // '00000101' (5 en 8 bits)