Ver Mensaje Individual
  #5  
Antiguo 12-08-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Reputación: 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