Мягкое и твердое в мире принтеров

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

В настоящее время грядет новая революция. На смену бумаге придут, а кое-где уже пришли, магнитные носители информации. Но говорить об их всеобщем засилье преждевременно. Они не удовлетворяют всем потребностям людей. Попробуйте убедить меня в том, что в транспорте удобнее читать электронную версию газеты, а не ее бумажный вариант. Во-первых, портативный компьютер весит в несколько десятков раз больше и занимает больше места. Во-вторых, как всегда на самом интересном месте сядут батарейки. И в-третьих, окружающие просто не поймут. А это значит, есть вероятность, что могут просто побить, а могут и отобрать электронную игрушку. И это может случиться не только у нас, но и на гнилом Западе. Как видите, пока бумага может спать спокойно. В обозримом будущем ее позиции тверды как скала.

Но горы информации уже записаны на магнитные носители и рост этих гор принял необратимый характер. Нам остается только смириться с этим. Если мы не имеем возможности использовать информацию в электронном виде, будем использовать на бумаге. Работающие на компьютере в курсе, что для вывода информации из ЭВМ на бумагу применяют принтеры.

Для остальных приведу маленькую справку. Принтер - это сложное электромеханическое устройство, печатающее текст или графику на бумаге. Принтер наносит слой красителя на бумагу, который формирует рисунок или текст. Для переноса красителя на бумагу существуют различные способы. В зависимости от применяемого способа печати, принтеры могут быть ударного действия, струйные, лазерные и сублимационные.

Принтеры, работающие по принципу переноса красителя посредством механического удара, были первыми устройствами, применявшимися для вывода результатов работы ЭВМ на бумагу. Их родословная берет начало от печатных машинок. Еще в конце 80-ых годов в журналах для радиолюбителей можно было встретить описание схем подключения электрических печатных машинок к ПЭВМ. В настоящее время такие устройства можно встретить... Даже не знаю, где.

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

Печать в струйных принтерах осуществляется посредством нанесения маленьких капель чернил на бумагу. Баталии, которые бушевали на просторах механических ударных принтеров, не обошли стороной мир струйных принтеров. Узкой показалась дорога для струйных принтеров, использующих разные технологии: технологию пузырьковой и технологию пьезокерамической печати.

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

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

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

Каждая из перечисленных технологий печати имеет свои положительные и отрицательные стороны. Например, с принтерами, использующими лазерную технологию печати, другие принтеры не могут тягаться ни по скорости печати, ни по уровню шума. Однако стоимость печати одной страницы высокая. Потратив те же деньги, на матричном принтере вы сможете напечатать несколько страниц. В свою очередь для цветной печати выгоднее всего применять струйный принтер.

Для того, чтобы эффективно использовать возможности принтера, необходимо уметь обращаться с его командным языком, изучение которого начнем со знакомства со строением принтера.

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

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

Информация, принятая первым блоком, поступает в блок обработки. В этом блоке производится формирование команд управления работой механизмов принтера: печатной головкой, двигателями перемещения бумаги и печатной головки, световыми индикаторами.

Сформированные команды блок обработки посылает в блок управления двигателями, который претворяет в жизнь задания партии и правительства. На его плечи ложится вся ответственность за правильность выполняемых действий.

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

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

В настоящее время самой распространенной является система команд управления матричными принтерами фирмы Seiko Epson Corporation. Принтеры, выпускаемые другими фирмами, используют систему команд принтеров Epson наравне с собственной. Я вам больше скажу. Некоторые струйные и лазерные принтеры понимают команды "старших братьев" - матричных принтеров.

Изучение системы команд управления матричными принтерами фирмы Seiko Epson Co. начнем с команд перемещения бумаги. Эта группа команд выполняется всегда, независимо от того, что вы печатаете: текст или графику. Если бы эти команды не существовали, то их следовало бы выдумать. Первой по значимости в этой группе стоит команда возврата каретки (CR). Зрелые программисты могут вспомнить клавишу <ВК> - Возврат каретки. На современных клавиатурах она изменила простое русское имя на модное теперь западное и называется <Enter>. Несмотря на это, ее назначение осталось прежним. Она завершает ввод текущей строки и переходит в начало следующей. А это значит, что команда возврат каретки используется для окончания строки текста. Получив эту команду, принтер завершает печать текущей строки и перемещает печатную головку в ее начало.

Для того, чтобы принтер начал печатать со следующей строки, необходимо подать команду перевода строки (LF). Как ясно из названия, команда приказывает принтеру завершить печать текущей строки и перевести бумагу на одну строку вперед.

При использовании языков программирования высокого уровня программисту нет необходимости подавать эти команды. Операторы и функции вывода делают это самостоятельно. Например, оператор LPRINT языка Basic автоматически добавляет в конец каждой строки команды CR и LF.

Для того, чтобы определить расстояние, на которое должна перемещаться бумага при выполнении команды LF, применяется команда ESC "J" n. Значение переменной n определяет количество элементарных шагов, на которое переводится бумага. При выполнении одной команды LF бумагу можно переместить на расстояние от 0 до 255 элементарных шагов. Один элементарный шаг зависит от типа принтера. Для матричных принтеров, имеющих 9 иголок, один шаг равен 1/216 дюйма (приблизительно 0.12 мм).

Следует обратить внимание на то, что команда ESC на любом языке программирования записывается одним символом. ASCII-код этого символа равен 27. Для записи количества элементарных шагов также используется один символ. ASCII-код этого символа может принимать значение от 0 до 255. Например, на Basic'е команда перемещения бумаги на 36 элементарных шагов будет записана следующим образом:

LPRINT CHR$(27);"J";CHR$(36)

Создатели принтера предоставили возможность осуществлять подачу бумаги в обоих направлениях: вперед и назад. Для подачи бумаги назад применяется команда ESC "j" n. При получении этой команды принтер завершает печать текущей строки и перемещает бумагу на заданный интервал. В отличие от команды ESC "J" n, команда ESC "j" n не изменяет межстрочный интервал и горизонтальную позицию печати.

Как вы заметили, команда ESC "J" n позволяет устанавливать произвольное расстояние между строками. Кроме нее, имеются команды, устанавливающие фиксированный интервал между строками: 1/8, 7/72 и 1/6 дюйма. Для того, чтобы установить один из этих интервалов, необходимо подать одну из следующих команд ESC "0", ESC "1" или ESC "2". По умолчанию при включении принтера установлен интервал 1/6 дюйма. Он равен одному интервалу пишущей машинки.

Отдельно стоит поговорить о команде перехода к началу формата (FF). При получении команды FF принтер распечатывает текущую строку и переводит бумагу к началу следующего листа. ASCII - код команды перехода к началу формата (FF) равен 12. Прелесть этой команды состоит в том, что она поддерживается всеми существующими системами команд управления принтерами.

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

Сергей ОСОКО

LPRINT CHR$(27);"0";
FOR i = 1 TO 3
 LPRINT "Межстрочный интервал 1/8 дюйма"
NEXT
LPRINT CHR$(27);"1";
FOR i = 1 TO 3
 LPRINT "Межстрочный интервал 7/72 дюйма"
NEXT
LPRINT CHR$(27);"2";
FOR i = 1 TO 3
 LPRINT "Межстрочный интервал 1/6 дюйма"
NEXT
LPRINT CHR$(27); "J"; CHR$(255)
FOR i = 1 TO 3
 LPRINT "Межстрочный интервал 255/216 дюйма"
NEXT
FOR i = 1 TO 10
 LPRINT CHR$(27); "j"; CHR$(255) 'Подача бумаги назад"
NEXT
LPRINT CHR$(12) 'Команда перевода формата
Версия для печатиВерсия для печати

Номер: 

17 за 1998 год

Рубрика: 

Азбука программирования
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!