Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Question Imprimir en una impresora conectada al puerto serie

Hola, necesito que alguien me ayude.

Tengo que imprimir en una impresora que está conectada al com2 y no se cómo hacerlo. Me he bajado unos componentes pero siempre hablan de modem. El caso es que no consigo imprimir.

¿Conocéis algún componente para imprimir en una impresora conectada al com2?. ¿sabéis el código que tengo que poner?.

Otra cosa, la impresora es de tickets y está conectada a una portamonedas. Según el manual toda los comando de la impresora viene en hexadecimal. No sé cómo mandarle ni texto ni código en hexadecimal.

Necesito ayuda urgente!!!
Responder Con Cita
  #2  
Antiguo 11-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Aquí tienes un hilo que habla de imprimir en un puerto serie http://www.clubdelphi.com/foros/arch...c.php?t=15522, y a simple vista es igual que imprimir en un puerto paralelo.
En este hilo http://www.clubdelphi.com/foros/show...ght=createfile te muestro como escribir en un puerto serie.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 11-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Voy a intentar hacer una prueba esta noche. Ya comentaré los resultados.


Gracias por todo.
Responder Con Cita
  #4  
Antiguo 12-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Question

Con este código me daba un access violation. Es uno de los hilos que me comentabas, con el otro no me he aclarado.

procedure Tform1.Button1OnClick(sende:Tobject);
Var
i:Integer;
archivo:TextFile;
cadena:string;

begin
Assign(archivo,'COM1');
reset(archivo);
// esta cadena es la misma que se recomienda en el manual de la impresora para lenguaje cobol
cadena:=chr$(27)+chr$(99)+chr$(4+chr$(4);
writeln(archivo,cadena);
writeln('Esta es una prueba de impresión de la función Slip');
end;

Al final he utilizado la opción "tprinter" del delphi y he impreso bien. Qué problema tengo ahora?.

Para abrir el portamonedas tengo que mandarle un código hexadecimal a la impresora (<ESC>pmt1t2). yo utilizo #$1B + ... El problema es que según recuerdo $1B es el escape pero la impresora recibe el código 2E + ...

Puede ser que cómo no tengo nada en el config.sys no esté preparada la página de códigos??????

Abriré algún día el portamonedassss????. Por lo menos he conseguido imprimir.
Responder Con Cita
  #5  
Antiguo 12-08-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 21
chutipascal Va por buen camino
En lugar de querer imprimir directamente en el puerto, instala la impresora en el windows para tener una cola y luego imprimes sobre la cola con algo por el estilo

Código:
Pasa el nombre de la cola a printername.....

procedure RawPrinter(PrinterName:String);
 var
   Handle: THandle;
   N: DWORD;
   DocInfo1: TDocInfo1;
   S:=String;
 begin
   if not OpenPrinter(PChar(PrinterName), Handle, nil) then
     begin
      ShowMessage('error ' + IntToStr(GetLastError));
      Exit;
     end;
   with DocInfo1 do begin
     pDocName := PChar('Impresión de pruebas');
     pOutputFile := nil;
     pDataType := 'RAW';

   end;
   StartDocPrinter(Handle, 1, @DocInfo1);
   StartPagePrinter(Handle);
   S:='HOLA ESTO ES UNA PRUEBA';
   WritePrinter(Handle, PChar(S), Length(S), N);
   S:='LINEA 2';
   WritePrinter(Handle, PChar(S), Length(S), N);
   S:='LINEA 3';
   WritePrinter(Handle, PChar(S), Length(S), N);
   EndPagePrinter(Handle);    // Finaliza Pagina
   EndDocPrinter(Handle);     // Finaliza Documento
   ClosePrinter(Handle);       // Cierra el manipulador
end;
De ese modo podras imprimir asumiendo tu el control (los escapes) de la impresora sin complicarte demasiado con la programación en puertos series (que de una versión a otra de W dejas de poder usar formas sencillas de imprimir), además el codigo te sirve para impresoras serie, paralelo y USB, todo un chollo!
Responder Con Cita
  #6  
Antiguo 12-08-2003
Motoboy Motoboy is offline
Miembro
 
Registrado: ago 2003
Posts: 11
Poder: 0
Motoboy Va por buen camino
Hola Chutipascal,

He copiado el código en el Delphi7 pero las funciones OpenPrinter, pDocName, StartDocPrinter, etc que no me chutan. Es posible que el código haya que tocarlo para el delphi 7?.
Responder Con Cita
  #7  
Antiguo 12-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Particularmente prefiero el código de este hilo http://www.clubdelphi.com/foros/sho...ight=createfile .... ¡Y no es porque lo hice yo!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 05-01-2007
zvf zvf is offline
Miembro
 
Registrado: abr 2006
Posts: 158
Poder: 19
zvf Va por buen camino
HOLA!!
Estaba viendo el codigo que escribieron arriba, intente correrlo y no he podido, necesita alguna libreria?

Y tambien,
Como hago para instalar la impresora en el windows para tener una cola?
Si no tengo una cola, puedo pasarle a la funcion RawPrinter, el nombre de la impresora.

GRACIAS POR SU ATENCION Y SU AYUDA

SALUDOS!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:47:09.


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
Copyright 1996-2007 Club Delphi