Справочник программиста на персональном компьютере фирмы IBM. Принтер
Страница 8. Управление расстоянием между строками


     6.2.2 Управление расстоянием между строками.


   Если  не  принимать во внимание принтеры, имеющие  специальные
возможности графопостроителя, то вся  печать осуществляется стро-
ками.   Даже  графические изображения рисуются построчно, хотя  в
этом случае нет пустых мест между  строками. Код ASCII 10 - стан-
дартный  управляющий код перевода строки.  Посылка его на принтер
(без предшествующего кода Esc) приводит  к тому, что бумага будет
продвинута  вперед  на указанный интервал.  Обычно, если  перевод
строки не посылается за  кодом  возврата  каретки,  то печатающая
головка  возвращается к левому краю бумаги и можно снова печатать
на той же строке.  Однако можно сделать так, чтобы перевод строки
делался автоматически при каждом возврате каретки. Этим управляют
переключатели на принтере. Это  же  можно сделать установив бит 1
регистра управления выводом (см. [6.1.0]).  Многие принтеры могут

включать  и  выключать  автоматический  перевод  строки с помощью
управляющих  кодов 27,53, а некоторые могут делать обратный пере-
вод строки с пмощью кодов 27,93.
   По умолчанию графический  принтер   использует интервал печати
равный 1/6 дюйма (т.е.  выводят 6 строк на дюйм) и к этому режиму
всегда можно вернуться, посылая управляющие  коды 27,50 (эти коды
используются  также в сочетании с коды изменения интервала  между
строками, обсуждаемыми ниже).  Для этого принтера имеются еще два
предопределенных  межстрочных интервала, 1/8 дюйма и 7/72  дюйма.
Соответствующие им управляющие коды 27,48 и 27,49.

   Возможна и более тонкая градация межстрочных интервалов.  Гра-
фический принтер использует три кода, позволяющие изменить интер-
вал на очень малую величину.  Все три управляющих кода используют
2-хбайтную  Esc-последовательность, за которой следует число 72-х
или 216-х долей дюйма, определяющих  межстрочный интервал. Верти-
кальное  расстояние между центрами двух точек равно  1/72  дюйма.
Интервал 8/72 дюйма  не  оставляет  промежутка  между строками (9
строк  на  дюйм).  Стандартный интервал 6 строк на дюйм  задается
числом 12/72 дюйма.  Наконец, 1/216 равна 1/3 от 1/72.  Изменение
на такую величину позволяет печатающей головке слегка  сдвинуться
от центра строки, с тем чтобы  точки при втором проходе заполнили
промежутки, обеспечивая печать более высокого качества.  Вот  эти
Esc-последовательности:

   Изменение         Esc-последовательность

    72-е дюйма       27,65,n (где n от 1 до 85)
   216-е дюйма       27,51,n (где n от 1 до 255)
   216-е дюйма       27,74,n (где n от 1 до 255)

Команды для изменения интервала  в 72-х дюйма не станут активными
до тех пор, пока не встретится второй управляющий код: 27,50. Как
объяснялось выше, этот  код  может  также использоваться отдельно
для восстановления стандартного интервала в 1/6 дюйма. Если ранее
была использована команда 27,65,n, то для восстановления интерва-
ла в 1/6 дюйма надо послать команду 27,65,12,27,50. Два управляю-
щих кода для интервалов в 1/216  дюйма  не идентичны.  Первый код
устанавливает,  что все последующие переводы строки будут  выпол-
няться с указанным интервалом; второй же действует только на один
перевод  строки, а затем возвращает интервал, который  действовал
до этого.

   Следующая таблица сравнивает межстрочные интервалы, вызываемые
одними и теми же управляющими кодами на различных принтерах IBM:

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

27,48   1/8       1/8        1/8      1/9        1/8     1/8     1/8
27,49   7/72      7/72       6/72     1/9                9/96    7/72
27,50   1/6       1/6        1/6      1/6        1/6     1/6     1/6
27,51             n/216      n/144                               n/216
27,65   n/72      n/72       n/72                        n/72    n/72
27,74             n/216      n/144                               n/216

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

 
« Предыдущая статья   Следующая статья »