Вопрос
Есть парочка принтеров hp laserjet 1300. Сжатие используется для вывода на бумагу уменьшенным шрифтом в случае, если из дос-программ выводимое выходит за границы листа. На 1100-х и 1200-х все проходит нормально и делается так:
copy cond_on.esc lpt1 /b
copy line_prn.drv lpt1
line_prn.drv содержит:
&l12D
а cond_on.esc:
(s3T(s18H(s12V
где квадратики символы, которые выглядят как стрелочки >-
Перед печатью нужно пустить батник, который выполнит две вышеприведенные команды copy. При печати же на 1300-м задание застревает и выходит на печать только, если отправлять после него еще чего-нибудь. Хоть пустой файл, но это же заморочка. Может кто сталкивался с подобным и знает как побороть?
Ответ
Возможно, тебе поможет следующая команда, которую нужно выполнять (прямо или через батник) после печати:
echo ^L>prn
где ^L — это один знак с кодом 12.
Суть в том, что посылом знака «конец страницы» ты заставляешь принтер распечатать то, что накопилось в данный момент в буфере, даже если страница заполнена не вся.
Я полагаю, проблема у тебя в следующем: принтер печатает страницу только тогда, когда она заполнена полностью. Если страница не полная, то принтер не будет печатать, пока не придут новые данные, которые заполнят остаток страницы. Форсировать печать неполной страницы можно либо посылом кода конца страницы (^L), либо нажатием кнопки на панели принтера (когда принтер моргает лампочкой, показывающей наличие данных в буфере), либо конфигурированием принтера, чтобы он печатал неполную страницу, если в течение некоторого времени (2-3 секунды) в принтер не поступают новые данные.
Последнее (установка job timeout) можно выполнить либо через утилиту RPC (remote printer control), либо через еще один язык хьюлеттовских принтеров — готовится файл с инструкциями для принтера и посылается в него. Собсно, RPC именно так и делает. Формат этого файла я не помню, но на дискетах с драйверами к принтеру я его в свое время находил.
Arkady V.Belousov
Copyright 2000-2004 Сообщество Чайников
Контактная информация