Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Печать на POS-принтер с определением состояния процесса [D7, WinXP]


DeadAlice ©   (2010-11-22 17:04:00) 

Всем хорошего дня!

Есть рулонный принтер, поддерживающий ESC/POS систему команд. Подключен он через Ethernet-модуль, но его драйвера благополучно показывают его как локально подключенное устройство. Есть программа, в которой производится вывод на принтер примерно такого вида:

Printer.PrinterIndex:=Printer.Printers.IndexOf('THERMAL LK-TXXX');
Printer.BeginDoc;
directtoprinter(Chr($1B) + '@',false);
directtoprinter(Chr($1B) + 'M1',false);
directtoprinter('Тест!',true);
Printer.EndDoc;

Но это не удовлетворяет цели, так как хотелось бы при печати каждой строки получать статус принтера - не закончилась ли в нем бумага или случилось еще чего. Вопрос: есть ли способ в случае с объектом Printer получать при печати состояние принтера?

Вариант 2. Если нет, то для Ethernet и USB принтеров есть хитрый трюк, команда "net use lpt1: \\127.0.0.1\printer" транслирующая последовательный порт в принтер. Можно ли реализовать это действия функциями WinApi в программе?


DiamondShark   (2010-11-22 18:22:00) [1]


> хотелось бы при печати каждой строки получать статус принтера

Со спулером -- унреально.


DiamondShark   (2010-11-22 18:09:00) [2]

Я не помню, как там всё устроено в объекте Printer, а дельфей под рукой нет. Но если я ничего не путаю, то он реализует только GDI-печать.

Вам же нужен, судя по задаче, RAW-вывод.
Тогда:

OpenPrinter
StartDocPrinter
WritePrinter
ReadPrinter (если драйвер поддерживает)
GetJob


Наверх

Титульная страница Поиск, карта сайта Написать письмо