Mi plugin HTTP a ESC POS soporta la impresión de caracteres especiales (letras latinoamericanas, etcétera) pero no todas las impresoras son iguales ni soportan la misma página de códigos.
De hecho la charcode page o página de códigos de caracteres es muy importante porque eso nos permite codificar el texto correctamente haciendo que las letras como las vocales acentuadas o la ñ aparezcan correctamente.
Sin el número de página ni página de códigos no podremos imprimir correctamente y por ello es que en este artículo te voy a enseñar a descubrir la página de códigos de caracteres que mejor le queda a tu impresora térmica ESC POS.
Prueba básica de impresión
Lo primero que tienes que hacer es instalar tu impresora e imprimir una página de prueba.
Después descarga mi plugin. No te preocupes, no será obligatorio que uses mi plugin siempre, solo es para que podamos averiguar la página de códigos. Descarga en: https://parzibyte.me/http-esc-pos-desktop-docs/es/guia/descargar.html y ejecútalo dándole todos los permisos necesarios.
No continúes hasta que estés seguro de que el plugin se está ejecutando.
Ahora visita la siguiente página que es el área de pruebas: https://parzibyte.me/http-esc-pos-desktop-docs/es/area-pruebas.html. Ahí fíjate que:
- Aparezca una alerta verde que dice Plugin ejecutándose en…
- Tu impresora aparezca en Selecciona tu impresora
No continúes hasta que todo lo anterior se cumpla. Entonces procede a seleccionar tu impresora de la lista. Navega hacia abajo, haz clic en la operación Iniciar y luego en EscribirTexto; eso añadirá las 2 operaciones.
Se debe ver como en la siguiente imagen: con la operación Iniciar primero y después con la operación EscribirTexto cuyo contenido es Hola impresora:

No continúes si lo que se ve en tu pantalla es distinto a lo de la imagen
Ahora haz clic en Hacer petición y se debería imprimir el texto Hola impresora en tu impresora seleccionada:

Lo que acabamos de hacer es probar que el plugin y tu impresora sean compatibles además de revisar si tu printer imprime bien. Si has llegado hasta acá entonces ahora sí vamos a averiguar la página de códigos de caracteres.
No continúes si tu impresora no imprimió el texto
Conocer página de códigos de caracteres
En esa misma página del área de pruebas elimina la operación de EscribirTexto y añade la que se llama TextoSegunPaginaDeCodigos.
Recomiendo dejar el texto por defecto, pero presta atención a argumentos[0] que es el número de página y también a argumentos[1] que es el código de página de caracteres para iconv.
Primero haz clic en Hacer petición con los valores por defecto, es decir, Número de página en 2
y Código de página de caracteres para iconv en cp850.
Se va a imprimir texto en la impresora. Y aquí es donde justamente comienza tu trabajo:
- Si el texto se imprime correctamente, es decir, con los caracteres acentuados, etcétera entonces enhorabuena pues has encontrado el número de página y el charcode page, ya lo has averiguado y ahora solo debes decirme cuál combinación usaste con tu impresora
- En caso de que aparezcan caracteres extraños o simplemente veas que el texto no se imprime como debería (por ejemplo, que aparece
Josÿen lugar deJoséo cosas similares) debes volver a imprimir el mismo texto pero cambiando el número de página y el código de página.
Por poner un ejemplo…
- Yo selecciono
2en Número de página ycp850en Código de página de caracteres para iconv - Imprimo haciendo clic en Hacer petición pero el texto no sale como yo quiero, pues no aparecen los caracteres especiales que necesito
- Entonces cambio el número de página a
3y pongoCP860en Código de página de caracteres para iconv - Vuelvo a imprimir haciendo clic en Hacer petición, y el texto sigue sin salir como quiero
- Cambio a número
4y páginaCP863 - Vuelvo a imprimir haciendo clic en Hacer petición y finalmente imprime correctamente
Básicamente debes probar todas las combinaciones. Si tienes el manual de tu impresora y el mismo contiene los números de página soportadas entonces te ahorrarás tiempo.
Te voy a dejar las combinaciones más comunes que conozco en las siguientes secciones.
Mi experiencia
Soy de latinoamérica por lo que necesito imprimir texto en español, la eñe, tildes, etcétera. He trabajado con algunas impresoras ya sea mías o de clientes y te puedo compartir que:
- La impresora PT-210 imprime texto en español nativamente sin ninguna conversión
- La Xprinter-58 imprime usando número
2y página de códigoscp850. Eso sí: debes deshabilitar el modo de caracteres chinos antes de imprimir texto en español - En el caso de la impresora 3nstar PPT305BT de un estimado cliente le funcionó el número
3y la páginaCP860
Todo es cuestión de que pruebes y, si eres tan amable, me compartas el número de página que te funcionó para ampliar esta base de conocimiento.
Cuando tengas el número de página correcto avísame y puedo implementarla en un plugin o sistema personalizado; solo necesito saber cuál codificación es la correcta para tu impresora.
Lista de página de códigos
Aquí tengo una lista. El n es lo que va en Número de página según tu impresora y
el Code Page es lo que va en Código de página de caracteres para iconv. Eso sí, solo coloca el CP___, no añadas
el texto que lo acompaña.
Por poner un ejemplo: si quieres probar el Canadian-French pon 4 en Número de página
y CP863 en Código de página de caracteres para iconv; no pongas CP863 (Canadian-French), es decir,
coloca únicamente el código de página.
| n (decimal) | Code Page | Idioma/Zona |
|---|---|---|
| 0 | CP437 (USA, Standard Europe) | Inglés, básico |
| 1 | Katakana | Japonés Katakana |
| 2 | CP850 (Multilingual) | Occidental (Europa) |
| 3 | CP860 (Portuguese) | Portugués |
| 4 | CP863 (Canadian-French) | Francés de Canadá |
| 5 | CP865 (Nordic) | Idiomas nórdicos |
| 16 | CP1252 (Latin-1) | Occidental Windows |
| 17 | CP866 (Cyrillic #2) | Cirílico (Rusia) |
| 18 | CP852 (Latin-2) | Europa Central |
| 19 | CP858 (Euro) | Variante CP850 con euro |
| 21 | CP862 (Hebrew DOS) | Hebreo DOS |
| 22 | CP864 (Arabic) | Árabe DOS |
| 23 | Thai42 | Tailandés (mapeo específico) |
| 24 | CP1253 (Greek) | Griego Windows |
| 25 | CP1254 (Turkish) | Turco Windows |
| 26 | CP1257 (Baltic) | Idiomas bálticos |
| 27 | Farsi | Persa |
| 28 | CP1251 (Cyrillic) | Ruso moderno Windows |
| 29 | CP737 (Greek) | Griego DOS |
| 30 | CP775 (Baltic) | Báltico DOS |
| 31 | Thai14 | Tailandés (otro mapeo) |
| 33 | CP1255 (Hebrew New code) | Hebreo moderno Windows |
Aquí hay otra. La n es el número, y el Código de página es lo que está entre corchetes. Por ejemplo, para
la Page 0 USA, Standard Europe es número 0 y Código de página CP437
| n | Character Type |
|---|---|
| 0 | Page 0 USA, Standard Europe [CP437] |
| 1 | Page 1 Katakana |
| 2 | Page 2 Multilingual(Latin-1) [CP850] |
| 3 | Page 3 Portuguese [CP860] |
| 4 | Page 4 Canadian-French [CP863] |
| 5 | Page 5 Nordic [CP865] |
| 6 | Page 6 Slavic(Latin-2) [CP852] |
| 7 | Page 7 Turkish [CP857] |
| 8 | Page 8 Greek [CP737] |
| 9 | Page 9 Russian(Cyrillic) [CP866] |
| 10 | Page 10 Hebrew [CP862] |
| 11 | Page 11 Baltic [CP775] |
| 12 | Page 12 Polish |
| 13 | Page 13 Latin-9 [ISO8859-15] |
| 14 | Page 14 Latin1 [Win1252] |
| 15 | Page 15 Multilingual Latin I + Euro [CP858] |
| 16 | Page 16 Russian(Cyrillic)[CP855] |
| 17 | Page 17 Russian(Cyrillic)[Win1251] |
| 18 | Page 18 Central Europe[Win1250] |
| 19 | Page 19 Greek[Win1253] |
| 20 | Page 20 Turkish[Win1254] |
| 21 | Page 21 Hebrew[Win1255] |
| 22 | Page 22 Vietnam[Win1258] |
| 23 | Page 23 Baltic[Win1257] |
| 24 | Page 24 Azerbaijani |
| 25-29 | Reserved |
| 30 | Thai[CP874] |
| 31-39 | Reserved |
| 40 | Page 25 Arabic [CP720] |
| 41 | Page 26 Arabic [Win 1256] |
| 42 | Page 27 Arabic (Farsi) |
| 43 | Page 28 Arabic presentation forms B |
| 44-49 | Reserved |
| 50 | Page 29 Hindi_Devanagari |
| 252 | Page 30 Japanese [CP932] |
| 253 | Page 31 Korean [CP949] |
| 254 | Page 32 Traditional Chinese [CP950] |
| 255 | Page 33 Simplified Chinese [CP936] |
Y aquí otra. El n es le número y la página es PC437, PC865, etcétera. Puedes ignorar
el resto del texto. Es decir, no pongas PC865 [Nordic] en Código de página, pon solamente
PC865.
| n | Page |
|---|---|
| 0 | PC437 [U.S.A., Standard Europe] |
| 1 | Katakana |
| 2 | PC850 [Multilingual] |
| 3 | PC860 [Portuguese] |
| 4 | PC863 [Canadian-French] |
| 5 | PC865 [Nordic] |
| 17 | PC866 [Cyrillic #2] |
| 255 | Space page |
Si has probado todas y cada una de las combinaciones y ni así sirve, entonces empieza
a probar intercambiando la n y la página. Por ejemplo, en la tabla
de arriba al número 0 le corresponde la PC437, pero si ya has probado absolutamente todas
las combinaciones entonces prueba ese mismo número 0 pero en lugar de PC437 utiliza PC850, luego
prueba con la PC860, etcétera.