Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Detectar Error al imprimir. (https://www.clubdelphi.com/foros/showthread.php?t=71737)

DeLiRioS 07-01-2011 01:30:00

Detectar Error al imprimir.
 
Buenas amigos, se que no es el foro correcto pero es que en el foro de impresión nadie pudo ayudarme, quién pueda me da una manito por favor. Utilizo delphi 7 y mysql, y necesito imprimir en una EPSON BIXOLON SPR-270 (Ticketera) imprime todo bien, pero el unico problema es el siguiente, que en el caso de que la impresora este apagada, desconectada o sin papel al momento de enviar la impresión, mi aplicación se bloquea osea se cuelga, queda en espera y debo terminar el proceso y volver entrar. Imagino que tal vez habrá que utilizar algunos comandos de la impresora, tengo el manual pero nose como aplicarlos en delphi gracias de antemano.Eh intentado con Try..excep y {$I-} ... {$I+} y nada, Este es el código:

Código Delphi [-]
Assignfile(iImpresora,'Lpt1'); //Puerto: LPT1, COM1, etc;
Rewrite(iImpresora);
Writeln(iImpresora,'Hola mundo');
Write(iImpresora, Cortapapel);
CloseFile(iImpresora);

genius 07-01-2011 13:33:24

Prueba con esto
 
Prueba a ver si te funciona con esto , deberias de arrojarlo en un archivo log para ver que sucede y tratar el error con try except end, suerte

Código Delphi [-]
Procedure TForm1.ShowPrinterStatus( const PrinterName : String );
Var
  PrinterInfo: PPrinterInfo2;
  PrinterHandle : THandle;
  Stat : LongBool;
  requiredSize : Cardinal;

Begin
  Try
    Stat := OpenPrinter( PChar(PrinterName), PrinterHandle, NIL ); //
This works fine

    If ( Stat )
      Then
        Begin
          Try
            GetMem( PrinterInfo, 1024 );
            Stat := GetPrinter(PrinterHandle, 2, PrinterInfo, 1024,
@requiredSize );
            Edit2.Text := 'Printer Name Is: ' +
PrinterInfo^.pPrinterName;

            Case PrinterInfo^.Status of
              0 : Edit1.Text := 'Printer Ready!';
              PRINTER_STATUS_DOOR_OPEN : Edit1.Text := 'Door Open';
              PRINTER_STATUS_POWER_SAVE : Edit1.Text := 'Power Save
Mode';
              PRINTER_STATUS_WARMING_UP : Edit1.Text := 'Warming Up';
              PRINTER_STATUS_PAPER_OUT :  Edit1.Text := 'Out of Paper';
            End;
          Finally
            FreeMem( PrinterInfo, 1024 );
          End;
        End
      Else
        Begin
          Edit1.Text := 'NA';
          Edit2.Text := 'Cannot Open Printer: ' + PrinterName;
        End;
   Finally
     ClosePrinter( PrinterHandle );
   End;
End;


La franja horaria es GMT +2. Ahora son las 01:30:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi