Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Печать текста в обход Windows

Delphi , ОС и Железо , Принтеры и Печать

Печать текста в обход Windows

Автор: Steve

ОТкройте файл типа TextFile и пишите в него напрямую:


var
  Lst: TextFile;
begin
  AssignFile(Lst, 'LPT1');
  Rewrite(Lst);
  WriteLn(Lst, 'Здравствуй, мир!');
  Close(Lst);
end.

При этом вы должны помнить, что при данной технологии вы не можете в это же время печатать из другой программы, иначе наступит конец света, а ваша распечатка будет похожа на "запутанный беспорядк".

Если вы планируете посылать на принтер управляющие коды, вызывайте следующую функцию немедленно после перезаписи файла:


procedure SetBinaryMode (var F: Text);  assembler;
asm
  mov ax,$4400
  les di,F
  mov bx,word ptr es:[di]
  int $21
  or dl,$20
  xor dh,dh
  mov ax,$4401
  int $21
end;

Here's the translation of the provided text into Russian:

Это старый код Delphi, который печатает текст на принтере с помощью порта LPT1. Код довольно прост:

var
  Lst: TextFile;
begin
  AssignFile(Lst, 'LPT1'); // присваивает файл порту LPT1
  Rewrite(Lst); // открывает файл для записи
  WriteLn(Lst, 'Здравствуй, мир!'); // печатает строку текста
  Close(Lst); // закрывает файл
end.

Код создает объект TextFile с именем Lst, присваивает его порту LPT1 с помощью AssignFile, открывает файл для записи с помощью Rewrite, печатает строку текста с помощью WriteLn, а затем закрывает файл с помощью Close.

Однако, этот подход имеет некоторые ограничения. Как вы упомянули в комментарии, если другой программный продукт пытается напечатать одновременно, это может привести к конфликтам и производить нечеткую печать.

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

procedure SetBinaryMode(var F: Text); assembler;
asm
  mov ax,$4400 // устанавливает бинарный режим
  les di,F
  mov bx,word ptr es:[di]
  int $21 // выполняет функцию BIOS
  or dl,$20 // устанавливает бинарный режим
  xor dh,dh
  mov ax,$4401 // очищает буфер вывода
  int $21 // выполняет функцию BIOS
end;

Эта процедура, вероятно, используется после перезаписи файла, чтобы обеспечить корректное выполнение любых кодов управления принтером, отправленных на принтер.

В статье описывается способ печати текста в обход операционной системы Windows, используя файловую систему Turbo Pascal, а не стандартный интерфейс печати.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Принтеры и Печать ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 17:06:28/0.010433912277222/2