La verdad no recuerdo que quiere decir el código de error 231, pero probablemente es porque la impresora está fuera de línea o algo asi...
Podes implementar la impresión de una forma un poco mas segura de esta forma:
Código:
Procedure PrintLine(printer : TextFile; Line : String);
Var
IOR : Integer;
Cancelado : Boolean;
Begin
Cancelado := False;
repeat
{$I-}
writeln(printer, Line);
IOR := IOResult;
{$I+}
if IOR <> 0 Then
Cancelado := MessageDlg('Error al imprimir, desea reintentar?', [mbYes, mbNo], 0) = mrNo;
until (IOR = 0) or (Cancelado);
if Cancelado Then
Raise Exception.Create('Impresión cancelada por el usuario!');
End;
Var
printer : TextFile;
Begin
AssignFile(Printer, 'lpt1');
rewrite(Printer);
PrintLine(Printer, 'Hola esto es una prueba!');
PrintLine(Printer, '1');
PrintLine(Printer, '2');
..
PrintLine(Printer, '999');
PrintLine(Printer, '1000');
CloseFile(Printer);
End.
Es simplemente una idea... podes desarrollarla un poco mas a tu gusto...
Hasta luego.
