Управления принтером

5.11.2. Управление принтером

 

В качестве примера для рассмотрения выберем 9-игольчатый точечно-матричный принтер среднего класса EPSON LX-800 японской корпорации Seiko Epson, который поставляется с ПЭВМ серии ЕС, а также с другими IBM-совместимыми машинами. Многие производители печатающих устройств обеспечивают совместимость своих изделий с принтерами фирмы Epson.

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

 

Общая характеристика принтера EPSON LX-800

 

Печатающее устройство EPSON LX-800 обладает следующими техническими характеристиками:

Метод печати (принцип действия):                                                   точечно-матричный;

Цвет печати:                                                                                                            черный;

Режимы работы:                                                                       текстовый и графический;

Градации качества печати в текстовом режиме:

Draft (черновая печать);

NLQ (печать с качеством, близким к типографскому);

Максимальная высота печатного символа:         3,1 мм;

Ширина символа:                                                      2,1 или 1,05 мм с возможностью увеличения вдвое;

Плотность печати:                         10,12,17 или 20 символ/дюйм с возможностью уменьшения вдвое;

Число символов в строке:       80, 96, 132 или 160 (узкая каретка) с возможностью уменьшения вдвое;

Межстрочный интервал: 1/6 дюйма (4,233 мм) или программируется с дискретностью 1/216 дюйма (0,118 мм);

Скорость печати:

180 символ/с при печати с плотностью 12 символ/дюйм и качеством Draft;

150 символ/с при печати с плотностью 10 символ/дюйм и качеством Draft;

25 символ/с при печати с плотностью 10 символ/дюйм и качеством NLQ;

Разрешающая способность в графическом режиме (плотность печати):

по вертикали — 72 точка/дюйм (2,835 точка/мм);

по горизонтали — до 240 точка/дюйм (9,449 точка/мм); 

Направление печати:                                                                     двунаправленное в текстовом режиме;

                                                                                       однонаправленное в графическом режиме;

Число копий (под копирку):                     до 3 при условии, что толщина пакета не превышает 0,25 мм;

Ширина бумаги:                                                                        рулонная: 4—10 дюймов (102 — 254 мм);

                                                                                  листовая: 7,15 — 8,5 дюймов (182 — 216 мм);

Срок службы печатающей головки:                                    200 млн. символов при 14 точках в символе;

Габариты:                                                                                                                               399x308x91 мм;

Масса:                                                                                                                                                      5,1 кг,

Напряжение:                                                                                                            220 В переменного тока;

Потребляемая мощность:                                                                                                                  70 В*А.

В текстовом режиме обеспечивается печать с использованием различных стилей. Под стилем будем понимать совокупность характеристик печатаемых символов и их расположения в строке. Стиль определяется:

1) шрифтом (формой символов);

2) шагом (плотностью размещения символов в строке);

3) выделением символов;

4) качеством печати.

Принтер EPSON LX-800 поддерживает один шрифт (без названия) в режиме Draft и два шрифта (Roman и Sans Serif) в режиме NLQ. Шрифт Roman является прямым шрифтом, аналогичным шрифту пишущей машинки. Шрифт Sans Serif — это так называемый рубленый шрифт (символы угловаты, т.е. менее округлы, чем в предыдущем шрифте). Шрифты могут задаваться как аппараты о (переключателями или клавишами), так и посредством управляющих последовательностей.

Следующие две составляющие стиля являются по сути модификаторами шрифта, видоизменяя его тем или иным образом. Поэтому можно считать, что EPSON LX-800 обеспечивает печать гораздо большим количеством шрифтов.

Поддерживаются следующие модификаторы шрифта, определяющие шаг:

— нормальный (Pica);

— полусжатый (Elite);

— сжатый (compressed, или condenced);

растянутый (expanded, или double-width).

Нормальный шрифт соответствует французскому типографскому стандарту, распространенному в Европе (в английской системе ему соответствует «цицеро»).

Полусжатый шрифт отличается от нормального только уменьшенным интервалом между символами.

Модификатор «сжатый» используется совместно с нормальным или полусжатым шрифтами, увеличивая плотность размещения символов примерно на 70% (см. табл. 5.20).

Таблица  5.20

Влияние  модификаторов  шага  на  плотность размещения  символов

 

Модификаторы

Ширина символа, мм

Плотность, символ/дюйм

Максимальное      число символов  в строке          

нормальный

2,1

10

80

полусжатый

2,1

12

96          

нормальный, сжатый

1,05

17

132          

полусжатый, сжатый

1,05

20

160          

 

Модификатор «растянутый» совместим со всеми представленными в табл. 5.20 комбинациями и приводит к увеличению ширины символов, а также промежутков между ними вдвое. Поэтому плотность символов и максимальное число символов в строке уменьшаются ровно в два раза.

В принтере EPSON LX-800 реализованы следующие возможности выделения символов (т.е. текста):

— полужирная печать (символ выводится два раза с небольшим смещением печатающей головки вправо при повторной печати);

— двухпроходная печать (каждая строка выводится два раза с незначительной протяжкой бумаги перед вторым проходом печатающей головки);

— печать курсивом (с наклоном);

— печать с подчеркиванием.

Двухпроходная печать аналогична режиму NLQ, и поэтому в NLQ она игнорируется, хотя и может специфицироваться.

За некоторым исключением перечисленные модификаторы совместимы между собой и с мо­дификаторами, определяющими шаг. Информация по совместимости модификаторов шрифта и способам их задания (установки) представлена в табл. 5.21. В ней приняты следующие обозначения:

Т — переключатели (тумблеры), расположенные на задней стенке принтера;

К — клавиши на пульте управления, размещенного в правом ближнем углу крышки печатающего устройства;

П — управляющие последовательности;

D — режим Draft;

Q — режим NLQ.

В колонке «Способы установки» указаны альтернативные способы задания модификаторов, а в других клетках определяется совместимость модификаторов, которая зависит от выбранного

Таблица 521

Способы установки и  совместимость модификаторов  шрифта

 

 

Модификатор

Способы установки

Шаг

Выделение

нор­маль­ный

по­лу­сжа­тый

сжа­тый

рас­тя­ну­тый

по­лу­жир­ный

двух­про­ход­ный

кур­сив

под­чёр­ки­ва­ние

Шаг

нормальный

К, П

-

D&Q

D&Q

D&Q

D

D&Q

D&Q

полусжатый

К, П

-

D

D&Q

D&Q

D

D&Q

D&Q

сжатый

Т, К, П

D&Q

D

D&Q

D

D

D

D&Q

растянутый

П

D&Q

D&Q

D&Q

D&Q

D

D&Q

D&Q

Вы­де­ле­ние

полужирный

К, П

D&Q

D&Q

D

D&Q

-

D&Q

D&Q

двухпроходной

К, П

D

D

D

D

-

D

D&Q

курсив

Т,      П

D&Q

D&Q

D

D&Q

D&Q

D

D&Q

подчёркивание

П

D&Q

D&Q

D&Q

D&Q

D&Q

D&Q

D&Q

 

 

качества печати. Если специфицировано D, то модификаторы совместимы только в режиме Draft, а если D&Q — то как в режиме Draft, так и в режиме NLQ. Автономно могут использоваться только два взаимно исключающих друг друга модификатора: «нормальный» и «полусжатый».

Принтер EPSON LX-800 снабжен СП ПЗУ, в котором записаны четыре пары (аппаратных) кодовых страниц:

1) две кодовые страницы, соответствующие основной кодировке кириллицы;

2) две кодовые страницы для курсива;

3) две кодовые страницы, соответствующие кодовой странице 437 (см. табл. 53 в подразделе 53);

4) две кодовые страницы, соответствующие альтернативной кодировке (см. табл. 5.5 в под­разделе 53).

Кодовые страницы в каждой паре различаются тем, что в первой из них кодами 80Н — 9FH представляются те же символы, что и кодами ООН — 1FH, т.е. осуществлено дублирование двух колонок кодовой таблицы. Вторая кодовая страница пары совпадает с соответствующим ей оригиналом (прототипом). Кодовые страницы для курсива содержат в первой половине символы прямого, а во второй — наклонного начертания. Русские буквы в них не входят.

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

Дополнительно к поддержке различных кодовых страниц принтер EPSON LX-800 обеспечивает смену символов с кодами 23Н, 24Н, 40Н, 5ВН, 5СН, 5DH, 5ЕН, 60Н, 7ВН, 7СН, 7DH и 7ЕН в зависимости от выбранного набора национальных символов. Требуемый набор (один из восьми) устанавливается переключателями или управляющей последовательностью. Дополнительно к этому можно задействовать еще пять наборов, но только путем посылки на принтер управляющей последовательности. С целью полной поддержки кодовой страницы 437, основной и альтерна­тивной кодировки следует выбрать набор национальных символов для США.

Кодовые таблицы и наборы национальных символов хранятся в СППЗУ в виде совокупностей матриц символов. Матрицы описывают порядок вычерчивания соответствующих символов по точкам, а требуемая матрица во время печати выбирается в соответствии с кодом символа и установленной кодовой страницей (с учетом набора национальных символов). Поэтому часть СППЗУ, хранящую матрицы символов, называют знакогенератором. Матрицы символов раз­личаются не только в зависимости от кодовой страницы, но и от уровня качества печати. В принципе знакогенератор можно перепрограммировать, но для этого требуется специальное оборудование.

Матрицы для модифицированных шрифтов в СППЗУ отсутствуют. Требуемые символы в этих условиях формируются из матриц для режима Draft (или NLQ) при помощи микропрограмм, записанных в СППЗУ.

Рассматриваемый принтер вместе с тем позволяет заменить до шести стандартных символов специально разработанными. Чтобы произвести замену, нужно подготовить матрицы символов и записать их в предназначенное для этого ОЗУ небольшого объема, находящееся в принтере. Режимы Draft и NLQ снабжаются отдельными матрицами.

Возможности принтера EPSON LX-800 по форматированию текста сводятся к следующему:

— задание межстрочного интервала;

— автоматическое разбиение текста на страницы (даже при отсутствии в выводимых данных команд на перевод страницы) или печать текста непрерывным потоком (с возможностью перевода страницы по командам в выводимой информации);

— печать надстрочных и подстрочных индексов;

— выключка (выравнивание текста) по левой или правой границе, а также центрирование;

— горизонтальная и вертикальная табуляция.

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

Управляющие последовательности (команды принтера) реализуют все его возможности и позволяют печатать фрагменты текста различными стилями, так как сами команды могут быть помещены в выводимый текст. Этот способ управления принтером доступен только квалифи­цированным пользователям.

Команды DOS и различные программные продукты используют команды принтера, но в общем случае — ограниченное их подмножество. Программы, способные управлять принтерами, учитывают их особенности, как правило, предлагая задать пользователю модель устройства. Если принтер EPSON LX-800 программным продуктом не поддерживается, то следует выбрать одну из следующих моделей, которые перечислены в порядке уменьшения предпочтения: FX-800, ЕХ-800, LX-80, FX-85, FX-80, RX-80, принтер EPSON или принтер для черновика.

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

Использование переключателей и клавиш

 

Принтер EPSON LX-800 имеет двенадцать переключателей, расположенных на задней стенке устройства и разбитых на группы. 8 переключателей первой группы обозначаются как 1-1 — 1-8, а 4 тумблера второй группы — как 2-1 — 2-4. Положение переключателя можно изменить тонким острым предметом, например отверткой или шариковой ручкой. Состояние «Включен» (ON) соответствует верхнему положению переключателя.

Состояние переключателей определяет режимы работы, в которые устанавливается принтер при включении питания или при получении команды ESC @. Затем режимы могут быть изменены клавишами и/или управляющими последовательностями.

Смену положения переключателей нужно производить только при отключенном питании принтера

Функции переключателей сведены в табл. 5.22 — 5.24. При выборе режима NLQ переклю­чателем 1-5 (табл. 5.22) устанавливается шрифт Roman. Для использования в СНГ нужно включить переключатели 1-3, 1-4, 1-6, 1-7 и 1-8 (табл. 5.23 и 5.24). При этом будет выбрана альтернативная кодовая таблица (никакая дополнительная команда не требуется). Вот почему драйвер, поддер­живающий на принтере русский шрифт, подключать нет никакой необходимости.

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

После подачи питания выбор режимов работы принтера может быть осуществлен при помощи пульта управления, на котором расположены четыре индикаторные лампочки и три клавиши (рис. 5.15).

Индикаторные лампочки информируют о состоянии печатающего устройства:

POWER (ПИТАНИЕ) — загорается при включении питания;

READY (ГОТОВО) — горит, когда принтер готов к приему данных (во время печати мигает);

PAPER OUT (КОНЕЦ БУМАГИ)    — загорается, когда в принтере заканчивается лист (рулон) бумаги или бумага неправильно установлена;

ON LINE (НЕАВТОНОМНЫЙ)    — горит, когда принтер находится в логической связи с ПЭВМ, т.е. может принимать данные (эта лампочка со­вмещена с клавишей ON/ OFF LINE).

Сенсорные клавиши имеют следующее назначение:

ON/OFF LINE (НЕАВТОНОМНЫЙ/АВТОНОМНЫЙ) - переключает принтер попеременно в неавтономное и автономное состояние;

NLQ/FORM FEED (РЕЖИМ NLQ/ПЕРЕВОД СТРАНИЦЫ) - в автономном состоянии при­водит к прогону рулонной бумаги до начала следующей страницы, а в неавтономном — к выбору режима печати NLQ. Дополнительные нажатия этой клавиши в неавтономном со­стоянии принтера обеспечивают попеременный выбор шрифта Roman или Sans Serif (звуковая сигнализация срабатывает два или три раза соответственно);

Таблица  5.22

Функции переключателей

 

Номер переклю­чателя

Функции

ВКЛ (ON)

ВЫКЛ (OFF)

Заводская уста­новка

1-1

Шаг

сжатый

нормальный

ВЫКЛ

1-2

Вид символа "нуль"

Ø

0

ВЫКЛ

1-3

Кодовая страница

 

 

см. табл. 5.23

 

 

ВЫКЛ

1-4

ВКЛ

1-5

Качество печати

NLQ

Draft

ВЫКЛ

1-6

Набор

национальных символов

 

 

 

см. табл. 5.24

 

 

 

ВКЛ

1-7

ВЫКЛ

1-8

ВКЛ

2-1

Длина страницы

12 дюймов

11 дюймов

ВКЛ

2-2

Устройство подачи листовой бумаги

действует

не действует

ВЫКЛ

2-3

Разбиение на страницы при печати на рулонную бумагу

действует

не действует

ВЫКЛ

2-4

Автоматический перевод строки по символу СR

действует

зависит от наличия сим­вола LF

ВЫКЛ

 

Таблица  5.23

Выбор пары кодовых страниц

 

Номер пары ко­довых страниц

 

 

Номер переключателя

1-3

1-4

2

ВЫКЛ

ВЫКЛ

1

ВЫКЛ

ВКЛ

3

ВКЛ

ВЫКЛ

4

ВКЛ

ВКЛ

 

Таблица  5.24

Установка  набора национальных символов

 

Страна

 

 

Номер переключателя

1-6

1-7

1-8

США

ВКЛ

ВКЛ

ВКЛ

Франция

ВКЛ

ВКЛ

ВЫКЛ

Германия

ВКЛ

ВЫКЛ

ВКЛ

Великобритания

ВКЛ

ВЫКЛ

ВЫКЛ

Дания

ВЬКЛ

ВКЛ

ВКЛ

Швеция

ВЫКЛ

ВКЛ

ВЫКЛ

Италия

ВЫКЛ

ВЫКЛ

ВКЛ

Испания

ВЫКЛ

ВЫКЛ

ВЫКЛ

 

DRAFT/LINE FEED (РЕЖИМ DRAFT/ПЕРЕВОД СТРОКИ) — в автономном состоянии приводит к протяжке бумаги на одну строку, а в неавтономном — к выбору режима печати Draft (звуковая сигнализация срабатывает один раз). Эта кнопка управляет также автоматической загрузкой в принтер следующего листа бумаги (AUTO LOAD) в автономном состоянии, если бумага не заправлена

С целью проверки работоспособности принтера и получения образцов шрифтов можно осуществить его автономное тестирование. Для этого следует:

1) заправить бумагу;

2) отключить питание и затем снова его включить, удерживая кнопку DRAFT нажатой. Принтер начинает печать различных символов с тем качеством и тем шрифтом, которые установлены переключателем 1-5. Удерживать клавишу DRAFT далее нет необходимости. Тес­тирование прекращается при отключении питания или окончании бумаги.

Если в соответствии с п. 2 удерживать не клавишу DRAFT, а клавишу NLQ, то независимо от положения переключателя 1-5 тестирование будет осуществляться в режиме NLQ (шрифты Roman и Sans Serif будут чередоваться).

 

 

Рис. 5.15. Пульт управления

 

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

Для включения режима выбора модификатора требуется:

1) перевести устройство в неавтономное состояние;

2) удерживая клавишу ON/OFF LINE нажатой, нажать и клавишу FORM FEED.

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

ON/OFF LINE      — осуществляет указание модификатора, который требуется задать;

FORM FEED        — осуществляет фиксацию указанного модификатора;

LINE FEED — отменяет режим выбора модификатора шрифта.

Для установки модификатора шрифта после включения режима его выбора следует:

1) определить номер п требуемого модификатора в соответствии со следующим:

1 — полужирный шрифт;

2 — двухпроходный шрифт,

3 — сжатый шрифт,

4 — полусжатый шрифт;

2) нажать клавишу ON/OFF LINE п раз для указания требуемого модификатора;

3) нажать клавишу FORM FEED для фиксации модификатора;

4) нажать клавишу LINE FEED для отмены режима выбора модификатора;

5) нажать клавишу ON/OFF LINE для перевода принтера в неавтономное состояние.

Если требуется установить два совместимых модификатора с номерами п и т, причем п < т, то следует выполнить пункты 1 — 3 для п, а затем — пункты 2 и 3 для m — п. Задание трех совместимых модификаторов с номерами п, m и k при условии, что n<m<k, осуществляется аналогично: сначала фиксируется модификатор п, затем — m — п и, наконец,k т.

Например, для установки модификаторов «сжатый» и «полусжатый» следует:

1) нажать клавишу ON/OFF LINE 3 раза;

2) нажать клавишу FORM FEED;

3) нажать клавишу ON/OFF LINE 1 раз;

4) нажать клавишу FORM FEED;

5) нажать клавишу LINE FEED;

6) нажать клавишу ON/OFF LINE.

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

Принтер EPSON LX-800 обеспечивает выдачу дампа данных, т.е. в точности той информации, которая получена устройством. Это позволяет проверить, как те или иные коды интерпретируются принтером. Такая возможность облегчает для опытного пользователя выявление причин непра­вильной печати.

Для печати дампа следует, удерживая клавиши FORM FEED и LINE FEED в нажатом состоянии, включить питание. На бумаге отпечатается сообщение «Data Dump Mode». После этого клавиши можно отпустить. В таком режиме выдача данных на принтер приводит к печати строк, каждая из которых состоит из трех полей — номера строки, шестнадцатеричных кодов и их символьной интерпретации. Если код во втором поле не имеет графического представления (является для принтера управляющим), то в третьем поле он представляется точкой в соответствующей позиции. В режиме дампирования принтер на управляющие последовательности больше никак не реагирует. Для печати последней строки полученных принтером данных нужно нажать клавишу ON/OFF LINE. После этого режим печати дампа отменяется.

Команды принтера

 

Все модели принтеров фирмы Seiko Epson, а также многие другие печатающие устройства управляются командами (управляющими последовательностями) ESC/P (Epson Standard Code for Printer — стандартный код фирмы Epson для принтера). Эти команды пересылаются в принтер вперемежку с текстом, который требуется отпечатать. Принтер выделяет их из информационного потока и выполняет предписанные командами действия. В печатаемом документе команды никак не отображаются, но приводят к изменению стиля документа и к его форматированию.

Команда состоит из кода операции, за которым могут следовать несколько операндов (аргу­ментов). Код операции однозначно определяет команду и представляется либо управляющим символом ASCII, либо (так как управляющих символов всего 33) двумя символами — ESC и еще каким-либо, в том числе цифрой (но не числом, а символом). Операнды модифицируют (уточняют) действие команды или поставляют необходимую для ее выполнения информацию. Каждый операнд размещается в одном байте.

Некоторые команды допускают два альтернативных способа задания операнда я, где п — число 0 или 1: один из них состоит в спецификации операнда его двоичным кодом (ООН или 01Н), а другой — как символа (ЗОН или 31Н — см. табл. 5.3 в подразделе 5.3). Такие возможности мы будем обозначать через <n>.

Команды будем записывать последовательностью обозначений входящих в них символов (графические представления давать нецелесообразно из-за того, что получить их для управляющих символов совсем не просто). Шестнадцатеричную и десятичную кодировки можно узнать, ис­пользуя табл. 5.3 и 5.4 из подраздела 5.3. Числовые операнды (все они должны представляться двоичными кодами) будут обозначаться одиночными строчными латинскими буквами, набранными курсивом. Возможно приписывание справа номера операнда. Символьные операнды обозначаются так же, но для них делаются соответствующие оговорки.

Если не отмечено противное, символ О представляет букву, а не цифру.

Принтер EPSON LX-800 воспринимает команды следующих функциональных групп:

1)      команды подготовки принтера к работе:

 

ESC @

— инициализация принтера (как при включении питания). Текущая выдача не­медленно отменяется;

DC1

— выбор принтера (перевод в неавтономное состояние), если он был переведен в автономное состояние командой DC3. Устройство, установленное в автономное состояние клавишей ON/OFF LINE, не выбирается;

DC3

— невыбор принтера (перевод в автономное состояние до приема команды DC1). При этом устройство не может быть выбрано нажатием клавиши ON/ OFF LINE;

ESC s <п>

— включение (п -1) или выключение (п-0) режима пониженной скорости для уменьшения уровня шума;

ESC <

— установка режима однонаправленной печати для текущей строки (отменяется возвратом каретки) с целью более точного позиционирования печатающей головки;

ESC U <п>

— включение (n=1) или выключение (п=0) режима однонаправленной печати для более точного позиционирования печатающей головки;

ESC 8

— запрет срабатывания датчика конца бумаги с целью печати до конца листа;

ESC 9

— разрешение срабатывания датчика конца бумаги, в результате чего примерно за 30 мм до конца бумажного листа выдается звуковой сигнал и печать приостанавливается до заправки следующей страницы;

ESC ЕМ с

— включение (с — символ 4) или отключение (с — символ-цифра 0) устройства для подачи листовой бумаги, которое поставляется факультативно. Если его у Вас нет, то не пользуйтесь этой командой. Команда отменяет установку переключателя 2-2;                                  

BEL

— звонок (вырабатывается короткий звуковой сигнал);

 

2)      команды управления выводом данных:

 

CR

— возврат каретки (печатается строка из буфера принтера и печатающая головка возвращается в крайнее левое положение). Если переключатель 2-4 включен, то дополнительно осуществляется перевод строки;

САN

— отмена строки (текущая строка не печатается, но команды воспринимаются);

DEL

— забой символа (предыдущий символ не печатается, но если он принадлежит команде, то принтером воспринимается);

 

3)      команды вертикального/горизонтального перемещения:

 

FF

 

 

 

ESC C n

 

 

 

ESC C NUL n

 

 

ESC N n

 

 

 

 

 

 

ESC O

 

LF

 

 

ESC 0

 

ESC 1

 

ESC 2

 

ESC 3 n

 

ESC A n

 

ESC J n

 

 

VT

 

 

 

 

 

ESC B n1 n2 … NUL

 

 

 

 

 

 

 

ESC b c n1 n2 … NUL

 

ESC / c

 

ESC I n

 

ESC Q n

 

BS

 

 

 

 

 

 

 

 

 

ESC e n s

 

 

 

 

 

 

 

 

ESC f n s

 

 

HT

 

 

 

 

 

ESC D n1 n2 … NUL

― перевод формата (данные из буфера принтера печатаются на бумаге, и рулонная бумага прогоняется до начала следующей страницы в соответствии с ее текущей длиной, а бумажный лист просто выталкивается из принтера);

― установка длины страницы (но не длины поля текста на странице) равной п строкам при текущем интервале между строками. Число п должно находиться в интервале 1 - 127. началом страницы считается текущая строка;

― установка длин страницы (но не длины поля текста на странице) равной п дюймам (1 22). Началом страницы считается текущая строка;

― установка межстраничного интервала равным п (1 - 127) строкам (если на странице помещается т строк, то поле текста будет состоять из т - п строк, за которым до начала следующей страницы будет пропущено  п строк). Переключатель 2 – 3 выполняет аналогичную функцию, но задает стандартный интервал. Данная установка отменяется командами ESC O, ESC C и ESC C NUL;

― отмена разбиения на страницы, сделанного командой ESC N. установка переключателя 2 – 3 также отменяется;

― перевод строки (печатается текущая строка из буфера принтера, и бумага перемещается вперед на одну строку с учетом текущего интервала между строками);

― установка 1/8-дюймового (3,175-мм) межстрочного интервала (0 – цифра в символьном виде);

― установка 7/72-дюймового (2,469-мм) межстрочного интервала;

― установка 1/6-дюймового (4,233-мм) межстрочного интервала;

― установка п/216-дюймового межстрочного интервала (п – число в интервале 0 - 255);

― установка п/72-дюймового межстрочного интервала (п число в интервале 0 - 85);

― перевод строки на п/216 дюйма (п – число в диапазоне 0 - 255); возврат каретки не производится, и действующая установка межстрочного интервала не отменяется;

― вертикальная табуляция (бумага прогоняется до позиции следующей вертикальной табуляции для канала, установленного командой ESC /; если никакой канал не установлен, то используется канал 0; когда позиции вертикальной табуляции не установлены, бумага перемещается на одну строку);

― установка до 16 позиций вертикальной табуляции в терминах текущего межстрочного интервала. Числа n1, n2 , … (в диапазоне 1 - 255) перечисляются в порядке возрастания и указывают позиции вертикальной табуляции. Все позиции запоминаются для канала 0 (см. команду ESC b). Последующие изменения межстрочного интервала влияния на сделанную установку позиций вертикальной табуляции не оказывают. Команда ESC B NUL приводит к гашению текущей установки;

― установка позиций вертикальной табуляции для канала с (0 - 7). В остальном команда аналогична ESC B;

― выбор канала вертикальной табуляции (0 -7). Все последующие команды VT используют этот канал табуляции;

― установка левого поля равным п колонкам в терминах текущего шага;

― установка правого поля равным п колонкам в терминах текущего шага;

― возврат на шаг (печатается текущая строка из буфера принтера, после чего печатающая головка перемещается на шаг назад и устанавливается тем самым на последний отпечатанный символ). Эта команда может быть выполнена несколько раз, вплоть до левого поля, после чего она игнорируется. Команда BS также игнорируется после команды ESC а 1, 2 или 3. если DSнепосредственно следует за псевдографическим символом, то правильное положение печатающей головки при выводе последующих данных не гарантируется. BS можно использовать для комбинирования (наложения) символов;

― установка величины приращивания при горизонтальной или вертикальной табуляции. Если п = 0, то устанавливаются позиции горизонтальной табуляции с интервалом s пробелов. Максимальные значения s:

для нормального шага – 21;

для полусжатого шрифта – 25;

для сжатого шрифта – 36.

Если п = 1, то устанавливаются позиции вертикальной табуляции с интервалом s строк;

― горизонтальный/вертикальный пропуск. Если п = 0, то вставляются s пробелов (до 107). Если п = 1, то осуществляется перевод s строк;

― горизонтальная табуляция (печатающая головка перемещается вперед до следующей позиции горизонтальной табуляции). Стандартная установка соответствует приращению, равному 8 символам с нормальным шагом. Последующее изменение шага на позиции табуляции влияния не оказывает;

― установка до 32 позиций горизонтальной табуляции п1, п2, … (в порядке возрастания и в диапазоне 1- 137). Команда ESC D NUL  отменяет все установки. Установка после включения питания или команды ESC @ соответствует каждому восьмому символу;

 

4)      команды выбора печатного стиля:

 

ESC x   <n>

 

ESC k   <n>

 

ESC ! n

 

 

 

 

 

 

 

 

 

 

 

 

ESC P

ESC M

SI

ESC SI

DC2

 

SO

 

 

ESC SO

DC4

 

 

ESC W <n>

 

ESC E

ESC F

ESC G

ESC H

ESC S NUL

 

 

 

 

ESC S SOH

 

 

 

 

ESC T

ESC ― <n>

 

ESC a n

― выбор качества печати: режима Draft (n = 0) или NLQ (n = 1);

― выбор шрифта Roman (n = 0) или Sans Serif (n = 1) в режиме NLQ;

― выбор модификаторов шрифта. Операндом п задается сумма номеров следующих устанавливаемых, совместимых между собой  (см. табл. 5. 21) модификаторов:

0 – нормальный шаг;

1 – полусжатый шрифт;

4 – сжатый шрифт;

8 – полужирный шрифт;

16 – двухпроходной шрифт;

32 – растянутый шрифт;

64 – курсив;

128 – подчеркивание.

― выбор нормального шага;

― установка печати полусжатым шрифтом;

― установка печати сжатым шрифтом;

― то же;

― отмена печати сжатым шрифтом, установленной командой SI (ESC SI), клавишами или переключателем 1-1;

― установка печати растянутым шрифтом (только для текущей строки). Отменяется возвратом каретки или командой DC4;

― то же;

― отмена печати растянутым шрифтом, заданной командой SO (ESC SO), однако действие команд ESC W и ESC ! не блокируется;

― установка (п = 1) или отмена (п = 0) печати растянутым шрифтом;

― установка печати полужирным шрифтом;

― отмена печати полужирным шрифтом;

― выбор двухпроходного режима печати;

― отмена двухпроходного режима печати;

― выбор режима верхнего индекса. Последующие символы при печати будут иметь высоту, составляющую 2/3 от нормальной высоты, и располагаться в верхней части строки. Вместо NUL можно использовать символ-цифру 0;

― выбор режима нижнего индекса. Последующие символы при печати будут иметь высоту, составляющую 2/3 от нормальной высоты, и размещаться в нижней части строки. Вместо SOH можно использовать символ 1;

― отмена режима верхнего (нижнего) индекса;

― включение (п = 1) или выключение (п = 0) режима подчеркивания;

― выключка (выравнивание) в режиме NLQ. Допустимы следующие значения п:

0 – установка выключки с левой стороны;

1 – установка центрирования;

2 - установка выключки с правой стороны;

3 – установка полной выключки.

Стандартная установка соответствует п = 0. Полная выключка выполняется, когда буфер становится полным, или при получении команды CR, VT, LF или   FF. Команды HT и  BS не действуют, если п не равно 0. При п = 3 в пределах параграфа не должно быть команды CR;

 

5)      команды выбора кодовой страницы:

 

ESC t n

 

 

 

ESC 4

 

 

ESC 5

ESC R n

 

 

 

 

 

 

 

ESC 6

ESC 7

― выбор пары кодовых страниц. Допустимые значения п:

0 – выбор пары кодовых страниц для курсива;

       1 – выбор пары кодовых страниц, соответствующих кодовой странице 437.

Действие переключателей 1-3 и 1-4 отменяется;

― выбор режима курсива. Команда допустима даже при установке других кодовых страниц, однако псевдографические символы курсивом печататься не будут. В режиме Draft наклонные символы печатаются с пониженной скоростью;

― отмена режима курсива;

― выбор набора национальных символов. Допустимы следующие значения п:

0 – для США                                              7 – для Испании  (I)

1 – для Франции                                         8 – для Японии  (II)

2 – для Германии                                        9 – для Норвегии

3 – для Великобритании                           10 – для Дании  (II)

4 – для Дании  (I)                                       11 – для Испании  (II)

5 – для Швеции                                          12 – для Латинской Америки

6 – для Италии

― выбор второй кодовой страницы из пары;

― выбор первой кодовой страницы из пары;

 

6) команды определения символов (дополнительно см. следующий подпункт):

 

ESC & NUL n m d1 d2 … NUL NUL

 

 

 

ESC : NUL NUL NUL

 

 

 

ESC % n

― загрузка в принтер матриц определенных пользователем символов с кодами от п до т (в диапазоне 58 – 63, или ЗАН – 3FH). Числа d1, d2, … определяют вид символов; 

― копирование стандартных матриц символов с кодами 58 – 63 из СППЗУ в ОЗУ принтера с тем. Чтобы можно было определить новые символы;

― выбор стандартного (п = 0) или определенного пользователем (п = 1) набора символов. Используется совместно с командой RSC & (перед ней или после нее);

 

7)      команды выбора графического режима (дополнительно см. соответствующий подпункт):

 

ESC K n1 n2

 

 

ESC L n1 n2

 

 

ESC Y n1 n2

 

 

ESC Z n1 n2

 

 

ESC * m n1 n2

 

ESC ? s m

 

 

 

ESC ^ m n1 n2

―выбор восьмиигольчатого режима с одинарной плотностью (60 точка/дюйм) с общим числом колонок п1 + п2*256;

― выбор восьмиигольчатого графического режима с двойной плотностью (120 точка/дюйм) с общим числом колонок п1 + п2*256;

―выбор высокоскоростного восьмиигольчатого графического режима с двойной плотностью (120 точка/дюйм) с общим числом колонок п1 + п2*256;

― выбор восьмиигольчатого графического режима с учетверенной плотностью (240 точка/дюйм) с общим числом колонок п1 + п2*256;

― выбор восьмиигольчатого графического режима с номером т и общим числом колонок п1 + п2*256;

― модификация восьмиигольчатого графического режима. Здесь s – одна из букв K, L, Y или Z, задающая модифицируемый восьмиигольчатый графический режим, а m – номер нового режима;

― выбор девятиигольчатого графического режима с одинарной (т = 0) или двойной (т = 1) плотностью и общим числом колонок п1 + п2*256. требуется два числа для каждой печатаемой колонки.

 

Для выдачи команды (последовательности команд) на принтер можно воспользоваться одним из следующих способов:

1) создать программным способом или в ряде случаев текстовым редактором файл с командами и вывести его на принтер DOS-командой COPY file PRN или TYPE file >PRN;

2) создать текстовым редактором командный файл с DOS-командой ECHO, в качестве аргумента которой указана последовательность команд, а стандартный вывод перенаправлен на принтер, и выполнить его. В ряде случаев можно выдать команду ECHO и в ответ на приглашение DOS. Например, для возврата на шаг достаточно задать DOS-команду

ECHO ◄Ctrl-Н► >PRN

3) вывести команды на принтер непосредственно из программы.

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

Все установленные командами режимы при отключении питания сбрасываются.

Не забудьте после видимого окончания печати текста перевести принтер в режим OFF LINE (автономный), чтобы он смог отпечатать последнюю строку, если она не завершается символом CR.

Определение новых символов

 

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

Определение нового символа включает следующие этапы:

1) конструирование символа;

2) кодирование матрицы символа;

3) загрузку матрицы символа в ОЗУ принтера.

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

Режим Draft. Этап конструирования сводится к представлению символа точками в матрице, состоящей из 11 колонок и 9 рядов (по ряду на иглу). Первая и последняя колонки не используются, так как служат для разделения символов. Кроме того, для каждого отдельного символа задействуются только восемь из девяти рядов, причем обычно — верхние. Другая возможность состоит в использовании восьми нижних рядов (для случая, когда символ или его часть требуется несколько опустить вниз). Исходя из сказанного типичная заготовка для матрицы имеет вид, показанный на рис. 5.16. Двойной линией отделен неиспользуемый ряд. Ряды и колонки пронумерованы.

 

 

Рис. 5.16. Сетка для конструирования символов (режим Draft)

 

Точки можно ставить на пересечении каждого ряда и колонки. Единственное ограничение состоит в том, что никакие две точки не могут размещаться на пересечениях одного ряда и соседних колонок. Однако если допущено случайное перекрытие точек, то это не приведет к ошибке: просто одна из точек не будет печататься. Пример матрицы символа ↑ представлен на рис. 5.17.

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

 

 

Рис. 5.17. Матрица символа ↑ для режима Draft

 

Затем каждое двоичное число переводится в десятичную систему счисления. Процесс представ­ления колонки десятичным числом можно упростить, если использовать веса рядов сетки, записанные справа от матрицы. При этом достаточно сложить веса, которым соответствует точка в данной колонке. Для нашего примера получится следующий код матрицы:

32, 64, 32, 192, 63, 192, 32, 64, 32

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

Загрузка матрицы символа в ОЗУ принтера производится путем выдачи команд ESC :, ESC % и ESC & при условии, что принтер находится в режиме Draft. Команда ESC & в этом случае должна иметь формат

ESC & NUL п т q cl с2 ... с9 NUL NUL

где п = т     — код нового символа (выбирается разработчиком в диапазоне 58 — 63);

q                   — число 128, если не задействуется нижний ряд, или число 0, если не задействуется верхний ряд сетки;

cl с2 ... с9     — код матрицы символа.

Для рассматриваемого примера (если мы хотим новым символом заместить символ <, имеющий код 60) данная команда будет представлена следующим образом:

ESC & NUL 60 60 128 32 64 32 192 63 192 32 64 32 NUL NUL

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

Загрузить матрицу символа в ОЗУ принтера можно, в частности, следующей программой на языке Turbo Pascal:

Program LoadDraftUserSymbol;

Uses Printer,

Var

c:string;

Begin

Write(Lst, #27':'#0#0#0);                                                                         {выдача команды ESC :}

Write(Lst, #27,%'#1);                                                                            {выдача команды ESC %}

c:=   #27'&'#0#60#60#128+                                                      {формирование команды ESC &}

        #32#64#32#192#63#192#32#64#32#0#0;

Write(Lst, с)                                                                                           {выдача команды ESC &}

End.

После выполнения этой программы вместо символа будет печататься символ ↑.

Определить несколько новых символов можно одним из следующих способов:

1) для каждого символа выдать команду ESC & с уникальным кодом п = т;

2) выдать единственную команду ESC &, в которой я не равно т, я задает первый код символа, т задает последний код символа, а последовательности q cl с2 ... с9 специфицируются подряд для каждого символа.

Режим NLQ. При конструировании символа для этого режима можно задействовать 12 колонок и 18 рядов (рис. 5.18), так как печать будет осуществляться за два прохода печатающей головки. Точки на такой сетке можно представлять на каждом пересечении ряда и колонки без каких-либо ограничений, однако обычно слева и справа оставляют свободным один или два ряда для разграничения символов. В связи с тем что точки могут перекрываться, их принято обозначать

 

 

Рис. 5.18. Матрица символа для режима NLQ

 

незаштрихованными окружностями. В качестве примера на рисунке изображена матрица того же символа ↑.

Очевидно, столбец матрицы символа для режима NLQ невозможно представить двоичным числом в формате байта (требуется 18 разрядов). Поэтому каждый столбец кодируется триадой. Необходимое для этого разбиение показано в левой части рисунка, а в правой его части проставлены веса разрядов. Кодом матрицы для рассматриваемого примера будет являться следующая последовательность 36 чисел:

16, 0, 0, 48, 0, 0, 112, 0, 0, 80, 0, 0, 176, 0, 0, 255,

255, 192, 176, 0, 0, 80, 0, 0, 112, 0, 0, 48, 0, 0, 16, 0, 0, 0, 0, 0

Загрузка матрицы в ОЗУ принтера, находящегося в режиме NLQ, производится аналогично режиму Draft, но команда ESC & должна иметь следующий формат:

ESC & NUL п т NUL 12 NUL cl с2 ... c36

Здесь п и т имеют тот же смысл, что и раньше, число 12 указывает количество колонок, а числа cl с2 ... c36 являются кодом матрицы символа.

Требуемые команды могут быть выданы из программы на языке Turbo Pascal следующим образом:

Program LoadNLQUserSymbol;

Uses Printer;

Var

с: string;

Begin

Write(Lst, #27':'#0#0#0);

Write(Lst, #27'%'#1);

c: = #27\fc'#0' < < '#0#12#0 +

#16#0#0#48#0#0#112#0#0#80#0#0#176#0#0#255#255#192 +

#176#0#0#80#0#0#112#0#0#48#0#0#16#0#0#0#0#0;

Write(Lst, c)

End.

Определенный описанным способом символ доступен как в шрифте Roman, так и в шрифте Sans Serif.

Имеется возможность определения (в том числе одних и тех же) символов как в режиме Draft, так и в режиме NLQ при одном и том же сеансе работы принтера.

Точечная графика

 

Графические команды принтера позволяют печатать на бумаге любое изображение, состоящее из расположенных в определенных местах точек. Оно формируется путем горизонтального перемещения печатающей головки и печати точек в нужных местах. В основном режиме задействуются только верхние 8 игл. Затем бумага протягивается на ширину строки (расстояние между девятой и второй иглами) и печатается следующая строка. Этот процесс может быть продолжен до тех пор, пока на бумаге -не получится требуемое изображение.

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

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

Разрешающая способность принтера по вертикали определяется расстоянием между соседними иглами, которое составляет 1/72 дюйма. Конечно, можно было бы ее повысить путем печати строки за несколько проходов, протягивая бумагу перед каждым последующим проходом на небольшое расстояние. Это привело бы к уменьшению скорости  печати (которая и так в графическом режиме мала) и к усложнению логики управления принтером. В модели EPSON LX-800 многопроходная печать в графическом режиме не реализована.

Разрешение принтера по горизонтали определяется только возможностями управления печа­тающей головкой и в принтере EPSON LX-800 может достигать 240 точка/дюйм.

В командах выбора графического режима указывается количество колонок, которые требуется отпечатать на данной строке. Коды колонок следуют непосредственно за командой. После отпечатывания заданного количества колонок принтер автоматически возвращается в текстовый режим. В каждой строке можно разместить почти 2000 колонок. Это число не может быть представлено в формате байта. Поэтому количество подлежащих печати колонок п задается двумя операндами nl и п2, где п2 — целочисленное частное, a nl — остаток от деления п на 256.

Для перевода строки при печати изображений целесообразно использовать команду ESC А 8.

Принтер поддерживает четыре специализированных и одну универсальную команду (ESC *) выбора восьмиигольчатого графического режима, которые имеют следующий формат

ESC К nl п2

ESC L nl п2

ESC Y nl п2

ESC Z nl п2

ESC * т nl п2

Каждый графический режим обеспечивает свое горизонтальное разрешение, или плотность печати (табл. 5.25).

Таблица  5.25

Восьмиигольчатые графические режимы

 

Режим

Специализированная

команда

м

(для

ESC *)

Горизонтальное

разрешение

точка/дюйм

с одинарной плотность

ESC К

0

60

с двойной плотность

ESC L

1

120

высокоскоростной с

двойной плотность

ESC У

2

120

с учетверенной плотностью

ESC Z

3

240

ЭЛТ 1

нет

4

80

графопостроитель

нет

5

72

ЭЛТ 2

нет

6

90

 

Режимы 4 и 6 обеспечивают согласование печатаемого изображения с изображением на экране дисплея. В этом случае отношение горизонтальной плотности к вертикальной на экране дисплея и на принтере будет одинаковым, т.е. изображение может быть передано без сжатия (растяжения). Режим 5 устанавливает горизонтальное разрешение равным вертикальному. В режимах 2 и 3 печатающая головка не может печатать две последовательных точки (в соседних колонках) одной иглой.

Для оперативного (без модификации всей программы) изменения графического режима можно использовать команду ESC Ism. Она позволяет присвоить другой восьми игольчатый графический режим одной из специализированных графических команд, заданной посредством s (К, L, Y или Z). Это приводит к изменению ширины печатаемого изображения без модификации высоты. Конечно, команда ESC ? должна быть выдана до специализированной графической команды.

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

Подлежащий печати рисунок обычно конструируется на миллиметровой бумаге. Нужно оп­ределиться в выборе графического режима в зависимости от потребной скорости печати (чем выше разрешение, тем она ниже) и качества изображения.

При конструировании рисунка нужно придерживаться следующих правил:

1) независимо от режима никакие точки не могут размещаться на горизонтальных линиях, а только по одной между ними;

2) в режиме с одинарной плотностью никакие точки не могут находиться на вертикальных линиях, а только по одной между ними;

3) в высокоскоростном режиме с удвоенной плотностью точки могут находиться и на вертикальных линиях, но никакие две точки не должны располагаться по горизонтали рядом;

4) в режиме с удвоенной плотностью точки могут находиться на вертикальных линиях без каких-либо ограничений;

5) в режиме с учетверенной плотностью действует правило 3, но для рядов рисунка лучше использовать не каждую строку миллиметровой бумаги, а через одну, чтобы примерно выдержать отношение между вертикальной и горизонтальной плотностью.

В качестве примера на рис. 5.19 представлен результат конструирования стрелки для печати в высокоскоростном режиме с двойной плотностью. Очевидно, такую стрелку можно разместить только на двух строках (8 рядов в одной и 4 ряда в другой строке). В верхней части рисунка проставлены коды колонок первой, в нижней части рисунка — второй строки. Такая стрелка может быть отпечатана следующей программой, составленной на языке Turbo Pascal:

Program PrintPointer;

Uses Printer,

Var

c: string;

Begin

Write(Lst, #27,Y,#41#0);                                                                                {установка режима}

с:*#64#32#80#8#69#2#64#0#64#0+                                          {формирование первой строки}

#64#0#64#0#32#0#16#0#8#0#8#0#8#0#8#0 +

#8#0#8#0#8#0#8#0#184#64#32#16#8#5#2; Write(Lst, с);                     {печать первой строки}

Write(Lst, #27,А,#8);                                                                     {установка межстрочного интервала}

Writeln(Lst);                                                                                                       {переход к новой строке}

Write(Lst, #27,Y,#41#0);                                                                                             {установка режима}

с: = #16#32#80#128#16#0#16#0#16+                                                     {формирование второй строки}

#0#16#0#16#0#32#0#64#0#128#0#128#0#128#0#128#0 +

#128#0#128#0#128#0#128#0#232#16#32#64#128#0#0; Writeln(Lst, с) {печать второй строки}

End.

 

 

Рис. 5.19. Конструирование стрелки

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