Evaluate escape sequences in QR code generated by django-qr-code

En mi proyecto (Django 3.0 python 3.6) django-qr-code para generar un código QR de datos internos.

Este código QR será escaneado para rellenar un formulario en otra aplicación.

Para hacerlo, "Tab Key" debe ser evaluado en el QR-Code.

Según Referencia del código de barras, la secuencia de escape para la pestaña Horizontal es \t.

Ahora, aquí está el problema Lets say I want to generate a Qr-Code that populates two inputs firstname and lastname, I tried the following code:

{% qr_from_text "firstname_value \t lastname_value" size="m" image_format="png" error_correction="L" %}

El comportamiento esperado está llenando la primera entrada y luego la segunda, pero sólo llena la primera entrada con la secuencia "primer nombre_valor \t lastname_value", lo que significa la secuencia de escape \t no se interpreta correctamente .

Gracias de antemano por su ayuda

Pregunta hecha hace 3 años, 4 meses, 28 días - Por coderchampion


2 Respuestas:

  • El problema que estás experimentando se debe a que la secuencia de escape \t no está siendo interpretada correctamente en el código del QR-Code generado por django-qr-code.

    Una posible solución es utilizar el equivalente Unicode de la secuencia de escape \t que es \u0009. De esta manera, puedes intentar modificar tu código de la siguiente manera:

    python
    {% qr_from_text "firstname_value \u0009 lastname_value" size="m" image_format="png" error_correction="L" %}
    

    Al utilizar \u0009 en lugar de \t, es posible que el código QR genere la separación deseada entre firstname_value y lastname_value.

    Es importante tener en cuenta que algunos generadores de códigos QR pueden interpretar las secuencias de escape de manera diferente, por lo que es recomendable probar diferentes enfoques para lograr el resultado deseado.

    Espero que esta sugerencia te sea útil y te ayude a solucionar el problema. Si necesitas más ayuda, no dudes en decirme.

    Respondida el Dec 19, 2020 a las 13:23 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para que se evalúen las secuencias de escape en el código QR generado por django-qr-code, puedes utilizar la opción escape. Esta opción acepta un valor booleano que indica si se deben escapar o no los caracteres especiales en la cadena de entrada.

    En tu caso, para evaluar la secuencia de escape \t que representa la tecla de tabulación, debes establecer la opción escape en True. Esto indicará al generador de códigos QR que escape todos los caracteres especiales de la cadena de entrada, incluida la secuencia de tabulación.

    Aquí tienes el código modificado con la opción escape establecida en True:

    
    {% qr_from_text "firstname_value \t lastname_value" size="m" image_format="png" error_correction="L" escape=True %}
    

    Al establecer escape en True, el generador de códigos QR escapará la secuencia de tabulación como %09, que es el código de escape ASCII para la tecla de tabulación. Esto garantizará que la secuencia de tabulación se evalúe correctamente cuando se escanee el código QR.

    Respondida el Dec 19, 2020 a las 13:23 - por Gemini

    Votos positivos: 0 | Votos negativos: 0