# Resultados Pruebas TM-U220 "Oficina Mami"

**Fecha:** 2025-11-26
**Impresora:** Oficina Mami (192.168.87.147, matricial2)
**Modelo:** Epson TM-U220

---

## Prueba 2: Alineaciones

| Comando | Valor | Resultado |
|---------|-------|-----------|
| `textAlign` | `left` | ✅ Funciona |
| `textAlign` | `center` | ✅ Funciona |
| `textAlign` | `right` | ✅ Funciona |

**Conclusion:** Todas las alineaciones funcionan correctamente.

---

## Prueba 3: Fuentes

| Comando | Valor | Resultado |
|---------|-------|-----------|
| `textFont` | `font_a` | ✅ Funciona |
| `textFont` | `font_b` | ✅ Funciona |
| `textFont` | `font_c` | ❌ Sin efecto |
| `textFont` | `font_d` | ❌ Sin efecto |
| `textFont` | `font_e` | ❌ Sin efecto |
| `textFont` | `special_a` | ❌ Sin efecto |
| `textFont` | `special_b` | ❌ Sin efecto |

**Conclusion:** Solo Font A y Font B funcionan. Las demas fuentes no estan soportadas por el hardware TM-U220.

---

## Prueba 4: Tamanos

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textSize` | `width: 1, height: 1` | ✅ Funciona (normal) |
| `textSize` | `width: 2, height: 1` | ✅ Funciona (doble ancho) |
| `textSize` | `width: 1, height: 2` | ✅ Funciona (doble alto) |
| `textSize` | `width: 2, height: 2` | ✅ Funciona (doble ambos) |
| `textSize` | `width: 3, height: 3` | ⚠️ Redundante (igual a 2x2) |
| `textSize` | `width: 4, height: 4` | ⚠️ Redundante (igual a 2x2) |

**Conclusion:** TM-U220 solo soporta multiplicadores 1 y 2. Valores mayores son tratados como 2.

---

## Prueba 1: Texto Basico

| Comando | Resultado |
|---------|-----------|
| `text` | ✅ Funciona |
| `feedLine` | ✅ Funciona |
| Caracteres ASCII (A-Z, a-z, 0-9) | ✅ Funciona |
| Simbolos (= - _ * + \| / \\ ( ) [ ]) | ✅ Funciona |

**Conclusion:** Texto basico funciona al 100%.

---

## Prueba 5: Estilos

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textStyle` | (sin estilo) | ✅ Funciona (normal) |
| `textStyle` | `em: true` (bold) | ✅ Funciona |
| `textStyle` | `ul: true` (underline) | ✅ Funciona |
| `textStyle` | `em: true, ul: true` | ✅ Funciona (bold+underline) |
| `textStyle` | `reverse: true` | ❌ No funciona |
| `textStyle` | `color: color_1` (negro) | ✅ Funciona |
| `textStyle` | `color: color_2` (rojo) | ❌ No funciona |
| `textStyle` | `color: color_3` | ❌ No funciona |
| `textStyle` | `color: color_4` | ❌ No funciona |

**Conclusion:** Solo funcionan bold, underline y color negro. Reverse y colores 2-4 no estan soportados.

---

## Prueba 6: Doble Ancho/Alto (textDouble)

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textDouble` | `dw: false, dh: false` | ✅ Funciona (normal) |
| `textDouble` | `dw: true, dh: false` | ✅ Funciona (doble ancho) |
| `textDouble` | `dw: false, dh: true` | ✅ Funciona (doble alto) |
| `textDouble` | `dw: true, dh: true` | ✅ Funciona (doble ambos) |

**Conclusion:** textDouble funciona igual que textSize. Ambos comandos son equivalentes para TM-U220.

---

## Prueba 7: Espaciado de Lineas

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textLineSpace` | (default) | ✅ Funciona |
| `textLineSpace` | `linespc: 30` | ✅ Funciona |
| `textLineSpace` | `linespc: 60` | ✅ Funciona |
| `textLineSpace` | `linespc: 100` | ✅ Funciona |

**Conclusion:** Espaciado de lineas funciona correctamente. Valores mayores = mas espacio entre lineas.

---

## Prueba 8: Rotacion

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textRotate` | `rotate: false` | ✅ Funciona (0 grados, normal) |
| `textRotate` | `rotate: true` | ✅ Funciona (90 grados clockwise) |
| `textRotate` | `rotate_0, rotate_90, rotate_180, rotate_270` | ❌ Sin efecto (no soportado) |

**Conclusion:** Solo 0 y 90 grados soportados. Angulos arbitrarios no son posibles en impresoras matriciales.

---

## Prueba 9: Posicionamiento Horizontal

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textPosition` | `x: 0` | ❌ No funciona |
| `textPosition` | `x: 50` | ❌ No funciona |
| `textPosition` | `x: 100` | ❌ No funciona |
| `textPosition` | `x: 150` | ❌ No funciona |
| `textPosition` | `x: 200` | ❌ No funciona |

**Conclusion:** textPosition NO funciona en TM-U220. El posicionamiento horizontal absoluto no esta soportado.

---

## Prueba 10: Feed tipos

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `feed` | (simple) | ✅ Funciona |
| `feedLine` | `line: 1` | ✅ Funciona |
| `feedLine` | `line: 3` | ✅ Funciona |
| `feedUnit` | `unit: 20` | ✅ Funciona |
| `feedUnit` | `unit: 50` | ✅ Funciona |
| `feedUnit` | `unit: 100` | ✅ Funciona |

**Conclusion:** Todos los tipos de feed funcionan correctamente. feedUnit permite control mas preciso que feedLine.

---

## Prueba 14: Corte

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `cut` | (sin tipo) | ✅ Funciona |
| `cut` | `type: no_feed` | ❌ SchemaError |
| `cut` | `type: feed` | ❌ SchemaError |
| `cut` | `type: reserve` | ❌ SchemaError |
| `cut` | `type: feed_fullcut` | ❌ SchemaError |
| `cut` | multiples cuts seguidos | ❌ SchemaError |

**Conclusion:** Solo el corte simple (sin parametro type) funciona. Los tipos especificos de corte generan error.

---

## Prueba: textSmooth (Suavizado)

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textSmooth` | `smooth: false` | ❌ Sin efecto visible |
| `textSmooth` | `smooth: true` | ❌ Sin efecto visible |
| `textSmooth` | con texto 2x2 | ❌ Sin efecto visible |

**Conclusion:** textSmooth no tiene efecto en TM-U220. El suavizado es para impresoras termicas con capacidad grafica.

---

## Prueba: textLang (Idioma/Charset)

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textLang` | `lang: en` | ❌ Sin efecto |
| `textLang` | `lang: es` | ❌ Sin efecto |
| `textLang` | `lang: ja` | ❌ Sin efecto |
| `textLang` | `lang: de` | ❌ Sin efecto |

**Conclusion:** textLang no cambia el charset. Solo se imprimen caracteres del alfabeto ingles basico (ASCII).

---

## Prueba: textVPosition (Posicion Vertical)

| Comando | Parametros | Resultado |
|---------|------------|-----------|
| `textVPosition` | `y: 0` | ❌ No funciona |
| `textVPosition` | `y: 50` | ❌ No funciona |
| `textVPosition` | `y: 100` | ❌ No funciona |
| `textVPosition` | `y: 200` | ❌ No funciona |

**Conclusion:** textVPosition NO funciona en TM-U220, igual que textPosition. Posicionamiento absoluto no soportado.

---

## Resumen de Compatibilidad TM-U220

| Categoria | Comandos Funcionales | Comandos No Soportados |
|-----------|---------------------|------------------------|
| Texto | text | - |
| Alineacion | left, center, right | - |
| Fuentes | font_a, font_b | font_c, font_d, font_e, special_a, special_b |
| Tamanos | 1x1, 2x1, 1x2, 2x2 | >2 (redundante) |
| Estilos | bold (em), underline (ul), color_1 | reverse, color_2, color_3, color_4 |
| textDouble | dw, dh | - (equivalente a textSize) |
| Espaciado | textLineSpace (cualquier valor) | - |
| Rotacion | rotate: false (0°), rotate: true (90°) | Angulos arbitrarios |
| Posicion | - | textPosition, textVPosition (no funcionan) |
| Feed | feed, feedLine, feedUnit | - |
| Corte | cut (simple, sin tipo) | cut con type (SchemaError) |
| Suavizado | - | textSmooth (sin efecto) |
| Idioma | - | textLang (sin efecto, solo ASCII) |

---

## Caracteres por Linea

| Fuente | Tamano | Caracteres/Linea |
|--------|--------|------------------|
| Font A | 1x1 | 33 |
| Font A | 2x1 (doble ancho) | 16 |
| Font A | 1x2 (doble alto) | 33 |
| Font A | 2x2 (doble ambos) | 16 |
| Font B | 1x1 | 40 |
| Font B | 2x1 (doble ancho) | 20 |
| Font B | 1x2 (doble alto) | 40 |
| Font B | 2x2 (doble ambos) | 20 |

**Observaciones:**
- Font B es mas condensada y permite mas caracteres por linea
- El doble alto (1x2) no afecta la cantidad de caracteres horizontales
- El doble ancho (2x1 y 2x2) reduce los caracteres a la mitad

---

## Caracteres Soportados

### ASCII Basico (todos funcionan, 33 chars/linea en Font A 1x1)
```
= - , : . ; " [ { ( / | * # @ $ % & ^ ~ ` \ _ + < > '
A-Z a-z 0-9 espacio
```

### Box Drawing (todos funcionan)
```
Lineas simples: ─ │ ┌ ┐ └ ┘
Lineas dobles:  ═ ║ ╔ ╗ ╚ ╝
```

### Bloques (todos funcionan)
```
Solido:   █
Medios:   ▀ ▄
Sombras:  ░ ▒ ▓
```

### Simbolos (todos funcionan)
```
Circulos: ● ○ ◘
Flechas:  ► ◄ ▲ ▼
Cartas:   ♠ ♣ ♥ ♦
```

### Latinos Extendidos (todos funcionan)
```
Espanol:  ñ á é í ó ú ¿ ¡
Otros:    ° ±
```

**Conclusion:** La TM-U220 soporta un charset muy amplio incluyendo box drawing, bloques y simbolos especiales. Todos ocupan el mismo ancho (monospace).
