# Corrección quirúrgica de tipografía LL12 — etiqueta VALERO

Fecha de validación: 2026-08-11.

## Alcance

Se corrigieron exclusivamente las tres causas demostradas en la etiqueta `etiart_Etiquetas de Articulos por Codigo VALERO (LASER 3x8,70x37mm).lbl`:

1. eliminación de líneas vacías `Uneraseable=False` antes de repartir altura;
2. lectura de propiedades de fuente planas `Font/*`;
3. eliminación del padding dimensional fijo del `TText` en diseñador.

No se modificaron SCM→mm, `extractBounds()`, márgenes, matriz de etiquetas, runtime, paginación, renderer, engine, DPI ni geometría exterior.

## Resultado medido

| Elemento | Antes | Después |
|---|---:|---:|
| Objetos usados por la fecha | 2 | 1 |
| Altura útil de la fecha | 1,289 mm | 2,9 mm |
| Overflow fecha | Sí | No |
| Fuente legible barcode | 10 pt | 6 pt |
| Altura visual de barras | 3,719 px | 9,859 px |
| Overflow `IVA INCLUIDO` | Sí | No |
| Padding exterior `TText` | 1 px 3 px | 0 px |

La fecha conserva `nTop=30 mm`, `nWidth=18 mm` y `nHeight=2,9 mm`. El barcode conserva `30 × 6,1 mm`. `IVA INCLUIDO` conserva `17,1 × 2,7 mm` y Arial 7.

## Comparación visual

- Antes reproducible: `test-results/ll12-label-typography/before-comparison.png`
- Después: `test-results/ll12-label-typography/after-comparison.png`
- Métricas posteriores: `test-results/ll12-label-typography/after.json`
- Métricas `faccli_00`: `test-results/ll12-label-typography/faccli-after.json`

## Causa del padding

`git blame` sitúa `padding: 1px 3px` en el commit inicial del diseñador `c8d6e620`, sin comentario, prueba o dependencia funcional asociada. La selección ya utiliza `outline` y la edición utiliza el propio contenido editable. Las pruebas específicas de selección, doble clic, drag, resize y undo/redo continúan pasando tras sustituirlo por `padding: 0`.

## Fuentes planas

La lectura común admite ahora `Font/Default`, `Font/FaceName`, `Font/Name`, `Font/Size`, `Font/Bold`, `Font/Italic`, `Font/Underline`, `Font/Strikeout`, `Font/Color`, `Font/OutPrecision` y `Font/PitchAndFamily`. También reconoce `Font/GdiCharSet` y `Font/Width`; actualmente no existe una propiedad equivalente en el modelo Dominus y los casos auditados usan `GdiCharSet=0`. El color visible del barcode continúa procediendo de `FgColor`, como antes.

## Validaciones

- `php -l tools/ll12_import/import_lst.php`: PASS.
- `php -l tools/ll12_import/test_import_content.php`: PASS.
- `php tools/ll12_import/test_import_content.php`: PASS.
- Playwright etiqueta VALERO y `faccli_00`: 2/2 PASS.
- Playwright selección, edición, drag y resize: 3/3 PASS.
- Regresión exacta de informes: 3/3 PASS.
- `git diff --check`: PASS.

En `faccli_00` hay 0 errores de geometría exterior y 0 textos con padding exterior. Los desbordamientos Arial 8 medidos bajan de 9 a 8. Los ocho restantes corresponden exclusivamente a fórmulas largas `Vto1`…`Vto8` mostradas literalmente en el diseñador, no a pérdida de caja por padding ni a la salida evaluada.

## Cierre

Resultado visual de la etiqueta: correcto para las tres causas tratadas. Compatibilidad práctica estimada de etiquetas normales: 98%. Puede continuarse con la siguiente etiqueta real.
