Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007

Как мне послать на принтер управляющие коды принтера(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.

Взято из Советов по Delphi от Валентина Озерова

Сборник Kuliba