---
title: Generando códigos QR desde la línea de comandos
tags: ['qr','generacion qt','consola','command line tool']
categories: ['linux', 'command line tool']
date: 2020-12-13T00:52:57-03:00
---

El código QR es capaz de contener mucha información **más que un código de barras**,
y es por su diseño, el escáner puede determinar en qué dirección se encuentra el
código QR y orientar la imágen automáticamente al leerlo y decodificarlo.

**¿Por qué no usar un generador de QR online?** Todos pueden
a retener y guardar la información.

Si vas a crear códigos QR con información personal
en ellos, como detalles de contacto o detalles de la conexión WiFi, no 
es recomendable usar estos servicios.

**Todos tus datos están en tu control si usás un programa en la línea de comandos
como qrencode**. También tenés la ventaja de poder crear scripts y alias para crear códigos QR.

### Usos de los códigos QR.

* Mostrar texto.
* Navegar a un punto en el mapa.
* Hacer una llamada.
* Enviar un mensaje SMS.
* Enviar un correo electrónico.
* Abrir una URL.
* Agregar un contacto.
* Agregar un evento a tu calendario.
* Conectarte a una red WiFi.

### Instalando qrencode
**Ubuntu/Debian/Linux Mint**
```bash
sudo apt-get install qrencode
```
**Instalando qrencode en ArchLinux/Manjaro/Artix**
```bash
sudo pacman -S qrencode
```

#### Usando qrencode

* -s 6: Esto establece el tamaño de los bloques en el patrón cuadriculado QR. El número
que proporciona establece el tamaño de píxeles.
* -l H: Esto establece el nivel de correción de errores. Las opciones que podemos usar
son "L" para bajo, "M" para medio y "Q" para alto.
* -o "text.png": La opción *output* te permite establecer el nombre de la imágen generada.

El texto a codificar se pone a lo último. Ejemplo: 
```bash
qrencode -s 6 -l H -o "text.png" "Esto es una prueba 123"
```

Esto va a generar una imágen llamada text.png y cuando esta se escanee se va a mostrar
el texto escrito anteriormente.

#### Agregando color

Las opciones \-\-foreground y \-\-background te permiten establecer colores 
para los códigos QR. Ejemplo:
```bash
qrencode -s 6 -l H --foregound="3599FE" --background="FFFFFF" -o "blue.png" "Este código QR va a ser azul y blanco."
```

#### Guardando una ubicación en un código QR.

```bash
qrencode -s 6 -l H -o "geo.png" "geo:51.185013,-1.859105"
```

#### Guardando un número de teléfono en un código QR.
En vez de usar "(123) 456-7890" es recomendable usar "1234567890", sin espacios ni guiones.

```bash
qrencode -s 6 -l H -o "phone.png" "tel:5555555555"
```

#### Enviando un correo desde un código QR.

```bash
qrencode -s 6 -l H -o "email.png" "mailto:imlauerandres@gmail.com?subject=qrencode&body=Las herramientas de línea de comandos están copadas."
```

#### Generando un código QR de una URL.

```bash
qrencode -s 6 -l H -o "URL.png" "https://aimlauer.github.io"
```

Lo podés usar con una URL de un video de YouTube por ejemplo, escaneando el código 
te va a abrir ese video, funciona de la misma forma que una URL cualquiera.

#### Enviando un mensaje SMS o un MMS desde un código QR.
```bash
qrencode -s 6 -l H -o "SMS.png" "smsto:5555555555,Este es el texto de un mensaje SMS."
```

#### Contactarse a una red WiFi a través de un código QR.
La palabra clave es WIFI, seguida de dos puntos ":" y los siguientes parámetros:
* T: El tipo de seguridad. Puede ser WEP, WPA, WPA2. La mayoría son WPA2.
* S: El nombre **completo** de la red WiFi (SSID)
* P: La contraseña de la red WiFi. Observe que hay dos puntos entre la "P" y la contraseña
y dos punto y comas ";;" después de la contraseña.

```bash
qrencode -s 6 -l H -o "wifi.png" "WIFI:T:<Tipo de Seguridad>;S:<SSID>;P:<Clave>;;"
```

Ejemplo:

```bash
qrencode -s 6 -l H -o "wifi.png" "WIFI:T:WPA2;S:Fibertel WiFi145 2.4GHz;P:123465789;;"
```

#### Agregando un contacto con un código QR.

Los datos del contacto se tiene que escribir en formato vCard.
Es mejor escribir los datos en un archivo de texto y después pasarselo a QR.

Copia este formato y pegalo en un archivo llamado "contacto.txt" y editalo con tus datos:

```bash
BEGIN:VCARD
VERSION:2.1
N:McKay,D
FN:Dave McKay
TEL;TYPE=voice,cell,pref:5555555555
TITLE:Journalist
ORG:CloudSavvyIT
EMAIL:dave@madeupdomain.com
URL:www.cloudsavvyit.com
END:VCARD
```

Luego generamos el código QR con:
```
qrencode -s 6 -l H -o "contacto.png" < contacto.txt
```

#### Agregando un evento de calendario con un código QR.

Es similar a agregar un contacto.

Copia este formato y pegalo en un archivo llamado "contacto.txt" y editalo con tus datos:

```bash
BEGIN:VEVENT
SUMMARY:Works Picnic
DESCRIPTION:Fun, food, and games in the sun
LOCATION:Eastwood Park
DTSTART:20210710T103000
DTEND:20210710T154500
END:VEVENT
```

Luego generamos el código QR así:

```bash
qrencode -s 6 -l H -o "evento.png" < evento.txt
```

Traducido y resumido de: [cloudsavvyit](https://www.cloudsavvyit.com/8382/how-to-create-qr-codes-from-the-linux-command-line/)
