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
SetMapMode(Printer.Handle,MM_LoMetric);
with Printer do
begin
GetPrinter (ADevice, ADriver, APort, ADeviceMode);
SetPrinter (ADevice, ADriver, APort, 0);
ADevice:= 'Adobe PDF';
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; dmPaperWidth := 2000; dmFields := dmFields or DM_PAPERSIZE or DM_PAPERLength or DM_PAPERWidth;
end;
GlobalUnLock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
Printer.BeginDoc;
With Printer.Canvas do
Begin
Font.Name := 'DOSASCII';
Font.Size := 12;
Font.Pitch := fpFixed;
TextOut( 0, 0, 'HOLA');
...
...
...
End;
Printer.EndDoc;
End;