Печать Dos-файла в порт напрямую

Материал из DRKB

Печать Dos-файла в порт напрямую[править | править код]

При печати Dos-файла в порт напрямую можно это сделать.

  Например, напечатать за 2 прохода:
  ESC @ - инициализация принтера
  ESC G - включение режима печати за 2 прохода
  ESC H - выключение режима печати за 2 прохода


{ преобразование Ansi to Ascii }
function AnToAs(s: String) : String;
var
  i, kod: Integer;
begin
  Result := s;
  for i:=1 to Length(s) do
  begin
    kod := Ord(s[i]);
    if kod <> 13 then
      Result[i] := ' ';
    if (kod >= 192) and (kod = 239) then 
      Result[i] := Chr(kod - 64);
    if (kod >= 240) and (kod = 255) then 
      Result[i] := Chr(kod - 16);
    if kod = 168 then
      Result[i] := Chr(240);
    if kod = 184 then
      Result[i] := Chr(241);
  end;
end;

var
  FileOut: TextFile;
  Filename: String [128];
begin
   Filename := 'PRN';
   AssignFile(Fileout, Filename);

   Write(FileOut, Chr(27) + '@');
   Str1 := AnToAs(chr(27) + 'G' + 'Double' + chr(27) + 'H');
   Writeln(FileOut, Str1);
end;


Source: Взято с сайта http://blackman.wp-club.net/
ID: 01347