Ver Mensaje Individual
  #1  
Antiguo 25-03-2008
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.490
Reputación: 21
MAXIUM Va camino a la fama
Question Buffer - Impresión directa

Tengo la duda si al imprimir en forma directa se crea un buffer (cola, etc.) de impresión o va imprimiendo y "esperando" linea a liena. Lo digo por que la aplicación se bloquea hasta que termina de imprimir.


Código Delphi [-]
Var
    ADevice, ADriver, APort : array [0..255] of Char;
    ADeviceMode: THandle;
    DevMode: PDevMode;
Begin
// Seleciona una medida metrica.
   SetMapMode(Printer.Handle,MM_LoMetric);

// Aqui se define el tamaño del papel.
   with Printer do
      begin
         GetPrinter (ADevice, ADriver, APort, ADeviceMode);
         SetPrinter (ADevice, ADriver, APort, 0);
         ADevice:= 'Adobe PDF';
//         GetPrinter (ADevice, ADriver, APort, ADeviceMode);
         DevMode := GlobalLock(ADeviceMode);
         if not Assigned(DevMode) then
            ShowMessage('Ha entrado en -> if not Assigned(DevMode) ...')
         else
            begin
               with DevMode^ do
                  begin
                     dmPaperSize  := DMPAPER_User;
                     dmPaperLength:= 1500;    //1500;
                     dmPaperWidth := 2000;    //1150;
                     dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLength or DM_PAPERWidth;
                  end;
               GlobalUnLock(ADeviceMode);
               SetPrinter(ADevice, ADriver, APort, ADeviceMode);
           end;
      end;

//    Inicio de la Impresión.
      Printer.BeginDoc;
      With Printer.Canvas do
      Begin
           Font.Name  := 'DOSASCII';
           Font.Size   := 12;
           Font.Pitch  := fpFixed;
           TextOut(   0,   0, 'HOLA');
           ...
           ...
           ...
      End;
     Printer.EndDoc;
End;
Responder Con Cita