Оргиш Александр (FIDO: 2:454/3.24) пишет:
Печатаю через спулер на матричный принтер текст таким образом :
Var pcbNeeded : DWORD; FDevice : PChar; FPort : PChar; FDriver : PChar; FPrinterHandle : THandle; FDeviceMode : THandle; FJob : PADDJOBINFO1 ; Stream : TFileStream; begin GetMem(FDevice, 128); GetMem(FDriver, 128); GetMem(FPort, 128); Printer.GetPrinter(FDevice, FDriver, FPort, FDeviceMode); if FDeviceMode = 0 then Printer.GetPrinter(FDevice, FDriver, FPort, FDeviceMode); if OpenPrinter(FDevice,FPrinterHandle,nil) then begin GetMem(FJob,1024); //Добавляем задание, получаем имя файла в директории windows\spoool\ AddJob(FPrinterHandle,1,FJob,1024,pcbNeeded); Stream:=TFileStream.Create(FJob.Path,fmCreate); // Дальше пишем текст (+ESC команды!!!!) прямо в Stream // и не забываем переводить в DOS - кодировку ......... ......... Stream.Free; //Постановка задания в очередь - только теперь принтер начинает печатать ScheduleJob(FPrinterHandle,FJob.JobID); FreeMem(FJob); ClosePrinter(FPrinterHandle); end; FreeMem(FDevice, 128); FreeMem(FDriver, 128); FreeMem(FPort, 128); end; |
С уважением, Оргиш Александр [001072]