Código QR ZPL — Guía completa del comando ^BQ
Todo lo que necesitas para generar códigos QR en ZPL: sintaxis ^BQ, parámetros, corrección de errores, tamaño y ejemplos copy-paste — gratis, sin registro.
TL;DR
Los códigos QR en ZPL se generan con el comando ^BQ. Sintaxis básica: ^FOx,y ^BQ orientación,modelo,magnificación ^FD <ECC><modo>,datos ^FS. Usa siempre modelo 2 (el modelo 1 es legado). El payload de ^FD empieza con dos letras: la primera es el nivel de corrección de errores (H, Q, M, L) y la segunda es el modo de entrada (A = codificación automática, M = segmentos manuales). HA, es el default seguro para envíos/exterior (recuperación H + automático). La magnificación (1-10) controla el tamaño del módulo — empieza con 5 en una etiqueta 4×6 pulgadas a 203 dpi. Añade ^CI28 dentro del formato para habilitar UTF-8 en el payload.
Prueba nuestras herramientas ZPL gratuitas ahora
Gratis, funciona en el navegador — Resultados instantáneos
¿Qué es un código QR en ZPL?
Un código QR en ZPL es un código de barras bidimensional generado por el comando ^BQ — una de las simbologías más potentes que soportan las impresoras Zebra. Un solo QR puede almacenar hasta 4,296 caracteres alfanuméricos o 7,089 dígitos numéricos, soporta corrección Reed–Solomon (sigue siendo legible aunque esté dañado o sucio parcialmente) y se lee con cualquier cámara de smartphone o escáner industrial. Por eso es la elección universal para URLs de tracking, tarjetas vCard, identificadores GS1, credenciales WiFi, tickets de transporte y cualquier payload que supere los 20 caracteres óptimos para 1D.
En ZPL, el QR vive dentro de un formato ^XA..^XZ como cualquier otro campo. Lo posicionas con ^FO o ^FT, lo declaras con ^BQ y en ^FD antepones dos caracteres antes de la coma y los datos: el primero es el nivel de corrección de errores (H, Q, M o L) y el segundo es el modo de entrada (A = selección de codificación automática, M = segmentos manuales). Para la mayoría de los casos de producción escribes ^FDHA,datos^FS — alta recuperación, codificación automática. No hay paso ^BY separado porque el tamaño del módulo se controla directamente con el parámetro de magnificación — valores típicos son 4 a 8 en una etiqueta 4×6 pulgadas a 203 dpi. El parámetro de modelo siempre debe ser 2 (modelo 1 es legado y no se recomienda para diseños nuevos).
Sintaxis del comando ^BQ
La declaración mínima de QR toma 3 parámetros después de ^BQ — orientación, modelo y magnificación. El nivel de corrección de errores y el modo de entrada van dentro de ^FD como un prefijo de 2 caracteres seguido de coma (ver Formato del Field Data abajo). Estructura canónica:
^XA
^CI28 ; UTF-8 para datos internacionales
^FO50,50 ; Posición X=50, Y=50
^BQ orientación,modelo,magnificación ; orientación N/R/I/B, modelo 2, magnif. 1-10
^FD <ECC><modo>,<payload>^FS ; ECC = H/Q/M/L, modo = A (auto) o M (manual)
^XZ
; Línea típica de producción: alta recuperación + codificación automática
; ^FDHA,https://zplpdf.com^FSParámetros de ^BQ
| Parámetro | Descripción | Valores válidos | Default |
|---|---|---|---|
| orientación | Rotación del símbolo QR en la etiqueta. Usa N para etiquetas de envío, R cuando apilas contenido verticalmente. | N, R, I, B | N |
| modelo | Modelo de QR. Usa siempre 2 en diseños nuevos. El modelo 1 es la especificación legado de 1994 y los escáneres modernos solo apuntan al modelo 2. | 1, 2 | 2 |
| magnificación | Multiplicador del módulo (dot). Cada unidad añade ~5 dots por módulo a 203 dpi. Valor mayor = QR más grande y más fácil de escanear, pero ocupa más espacio. | 1–10 | según dpi |
| override ECC | Override opcional del nivel de corrección de errores en el propio comando ^BQ. En la práctica este slot se deja vacío y el nivel se elige con el primer carácter de ^FD (H/Q/M/L) — ver Formato del Field Data. | H, Q, M, L | vacío (usa prefijo ^FD) |
| máscara | Máscara opcional que mejora la legibilidad del escáner cuando el payload produce regiones uniformes. Casi nunca necesita ajustarse manualmente. | 0–7 | 7 |
Formato del Field Data: <ECC><modo>,datos
El payload de ^FD para ^BQ siempre empieza con dos caracteres antes de la coma: el primero es el nivel de corrección de errores (H, Q, M o L) y el segundo es el modo de entrada (A para selección de codificación automática, M para segmentos manuales donde etiquetas cada segmento con prefijos N/A/B/K). Las cuatro tarjetas abajo muestran las combinaciones que usarás en producción. Elegir la correcta es la decisión más importante — la mayoría de bugs en producción vienen de leer mal estos dos caracteres.
Alta recuperación + Auto (default recomendado)
HA,~30% recuperación de daño y selección de codificación automática. La opción más segura para envíos, freight y etiquetas exteriores donde el QR pueda rozarse.
^FO50,50^BQN,2,6^FDHA,https://zplpdf.com/track/A-7782^FSRecuperación media + Auto (uso general)
MA,~15% recuperación — el mejor balance entre capacidad y recuperabilidad para etiquetas interiores limpias (oficina, retail, e-commerce).
^FO50,50^BQN,2,6^FDMA,SKU:COF-ORG-250^FSRecuperación baja + Auto (máxima capacidad)
LA,~7% recuperación, la codificación más densa. Úsala solo cuando el payload es largo y la etiqueta se imprime en interior a alta resolución.
^FO50,50^BQN,2,6^FDLA,<url-larga-con-muchos-params>^FSAlta recuperación + Modo manual (avanzado)
HM,El modo manual te permite etiquetar la codificación por segmento con prefijos N (numérico), A (alfanumérico), B (byte) o K (Kanji) dentro de los datos. Úsalo solo cuando el modo automático produce una codificación subóptima.
^FO50,50^BQN,2,6^FDHM,N0123456789AABC1234^FSNiveles de corrección de errores (H / Q / M / L)
La corrección Reed–Solomon permite que el QR siga siendo legible aunque parte del símbolo esté ausente o dañada. El compromiso es la capacidad: niveles más altos añaden más redundancia y dejan menos espacio para datos. El nivel se selecciona con el primer carácter del prefijo en ^FD — HA para H + auto, MA para M + auto, etc. No hay default implícito — siempre declaras el nivel explícitamente. Para envíos y exterior, HA es el punto de partida recomendado; para etiquetas interiores limpias MA ahorra espacio.
| Nivel | Recuperación | Cuándo usarlo |
|---|---|---|
| L | ~7% | Capacidad máxima, etiquetas interiores limpias, posters de marketing con impresión de alta resolución. |
| M | ~15% | Default genérico. Buen balance para oficina, retail, etiquetas e-commerce. |
| Q | ~25% | Etiquetas térmicas expuestas a desgaste (almacén, freight) y ambientes ligeramente sucios. |
| H | ~30% | Etiquetas exteriores, cadena de frío, donde el QR pueda rayarse, mancharse o romperse parcialmente. Se selecciona con el prefijo HA, |
Tamaño y magnificación
El tamaño del QR en ZPL se controla con el parámetro de magnificación (1–10) — no hay paso ^BY para QR. Cada unidad multiplica el módulo (el cuadradito más pequeño del QR) por 4 dots a 203 dpi y 6 dots a 300 dpi. El tamaño total del símbolo depende de la magnificación y de la longitud del payload (más datos → más módulos → código más grande).
- Impresora 203 dpi + magnificación 5 ≈ 200×200 dots ≈ 25×25 mm con una URL de 50 chars.
- Impresora 203 dpi + magnificación 8 ≈ 320×320 dots ≈ 40×40 mm — recomendado para escaneo exterior a >50 cm.
- Impresora 300 dpi + magnificación 5 ≈ 300×300 dots ≈ 25×25 mm con una URL de 50 chars.
- Los smartphones leen magnificación 3 fiable si la URL es corta (≤25 chars) y la etiqueta está a <20 cm de la cámara.
- Prueba siempre con el escáner más lento esperado; subir la magnificación en 1 es más barato que escaneos fallidos en campo.
- Módulos menores a 0.4 mm dejan de ser legibles en escáneres de gama baja — mantén la magnificación ≥4 en impresoras de 203 dpi.
Ejemplos QR copy-paste
Cada ejemplo es un bloque ^XA..^XZ completo. Pégalo en el visor ZPLPDF para ver exactamente qué imprimirá tu impresora.
URL de tracking con alta recuperación (el más común)
El caso 90%: un QR que abre una URL de tracking cuando se escanea con cualquier cámara de smartphone. HA, ofrece alta corrección de errores (~30% recuperación) más selección de codificación automática — el default seguro para cualquier etiqueta de envío o e-commerce.
^XA
^CI28
^FO50,50
^BQN,2,6
^FDHA,https://zplpdf.com/track/A-7782^FS
^XZTarjeta vCard
Guarda un contacto completo (nombre, teléfono, email, organización) para que al escanear se añada a la agenda del smartphone. Usa MA, (recuperación media + auto) y magnificación 7 para mantener legibles ~250 caracteres.
^XA
^CI28
^FO50,50
^BQN,2,7
^FDMA,BEGIN:VCARD\nVERSION:3.0\nN:Pérez;Juana\nFN:Juana Pérez\nORG:ZPLPDF Inc.\nTEL:+34-555-0142\nEMAIL:juana@zplpdf.com\nEND:VCARD^FS
^XZIdentificadores GS1 (farma)
Codifica (01) GTIN + (17) vencimiento + (10) lote en un único QR siguiendo GS1 Digital Link. Habitual en trazabilidad farmacéutica — HA, da la alta recuperación que el estándar espera.
^XA
^CI28
^FO50,50
^BQN,2,6
^FDHA,https://id.gs1.org/01/07640123456789/17/270930/10/B25C-0481^FS
^XZCredenciales WiFi (Android e iOS)
Al escanear el QR el dispositivo se conecta automáticamente a la red WiFi. Útil en packaging o badges de evento. MA, (medio + auto) basta para etiquetas interiores limpias.
^XA
^CI28
^FO50,50
^BQN,2,6
^FDMA,WIFI:T:WPA;S:Office-Guest;P:Bienvenido2026;;^FS
^XZEtiqueta exterior / cadena de frío de alta recuperación
Cuando la etiqueta pueda rayarse, mancharse o romperse parcialmente (cadena de frío, freight, logística agresiva), sube la magnificación y mantén el prefijo HA, para que el QR sobreviva al daño parcial.
^XA
^CI28
^FO50,50
^BQN,2,8
^FDHA,FREIGHT-A-7782^FS
^XZCaracteres internacionales (UTF-8)
Los caracteres no ASCII (中文, ñ, ç, é) requieren ^CI28 dentro del formato para que la impresora trate el payload como UTF-8. MA, (medio + auto) procesa los segmentos byte de forma transparente; sin ^CI28 aparecerán ? en los datos.
^XA
^CI28
^FO50,50
^BQN,2,6
^FDMA,Pedido cliente #A-7782\nNombre: Juana Pérez^FS
^XZErrores comunes con QR y cómo corregirlos
El QR imprime pero ningún escáner lo lee.
→ Magnificación demasiado baja para el payload — los módulos quedan más pequeños que el mínimo del escáner.
✓ Aumenta la magnificación en 2 (ej. 5 → 7) y verifica que el módulo mida al menos 0.4 mm de ancho.
El escáner lee pero los caracteres UTF-8 aparecen como ?.
→ Falta ^CI28 antes de ^BQ — la codepage por defecto elimina bytes no ASCII.
✓ Añade ^CI28 justo después de ^XA. El modo de entrada automático HA,/MA, gestionará entonces los bytes UTF-8 correctamente.
El QR se ve cuadrado y las cámaras de smartphone lo rechazan.
→ Se usó el modelo 1 (legado) en lugar del 2 en ^BQ.
✓ Usa ^BQN,2,<mag> — siempre 2 en el slot de modelo en diseños nuevos.
URL larga imprime pero falla al escanear etiquetas parcialmente gastadas.
→ Se eligió un nivel ECC bajo (LA, o MA,), por lo que el QR no resiste al daño parcial.
✓ Usa HA, (recuperación alta, ~30% tolerancia al daño) en cualquier etiqueta que pueda terminar rozada en campo.
Exceso de espacio blanco alrededor del QR fuerza etiquetas demasiado grandes.
→ Zona de silencio demasiado amplia porque ^FO explícito hereda ^BY de un barcode 1D anterior.
✓ Resetea ^BY entre simbologías o posiciona el QR con su propio ^FO fuera de cualquier bloque ^BY previo.
El QR codifica bien en el visor pero falla en un escáner Datalogic / Honeywell.
→ Los escáneres industriales requieren tamaño mínimo de módulo y zona de silencio de 4 módulos.
✓ Aumenta la magnificación a ≥6 y deja al menos 4 módulos de margen alrededor del símbolo.
Código QR ZPL — Preguntas frecuentes
¿Cuál es el comando ZPL para código QR?
¿Qué significan los dos caracteres antes de la coma en ^FD (HA, MA, QA…)?
¿Cómo cambio el tamaño de un código QR en ZPL?
¿Qué nivel de corrección de errores debo usar?
¿Por qué mi QR no funciona con caracteres internacionales?
¿Puede un código QR en ZPL guardar una vCard o credenciales WiFi?
¿Cuál es el payload máximo de un código QR ZPL?
Modelo QR 1 vs modelo 2 — ¿cuál usa ZPL?
¿Puedo probar un QR ZPL sin impresora?
¿El código QR está soportado en todos los modelos Zebra?
Renderiza tu QR ahora
Pega cualquier ejemplo de esta página en nuestro visor ZPL gratuito online para ver el QR renderizado exactamente como lo producirá tu impresora.