Советы по Delphi

       

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


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

Вам нужно использовать 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.
[000205]



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