Советы по Delphi

         

Управляющие коды принтера


Как мне послать на принтер управляющие коды принтера (Printer Control Codes) без перевода их в непечатные символы? Наверняка без Windows API в Delphi не обойтись. Когда я передаю управляющие коды принтера, они печатаются как непечатные символы, а не воспринимаются принтером как управляющие коды.

Вам нужно использовать Escape функцию принтера Passthrough, чтобы переслать данные непосредственно в принтер. В случае использования функции WriteLn это, конечно, не работает. Вот некоторый код, чтобы уговорить вас начать:

    unit Passthru;

interface

uses
printers, WinProcs, WinTypes, SysUtils;

Procedure       PrintTest;

implementation



Type

TPassThroughData = Record nLen : 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.
[000205]



Содержание раздела