Вам нужно использовать Escape функцию принтера Passthrough, чтобы переслать данные непосредственно в принтер. В случае использования функции WriteLn это, конечно, не работает. Вот некоторый код, чтобы уговорить вас начать:
unit Passthru; interface uses printers, WinProcs, WinTypes, SysUtils; Procedure PrintTest; implementation Type TPassThroughData = RecordnLen : Integer;Data : Array[0..255] of byte;end; Procedure DirectPrint(s : String); var PTBlock : TPassThroughData;Begin PTBlock.nLen := Length(s);StrPCopy(@PTBlock.Data,s);Escape(printer.handle, PASSTHROUGH,0,@PTBlock,nil);End; Procedure PrintTest; Begin Printer.BeginDoc;DirectPrint(CHR(27)+'&l1O'+'Привет, Вася!');Printer.EndDoc;End; end. |