Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Impresora fiscal Epson TMU220A (https://www.clubdelphi.com/foros/showthread.php?t=32321)

martinc5 02-06-2006 04:37:10

Impresora fiscal Epson TMU220A
 
Bueno este creo q va a ser mi último pedido de ayuda. Busque por todo el foro y no hay nada de comandos ni codificación en Delphi para usar el OCX de Epson TMU220A.
Probe varias alternativas y la única que funciona es escribir en un txt las instrucciones:
Código:

@FACTABRE|00001|T|C|B|1|P|10|I|N|juanperez||CUIT|30123456|N|calle|||REMITO 1|
@FACTITEM|00001|DESCRIPCION1|00002000|00000100|2100|M|00001|00000000||||1050
@FACTCIERRA|00001|T|B|FINAL

y despues ejecutar un archivo bat que envía este txt a la impresora y todo bien, pero no es un procedimiento eficiente, es muy trucho...

Instale los componentes OCX en delphi, lo puse en el formulario y los llame ifiscal. Probe esto en un boton y no pasa nada... da errores
Código:

ifiscal.OpenPort('T','C','B','1','P','10','I','F','MARTIN','','DNI','11111111','N','domicilioAAA','','','REMITO1' ,'');
ifiscal.SendCommand('chocolate','00001000','000000155','2100','M','00001','00000000','','','','');
ifiscal.ClosePort('T','B','FINAL');

He visto en los manuales ejemplos en C y basic pero nada en delphi. Puede ser que los OCX de las impresoras fiscales Epson no funcionen con winXP o con Delphi?

Estoy bastante desilusionado espero puedan sacarme de esta gran duda y sino sigo siendo un admirador de Club Delphi, sigan así saludos a todos...:D

luisgutierrezb 02-06-2006 15:23:37

puedes abrir el archivo del puerto de la impresora con las api de windows, asi en lugar de mandar a un archivo, mandas a la impresora, si mandas imprimir por quickreport o algo asi, puedes usar tambien la api "Escape" para mandar caracteres de escape y demas, en cuanto al OCX, nunca los uso, mando directo como te puse en la primera opcion

martinc5 02-06-2006 22:20:01

Eso pensaba q tal vez no funcione el OCX. Pero, ¿con qué componente o Apis puedo mandar ese texto por el puerto serial? La verdad q no tengo idea como usarlas. Supongo q asi funcionará....

Gracias por contestar... :D

luisgutierrezb 03-06-2006 01:48:18

aqui un pequeño ejemplo:
probablemente haya variables de mas, puesto que lo saque de un programa que imprime un ticket...

Código Delphi [-]
Var
  H:HFile;
  X:Cardinal;
  Str: String;
  Buf: Array[1..100] Of char;
  Error, I: Integer;
Begin
  SetLastError(0);
  Puerto := 'LPT1'
  Error := 0;
  Repeat
    H := CreateFile(pchar(Puerto),GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
    If H = INVALID_HANDLE_VALUE Then
    Begin
      ShowMessage(SysErrorMessage(GetLastError));
      Exit;
    End;

    Str := 'Cadena a mandar puede ser con codigos de escape'  + #27 + #5;
    StrpCopy(@Buf,Str);
    WriteFile(H,buf,Length(Str),x,nil);


    CloseHandle(H);
  Until Error = 0;


La franja horaria es GMT +2. Ahora son las 14:26:22.

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