Introducción
Comandos simples para manejar instrucciones esc-pos
<EscPos>
<Init/>
<QrCode>QR Test Text</QrCode>
<Feed lines="1"/>
<BarCode>1234567890</BarCode>
<Feed lines="1"/>
<PDF417>PDF417</PDF417>
<Feed lines="1"/>
<Text fontWidth="3" fontHeight="3">Large Text</Text>
<Text fontWidth="2" fontHeight="2">Medium Text</Text>
<Text fontWidth="1" fontHeight="1">Small Text</Text>
<Feed lines="1"/>
<Text justification="left">Left</Text>
<Text justification="center">Center</Text>
<Text justification="right">Right</Text>
<Feed lines="1"/>
<Text underline="one-dot-thick">Underline</Text>
<Text bold="true">Bold</Text>
<Text inverse="true">Invested</Text>
<Feed lines="1"/>
<Text fontWidth="2" fontHeight="2" justification="left" bold="true" underline="one-dot-thick">
Large Text/Bold/Underline
</Text>
<Feed lines="3" />
<Cut mode="full" />
</EscPos>
Init
Inicializa la impresora. Limpia los datos del búfer de impresión y la reinicia.
Formato
<Init/>
| Parámetro | Valor | Descripción |
|---|---|---|
| width | number | Ancho del ticket en milímetros |
| marginLeft | number | Margen izquierdo en milímetros |
| dpi | "203", "300", "600" | DPI para calcular el ancho y margen del ticket |
Ejemplo
<EscPos>
<Init/>
</EscPos>
Text
Este comando se usa para imprimir texto.
Formato
<Text>Content</Text>
| Parámetro | Valor | Descripción |
|---|---|---|
| font | "A", "B", "C" | nombre de la fuente |
| fontWidth | [1-8] | ancho de carácter |
| fontHeight | [1-8] | alto de carácter |
| justification | "left", "center" or "right" | Define la justificación horizontal |
| underline | "one-dot-thick", "two-dot-thick", "none" | Subrayado |
| lineSpacing | [0-255] | Define el interlineado |
| doubleStrike | true or false | Doble impresión |
| bold | true or false | Negrita |
| inverse | true or false | Invertido |
| lf | true or false | Activa o desactiva el salto de línea al final del texto |
Ejemplo
<EscPos>
<Text
font="A"
fontWidth="1"
fontHeight="1"
justification="left"
underline="none"
lineSpacing="0"
doubleStrike="true"
bold="true"
inverse="true"
lf="true"
>
Hola Mundo
</Text>
</EscPos>
QRCode
Este comando imprime un código QR.
Formato
<QrCode>Content</QrCode>
| Atributos | Valor | Descripción |
|---|---|---|
| model | "1" or "2" | Modelo de QR |
| errorCorrectionLevel | "L", "Q", "H" or "M" | Nivel de corrección de errores QR |
| size | [1-16] | Define el tamaño del módulo en puntos |
| justification | "left", "center" or "right" | Define la justificación horizontal |
Ejemplo
<EscPos>
<QrCode
model="1"
errorCorrectionLevel="M"
size="3"
justification="left"
>
1234567890
</QrCode>
</EscPos>
Resultado
BarCode
Este comando imprime un código de barras.
Formato
<BarCode>Content</BarCode>
| Parámetro | Valor | Descripción |
|---|---|---|
| type | "upca", "upca_b", "upce_a", "upce_b", "jan13_a", "jan13_b", "jan8_a", "jan8_b", "code39_a", "code39_b", "itf_a", "itf_b", "codabar_a", "codabar_b", "code93_default", "code128" | Sistema de código de barras |
| width | [2-6] | Ancho del código |
| height | [1-255] | Alto del código |
| hriPosition | "above-bar-code", "below-bar-code", "above-and-below-bar-code", "not-printed" | Posición de interpretación legible (HRI) |
| hriFont | "A", "B", "C" | Fuente de interpretación legible (HRI) |
| justification | "left", "center" or "right" | Define la justificación horizontal |
Ejemplo
<EscPos>
<BarCode
type="code128"
width="2"
height="40"
hriPosition="below-bar-code"
hriFont="A"
justification="left"
>
1234567890
</BarCode>
</EscPos>
Resultado
PDF417
Este comando se usa para imprimir un código PDF417.
Formato
<PDF417>Content</PDF417>
| Parámetro | Valor | Descripción |
|---|---|---|
| option | "truncated", "standard" | Opción de PDF417 |
| errorCorrectionLevel | [0-8] | Nivel de corrección de PDF417 |
| width | [3-5] | Ancho del código |
| height | [2-8] | Alto del código |
| numberOfColumns | number | Define el número de columnas en la región de datos |
| numberOfRows | number | Define el número de filas |
| justification | "left", "center" or "right" | Define la justificación horizontal |
Ejemplo
<EscPos>
<PDF417
option="standard"
errorCorrectionLevel="1"
width="3"
height="4"
numberOfColumns="0"
numberOfRows="0"
justification="left"
>
1234567890
</PDF417>
</EscPos>
Resultado
Image
Este comando imprime una imagen.
Formato
<Image/>
| Atributos | Valor | Descripción |
|---|---|---|
| uri | "http", "https", "file" | Identificador Uniforme de Recursos |
| base64 | "string" | Contenido de la imagen en formato base64 |
| width | number | Ancho de la imagen |
| height | number | Alto de la imagen |
| justification | "left", "center" or "right" | Define la justificación horizontal |
| filter | "dither" or "monochrome" default:"dither" | Filtro para la imagen |
| threshold | [0-255] default:127 | Umbral para escala de grises |
Ejemplo
<EscPos>
<Image
uri="https://labeldictate.com/text2barcode/docs/static/img/t2b.png"
width="500"
/>
</EscPos>
Resultado
Feed
Imprime los datos del búfer de impresión y avanza n líneas.
Formato
<Feed/>
| Parámetro | Valor | Descripción |
|---|---|---|
| lines | number | número de líneas |
Ejemplo
<EscPos>
<Feed lines="1" />
</EscPos>
Cut
Este comando configura el corte en la impresora.
Formato
<Cut/>
| Parámetro | Valor | Descripción |
|---|---|---|
| mode | "part", "full" | corte de papel |
Ejemplo
<EscPos>
<Cut mode="full" />
</EscPos>
CharacterCodeTable
Selecciona la tabla de caracteres (code page) de la impresora.
Formato
<CharacterCodeTable value="ENUM_NAME"/>
| Valor | Descripción |
|---|---|
| CP437_USA_Standard_Europe | USA / Standard Europe (Code Page 437) |
| Katakana | Katakana (japonés) |
| CP850_Multilingual | Multilingual Latin-1 (Code Page 850) |
| CP860_Portuguese | Portugués (Code Page 860) |
| CP863_Canadian_French | Francés canadiense (Code Page 863) |
| CP865_Nordic | Nórdico (Code Page 865) |
| CP851_Greek | Griego (Code Page 851) |
| CP853_Turkish | Turco (Code Page 853) |
| CP857_Turkish | Turco (Code Page 857) |
| CP737_Greek | Griego (Code Page 737) |
| ISO8859_7_Greek | ISO-8859-7 Griego |
| WPC1252 | Windows Latin-1 (Europa Occidental, CP1252) |
| CP866_Cyrillic_2 | Cirílico #2 (Code Page 866) |
| CP852_Latin2 | Latin-2 (Europa Central, CP852) |
| CP858_Euro | Multilingual + símbolo Euro (CP858) |
| KU42_Thai | Tailandés (KU42) |
| TIS11_Thai | Tailandés (TIS11) |
| TIS18_Thai | Tailandés (TIS18) |
| TCVN_3_1_Vietnamese | Vietnamita (TCVN 3.1) |
| TCVN_3_2_Vietnamese | Vietnamita (TCVN 3.2) |
| PC720_Arabic | Árabe (PC720) |
| WPC775_BalticRim | Báltico (Windows CP775) |
| CP855_Cyrillic | Cirílico (Code Page 855) |
| CP861_Icelandic | Islandés (Code Page 861) |
| CP862_Hebrew | Hebreo (Code Page 862) |
| CP864_Arabic | Árabe (Code Page 864) |
| CP869_Greek | Griego (Code Page 869) |
| ISO8859_2_Latin2 | ISO-8859-2 Latin-2 |
| ISO8859_15_Latin9 | ISO-8859-15 Latin-9 (actualización Euro) |
| CP1098_Farsi | Persa / Farsi (Code Page 1098) |
| CP1118_Lithuanian | Lituano (Code Page 1118) |
| CP1119_Lithuanian | Lituano (Code Page 1119) |
| CP1125_Ukrainian | Ucraniano (Code Page 1125) |
| WCP1250_Latin2 | Windows Latin-2 (CP1250) |
| WCP1251_Cyrillic | Windows Cirílico (CP1251) |
| WCP1253_Greek | Windows Griego (CP1253) |
| WCP1254_Turkish | Windows Turco (CP1254) |
| WCP1255_Hebrew | Windows Hebreo (CP1255) |
| WCP1256_Arabic | Windows Árabe (CP1256) |
| WCP1257_BalticRim | Windows Báltico (CP1257) |
| WCP1258_Vietnamese | Windows Vietnamita (CP1258) |
| KZ_1048_Kazakhstan | Kazajistán (KZ-1048) |
| User_defined_page | Página de caracteres definida por el usuario |
WPC1252.
En hardware que requiera "€" con PC858, usa CP858_Euro.
Ejemplo
<EscPos>
<Init/>
<CharacterCodeTable value="WPC1252"/>
<Text>á é í ó ú ñ Ñ €</Text>
<Feed lines="1"/>
<Cut mode="part" />
</EscPos>
CharacterSetExtensionMode
Configura el modo de extensión del juego de caracteres mediante el comando
FS 2E n internamente. Este nodo solo acepta nombres de enum
definidos en EscPos.CharacterSetExtensionMode.
Formato
<CharacterSetExtensionMode value="ENUM_NAME"/>
| Valor | Descripción |
|---|---|
| NORMAL | Modo estándar sin extensión especial. |
| COMPATIBLE | Modo de compatibilidad con juegos de caracteres ampliados. |
| Modo especial utilizado en firmware chino (impresoras WeChat). |
Ejemplo
<EscPos>
<Init/>
<CharacterCodeTable value="WPC1252"/>
<CharacterSetExtensionMode value="NORMAL"/>
<Text>á é í ó ú ñ Ñ €</Text>
<Feed lines="1"/>
<Cut mode="full" />
</EscPos>
Bytes
Comando para escribir bytes; cada byte debe ir separado por un espacio.
Formato
Cadena con pares hexadecimales separados por espacios
Ejemplo
<EscPos>
<!-- Inicializar impresora - ESC @ -->
<Bytes>1B 40</Bytes> <!-- Hex -->
<!-- Imprimir "Hello World" - datos de texto -->
<Bytes>48 65 6C 6C 6F 20 57 6F 72 6C 64</Bytes> <!-- Hex de "Hello World" -->
<!-- Dos saltos de línea - LF -->
<Bytes>0A 0A</Bytes> <!-- Hex de dos saltos de línea -->
<!-- Cortar papel - GS V 49 -->
<Bytes>1D 56 31</Bytes> <!-- Hex -->
</EscPos>