Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 25-03-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Vamos a ver, esta función te puede útil:
Código Delphi [-]
function WriteRawDataToPrinter(PrinterName: String; Str: String): Boolean;
var
  PrinterHandle: THandle;
  DocInfo: TDocInfo1;
  i: Integer;
  B: Byte;
  Escritos: DWORD;
begin
  Result:= FALSE;
  if OpenPrinter(PChar(PrinterName), PrinterHandle, nil) then
  try
    FillChar(DocInfo,Sizeof(DocInfo),#0);
    with DocInfo do
    begin
      pDocName:= PChar('Printer Test');
      pOutputFile:= nil;
      pDataType:= 'RAW';
    end;
    if StartDocPrinter(PrinterHandle, 1, @DocInfo) <> 0 then
    try
      if StartPagePrinter(PrinterHandle) then
      try
        while Length(Str) > 0 do
        begin
          if Copy(Str, 1, 1) = '\' then
          begin
            if Uppercase(Copy(Str, 2, 1)) = 'X' then
              Str[2]:= '$';
            if not TryStrToInt(Copy(Str, 2, 3),i) then
              Exit;
            B:= Byte(i);
            Delete(Str, 1, 3);
          end else B:= Byte(Str[1]);
          Delete(Str,1,1);
          WritePrinter(PrinterHandle, @B, 1, Escritos);
        end;
        Result:= TRUE;
      finally
        EndPagePrinter(PrinterHandle);
      end;
    finally
      EndDocPrinter(PrinterHandle);
    end;
  finally
    ClosePrinter(PrinterHandle);
  end;
end;
Permite enviar datos directamente a la impresora, al igual que lo hacías antes a través del puerto paralelo, solo necesitas el nombre de la impresora. Si le echas un vistazo a la función seguro que averiguas como funciona y la puedes adaptar a tus necesidades, pero si te decides a utilizarla tal cual, el primer parámetro es el nombre de la impresora (tal cual aparece en la carpeta "Impresoras" de windows) y el segundo es el texto que se quiere enviar, con la particularidad que se pueden mandar secuencias de escape.

Por ejemplo, así mandaríamos el texto "Hola mundo":
Código Delphi [-]
WriteRawDataToPrinter('Mi impresora','Hola mundo');

Ahora lo mismo pero con un retorno de carro y avance de linea:
Código Delphi [-]
WriteRawDataToPrinter('Mi impresora','Hola mundo\x0D\x0A');

Y ahora un pitido (si la impresora lo soporta)
Código Delphi [-]
WriteRawDataToPrinter('Mi impresora','Hola mundo\x0D\x0A\x1B\007');

Estos días estoy probando unas nuevas impresoras de toshiba, de las que no acabo de encontrar sus secuencias de escape (logo, negrita, subrayado, etc ...). Así que me he creado una pequeña aplicación, donde puede escoger una impresora y mandarle una secuencia de escape, y así realizar algunas pruebas. Aquí te la dejo por si quieres hacer algunas pruebas:
Archivos Adjuntos
Tipo de Archivo: zip PrintTest.zip (5,9 KB, 372 visitas)
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como imprimir sin? superhopi Impresión 3 13-04-2007 04:46:45
¿Cómo imprimir? roman Linux 15 21-03-2007 20:53:36
como imprimir?? mminorm Impresión 6 01-06-2005 08:57:20
Como imprimir......... pampitasnowman Impresión 3 20-08-2003 21:24:16


La franja horaria es GMT +2. Ahora son las 00:05:47.


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