Hola apuentes.
Para comenzar hay que indicarle a la impresora que se enviará un renglón en modo gráfico. En el caso de una Epson o compatible
[1] de 9 agujas se hace:
- Enviar la secuencia de caracteres #27#75 (Esc+'K').
- Enviar dos bytes con el número de columnas de píxeles a imprimir con el órden byte menos significativo - byte mas significativo.
- Enviar un byte por cada columna de píxeles a imprimir.
Cada bit del byte enviado controla la impresión de una aguja, el byte 7 la superior, decreciendo hasta el cero que controla la inferior.
Por ejemplo, dibujar un carácter propio en forma de rectángulo:
Código Delphi
[-]
var
prn: TextFile;
i : Byte;
begin
AssignPrn(prn);
try
Rewrite(prn); Write(prn, #27#75#8#0); Write(prn, #255); for i:= 1 to 6 do Write(prn, #129); Write(prn, #255); finally
CloseFile(prn);
end;
end;
Para realizar diseños mas complejos te será útil usar un papel cuadriculado para marcar los bits encendidos y luego convertir las columnas de binario a decimal.
Pero se te pueden presentar problemas... Aunque
Esc/P2 es un estándar para impresoras matriciales, no necesariamente tu impresora va a cumplir con él, así que te pongo el enlace a los códigos la misma para que puedas reemplazarlos si así se requiere.
[2]
También puede suceder que el driver genérico de texto de Windows no soporte los códigos
Esc/P2, sinceramente no lo he probado.
[1] Epson LX-810 User Manual (Busca por: Quick reference -> Control and Escape codes by function).
[2] One-Station Printer TM-U200A (Busca por: 3. Functions -> Command list)
Saludos