Файл: jourdain_spravochnik_programmista.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.07.2020

Просмотров: 3070

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

пуск перфорации оставляет по три пустых строки сверху и снизу

каждой страницы. На самом деле принтер не распознает перфорацию,

вместо этого он считает, что в начальный момент бумага выравнена

на начало страницы и считает число переводов строки. Можно прог-

раммно переопределить установку переключателей, посылая на прин-

тер управляющие коды 27,56, чтобы принтер не делал пропуска пер-

форации и 27,57, чтобы делал пропуск перфорации.

Графический принтер использует код, который определяют число

строк, пропускаемых между страницами. Этот код 27,78,n, где n -

число строк от 1 до 127. Например, код 27,78,10 приведет к тому,

что принтер будет пропускать по 10 строк. Если межстрочный интер-

вал равен 1/6 дюйма, то 11-тидюймовая страница будет содержать 66

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

пропуск 10-ти строк. Уже Ваша программа должна позаботиться,

чтобы в самом начале прогнать бумагу на 5 строк, с тем чтобы 55

строк текста были центрированы на каждой странице.

Если используется бумага, размер которой отличается от стан-

дартного 11-тидюймового, то можно изменить длину страницы, с тем

чтобы пропуски перфорации происходили в нужном месте и чтобы

перевод формата устанавливал бумагу в правильную позицию. Размер

страницы может устанавливаться либо числом строк на странице,

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

пошлите код 27,67,n, где n - число строк. Та же последователь-

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

исключением того, что длина страницы записывается в форме 0,n,

где n может быть от 1 до 22 дюймов. Для стандартной страницы надо

послать команду 27,67,0,11.



6.2.4 Управление положением печатающей головки.




Печатаемый текст распределяется по странице частично за счет

движения бумаги [6.2.3], а частично за счет движения печатающей

головки. Головка может быть позиционирована в любое место, но не

путем задания ее координат. Вместо этого указывается ее смещение,

относительно самой левой позиции, которую она может достигать. У

принтера нет датчиков, сообщающих текущее положение головки. Ваша

программа должна отслеживать положение головки, если оно должно

быть известным. При этом хорошей практикокй является начинать

печать с подачи управляющего кода 27,60, который сдвигает головку

в самую левую позицию, не делая перевода строки (то же самое

делает и код возврата каретки).



При печати текста имеется несколько способов передвинуть го-

ловку в нужное положение. Она может сдвигаться вправо подачей

одного или нескольких символво пробела или табуляции и влево

подачей одного или нескольких символов "возврат на шаг" или сим-

вола возврата каретки. Движения осуществляются непрерывно - не

воспринимайте их как соответствующие последовательности на обыч-


ной пишущей машинке. До тех пор, пока Ваша программа знает на-

чальное положение печатающей головки она может комбинацией пере-

водов строки, пробелов, табуляций и возвратов на шаг форматиро-

вать Ваш вывод в соответствии с Вашими пожеланиями. Принтеры,

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

ваться и как графопостроители.

В графических режимах возможно перемещение головки на малые

доли дюйма. При печати текста Вы можете войти в графический ре-

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

нию, этот процесс существенно замедляет печать. Смотрите пример в

пункте [6.3.2].

Имеется специальный код, который заставляет головку всегда

возвращаться в крайнюю левую позицию перед печатью очередной

строки, отменяя двунаправленную печать. Хотя это значительно

замедляет печать, однако при этом достигается более точное пози-

ционирование головки. Это особенно полезно при работе в графичес-

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

код 27,85,1, а чтобы вернуться к двунаправленной печати - код

27,85,0.



6.2.5 Установка позиций табуляции.




В зависимости от принтера могут устанавливаться позиции гори-

зонтальной и вертикальной табуляции (графический принтер IBM не

имеет вертикальной табуляции). Горизонтальные табуляции опреде-

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

некоторых случаях допускаются до 112 позиций горизонтальной табу-

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

ния относительно верха страницы, а измеряются они в межстрочных

интервалах. Для большинства принтеров IBM допускается не больше

64-х позиций вертикальных табуляций.

Первые два байта кода для установки горизонтальной табуляции

27,68, а для установки вертикальной табуляции - 27,66. Для обоих

типов табуляций далее идет строка байтов, дающая позиции табуля-

ции в возрастающем порядке. Эта строка должна завершаться байтом

ASCII 0, который служит ограничителем. Для установки горизонталь-

ной табуляции в позициях 15, 30 и 60 пошлите на принтер код 27,

68, 15, 30, 60, 0. Для установки вертикальной табуляции в строках

8 и 12 - пошлите код 27, 66, 8, 12, 0. Отметим, что если размер

страницы отличается от стандартных 11-ти дюймов, то он должен

быть установлен перед установкой позиций вертикальной табуляции.

Вертикальная табуляция отменяется кодом 27,67.

Отметим, что большинство принтеров не имеют установки полей

как таковой. Левое поле может создаваться за счет вывода табуля-

ции или ряда пробелов в начале каждой строки. Для точной установ-

ки полей перейдите в графический режим и выведите ряд байтов

ASCII 0. Правое поле создается просто за счет ограничения длины

строки.




6.2.6 Изменение шрифта печати.




Ширина страницы 8 1/2 дюйма позволяет напечатать в строке до


80-ти обычных символов, если все они имеют одинаковую ширину.

Пропорциональная печать [6.3.3] позволяет поместить в строке еще

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

вывести в строке 132 символа, печать с двойной шириной - 40 сим-

волов, а плотная печать с двойной шириной - 64 символа. Имейте

ввиду, что использование печати с разной шириной в одной строке

приведет к трудностям с форматированием.

Большинство матричных принтеров предоставляют набор режимов

печати специальными шрифтами. Вот перечень стандартных возможнос-

тей предоставляемых графическим принтером IBM:


Плотная печать:

Для включения режима плотной печати надо послать однобайтный

управляющий код 15. Для выключения этого режима - код 18. Стан-

дартная страница шириной 8 1/2 дюйма позволяет напечатать 132

символа в строке в этом режиме.


Печать с двойной шириной:

Для того, чтобы принтер начал печатать с двойной шириной надо

послать на него управляющий код 14. Режим печати с двойной шири-

ной необычен тем, что принтер автоматически выключает этот режим,

когда встречает символ возврата каретки или перевода строки.

Поскольку такой вид печати обычно используется для однострочных

заголовков, то это свойство удобно. Чтобы выключить этот режим в

середине строки пошлите код 20.


Выделенная печать:

При выделенной печати каждый символ печатается два раза в

одной и той же позиции. Это делает точки темнее, что создает

эффект выделения. Скорость печати при этом уменьшается вдвое. Для

включения этого режима пошлите код 27,69. Для выключения - 27,70.


Печать за два прохода:

В режиме печати за два прохода бумага сдвигается на 1/216

дюйма перед вторым проходом печатающей головки. При этом полу-

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

Скорость печати уменьшается вдвое. Этот режим включается управ-

ляющим кодом 27,71, а выключается кодом 27,72.


Печать с подчеркиванием:

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

Графический принтер имеет режим подчеркивания, в котором подчерк

печатается под каждым символом, включая пробелы. Для графического

принтера IBM этот режим включается кодом 27,45,1, а выключается

кодом 27,45,0. Принтеры, не имеющие режима подчеркивания могут

сделать подчерки при втором проходе по той же строке, печатая

символы подчеркивания (ASCII 95) в тех местах, где оно нужно и

пробелы (ASCII 32) во всех остальных позцициях. Второй проход

достигается тем, что после первого прохода подается код возврата

каретки без кода перевода строки. Второй проход не мешает принте-

ру правильно подсчитывать строки при вычислении размера страницы.



Печать с верхними и нижними индексами:

На графических принтерах текст с верхними и нижними индексами

сжимается вертикально. Для печати верхнего индекса пошлите управ-


ляющий код 27,83,0, а для печати нижнего - 27,83,1. Можно прямо

переходить от одних индексов к другим. Для выключения печати

индексов, с тем, чтобы принтер оказался на текущей строке пошлите

управляющий код 27,84.


Некоторые режимы не могут использоваться в комбинации с други-

ми. Если Вы хотите использовать 4 режима одновременно, то прокон-

сультируйтесь со следующей таблицей. В каждом из шести столбцов

приведена допустимая комбинация.


Комбинация 1 2 3 4 5 6


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

сжатый Х Х

выделенный Х Х

за два прохода Х Х Х

с индексами Х Х Х

двойной ширины Х Х Х Х Х Х

с подчеркиванием Х Х Х Х Х Х



6.2.7 Сравнение возможностей принтеров IBM.




В следующей таблице сравниваются управляющие коды для принте-

ров IBM. Не вся информация относительно кодов точна (обращайтесь

к документации IBM), а в ряде случаев уникальные коды опущены.

Целью настоящей таблицы является показ диапазона возможностей

принтеров и указание тех кодов, которые можно считать стандартны-

мия. Отметим, что коды для первых четырех принтеров приведены в

выпуске "Возможности и адаптеры" (Options and Adapters) из серии

технических руководств, а коды для остальных принтеров приведены

в сопровождающих их руководств по эксплуатации.


Код Функция Матричный Графический Цветной Компактный Струйный Ромашка Пропринтер

принтер принтер принтер принтер принтер


Перемещение бумаги:

10 перевод строки Х Х Х Х Х Х Х

11 вертикальная табуляция Х Х Х Х Х Х

12 перевод формата Х Х Х Х Х Х Х

13 возврат каретки Х Х Х Х Х Х Х

27,52 установка начала страницы Х Х Х

27,56 игнорировать отсутствие бумаги Х Х

27,57 отмена игнор. отсутствия бумаги Х Х

27,66 установка вертикальных таб-ций Х Х Х Х Х

27,66 очистка вертикальных таб-ций Х

27,88 установка пропуска перфорации Х Х Х Х Х

27,79 отмена пропуска перфорации Х Х Х Х Х


Перемещение печатающей головки:

8 возврат на шаг Х Х Х Х

9 горизонтальная табуляция Х Х Х Х Х Х Х

27,60 сдвиг головки в левый конец Х Х Х

27,62 установка индекса горизонталь- Х

ного движения

27,68 установка горизонт. таб-ции Х Х Х Х Х Х Х

27,68 очистка горизонт. таб-ции Х

27,77 автоматическое форматирование Х

27,80 вкл./выкл. пропорц. печати Х Х


27,82 восстан. таб-ций по умолчанию Х Х Х Х

27,85 вкл./выкл. однонапр. печати Х Х

27,88 установка левого/правого поля Х Х

27,100 программируемый пробел Х

27,101 программируемый возврат на шаг Х



Межстрочные и межсимвольные интервалы:

27,48 межстрочный интервал 1/8 дюйма Х Х Х Х Х Х

27,48 межстрочный интервал 1/9 дюйма Х

27,48 межстрочный интервал 7/72 дюйма Х Х

27,49 межстрочный интервал 7/72 дюйма Х

27,49 межстрочный интервал 9/96 дюйма Х

27,49 межстрочный интервал 6/72 дюйма Х

27,49 межстрочный интервал 1/9 дюйма Х

27,50 начать программируемый пере- Х Х Х

вод строки по 27,65

27,50 межстрочный интервал 1/6 дюйма Х Х Х Х Х Х Х

27,51 программируемый перевод Х Х

строки (n/216)

27,51 программируемый перевод Х

строки (n/144)

27,53 вкл./выкл. автоматич. пере- Х Х Х Х Х

вода строки

27,65 программируемый перевод Х Х Х Х Х

строки (n/72)

27,67 установка длины страницы Х Х Х Х Х Х Х

27,74 программируемый перевод Х Х

строки (n/216)

27,74 программируемый перевод Х

строки (n/144)

27,93 обратный перевод строки Х

27,104 перевод на пол-строки вперед Х

27,105 перевод на пол-строки назад Х



Управление шрифтами:

11 режим 15 символов на дюйм Х

14 включение режима двойной ширины Х Х Х Х Х Х

15 включение плотной печати Х Х Х Х Х Х

18 выключение плотной печати Х Х Х Х Х

18 режим 10 символов на дюйм Х Х Х

20 выключ. режима двойной ширины Х Х Х Х Х Х

27,45 вкл./выкл. подчеркивания Х Х Х Х Х Х

27,58 режим 12 символов на дюйм Х Х Х

27,69 включение жирной печати Х Х Х Х

27,70 выключение жирной печати Х Х Х Х

27,71 включение печати в 2 прохода Х Х Х Х Х

27,72 выключение печати в 2 прохода Х Х Х Х Х

27,83 включение печати индексов Х Х Х Х Х

27,84 выключение печати индексов Х Х Х Х Х

27,87 вкл./выкл. печати двойной Х Х Х Х Х