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ámetroValorDescripción
widthnumberAncho del ticket en milímetros
marginLeftnumberMargen 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ámetroValorDescripció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
doubleStriketrue or falseDoble impresión
boldtrue or falseNegrita
inversetrue or falseInvertido
lftrue or falseActiva 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>

AtributosValorDescripció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ámetroValorDescripció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ámetroValorDescripció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
numberOfColumnsnumberDefine el número de columnas en la región de datos
numberOfRowsnumberDefine 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/>

AtributosValorDescripción
uri"http", "https", "file"Identificador Uniforme de Recursos
base64"string"Contenido de la imagen en formato base64
widthnumberAncho de la imagen
heightnumberAlto 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:127Umbral 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ámetroValorDescripción
linesnumbernúmero de líneas

Ejemplo

<EscPos>
  <Feed lines="1" />
</EscPos>

Cut

Este comando configura el corte en la impresora.

Formato

<Cut/>

ParámetroValorDescripció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"/>

ValorDescripción
CP437_USA_Standard_EuropeUSA / Standard Europe (Code Page 437)
KatakanaKatakana (japonés)
CP850_MultilingualMultilingual Latin-1 (Code Page 850)
CP860_PortuguesePortugués (Code Page 860)
CP863_Canadian_FrenchFrancés canadiense (Code Page 863)
CP865_NordicNórdico (Code Page 865)
CP851_GreekGriego (Code Page 851)
CP853_TurkishTurco (Code Page 853)
CP857_TurkishTurco (Code Page 857)
CP737_GreekGriego (Code Page 737)
ISO8859_7_GreekISO-8859-7 Griego
WPC1252Windows Latin-1 (Europa Occidental, CP1252)
CP866_Cyrillic_2Cirílico #2 (Code Page 866)
CP852_Latin2Latin-2 (Europa Central, CP852)
CP858_EuroMultilingual + símbolo Euro (CP858)
KU42_ThaiTailandés (KU42)
TIS11_ThaiTailandés (TIS11)
TIS18_ThaiTailandés (TIS18)
TCVN_3_1_VietnameseVietnamita (TCVN 3.1)
TCVN_3_2_VietnameseVietnamita (TCVN 3.2)
PC720_ArabicÁrabe (PC720)
WPC775_BalticRimBáltico (Windows CP775)
CP855_CyrillicCirílico (Code Page 855)
CP861_IcelandicIslandés (Code Page 861)
CP862_HebrewHebreo (Code Page 862)
CP864_ArabicÁrabe (Code Page 864)
CP869_GreekGriego (Code Page 869)
ISO8859_2_Latin2ISO-8859-2 Latin-2
ISO8859_15_Latin9ISO-8859-15 Latin-9 (actualización Euro)
CP1098_FarsiPersa / Farsi (Code Page 1098)
CP1118_LithuanianLituano (Code Page 1118)
CP1119_LithuanianLituano (Code Page 1119)
CP1125_UkrainianUcraniano (Code Page 1125)
WCP1250_Latin2Windows Latin-2 (CP1250)
WCP1251_CyrillicWindows Cirílico (CP1251)
WCP1253_GreekWindows Griego (CP1253)
WCP1254_TurkishWindows Turco (CP1254)
WCP1255_HebrewWindows Hebreo (CP1255)
WCP1256_ArabicWindows Árabe (CP1256)
WCP1257_BalticRimWindows Báltico (CP1257)
WCP1258_VietnameseWindows Vietnamita (CP1258)
KZ_1048_KazakhstanKazajistán (KZ-1048)
User_defined_pagePágina de caracteres definida por el usuario
Tip: Para acentos y "€" en la mayoría de Epson/compatibles, usa 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"/>

ValorDescripción
NORMALModo estándar sin extensión especial.
COMPATIBLEModo de compatibilidad con juegos de caracteres ampliados.
WECHATModo especial utilizado en firmware chino (impresoras WeChat).
Nota: El significado exacto de cada modo puede variar según el fabricante/firmware de la impresora.

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>

Documentación ESC/POS