Глава 6. Принтер.

Раздел 2. Установка спецификаций печати.

Для установки различных спецификаций, относящихся к формату страницы, стилю шрифта и т.п., на принтер посылаются специальные управляющие коды. Эти коды посылаются на принтер как и любые другие данные. Hекоторые из них это простые однобайтные коды из числа первых 32-х набора кодов ASCII. Эти управляющие коды (перечисленные в {7.1.9}) инициируют такие простые действия принтера, как перевод строки или перевод формата (прогон страницы). Однако большинство спецификаций печати устанавливается посылкой Esc-последовательностей, в которых один или более кодовых байтов следуют за символом Esc, код которого ASCII 27. Hачальный код Esc информирует принтер, что символ(ы) который следует за ним следует интерпретировать как команду, а не как данные. Такие Esc-последовательности обычно не имеют символа-ограничителя, поскольку принтер "знает" длину каждой последовательности. Только в некоторых случаях, когда последовательность может иметь разную длину, требуется ограничивающий символ, в качестве которого всегда используется код ASCII 0.

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

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

В ассемблере посылка кодов осуществляется самым обычным образом, но в Бейсике Вы должны помнить, что операторы, посылающие управляющие коды (LPRINT или PRINT#), должны завершаться точкой с запятой. В противном случае операторы будут автоматически добавлять к посылаемым кодам пару возврат каретки/перевод строки.

Обсуждения и примеры последующих страниц в основном относятся к графическому принтеру IBM. Kоды, используемые этим принтером, настолько же "стандартны", насколько и любой другой протокол. В большой степени это связано с тем, что этот протокол используется в эпсоновских принтерах (первые принтеры для IBM PC были фирмы Epson), которые составляют треть всех используемых принтеров. Управляющие коды, используемые принтерами IBM сравниваются в разделе {6.2.7}. Хотя информация, приведенная в данном разделе, может быть неприменима к тому принтеру, с которым Вы работаете, но большинство общих принципов применимо.


<~-6.1.4 Переключение между двумя или несколькими принтерами.
Содержание
6.2.1 Установка текстового и графического режимов.-~>

Сайт управляется системой uCoz