Страница 6 из 20
Раздел 2. Установка спецификаций печати. Для установки различных спецификаций, относящихся к формату страницы, стилю шрифта и т.п., на принтер посылаются специальные управляющие коды. Эти коды посылаются на принтер как и любые другие данные. Некоторые из них это простые однобайтные коды из числа первых 32-х набора кодов ASCII. Эти управляющие коды (пере- численные в [7.1.9]) инициируют такие простые действия принтера, как перевод строки или перевод формата (прогон страницы). Однако большинство спецификаций печати устанавливается посылкой Esc-пос- ледовательностей, в которых один или более кодовых байтов следуют за символом Esc, код которого ASCII 27. Начальный код Esc инфор- мирует принтер, что символ(ы) который следует за ним следует интерпретировать как команду, а не как данные. Такие Esc-последо- вательности обычно не имеют символа-ограничителя, поскольку прин- тер "знает" длину каждой последовательности. Только в некоторых случаях, когда последовательность может иметь разную длину, тре- буется ограничивающий символ, в качестве которого всегда исполь- зуется код ASCII 0. Почти во всех случаях спецификации установленные этими кодами действуют до тех пор, пока они не будут явно отменены. Как только будет получен код, например, подчеркивания, то оно будет осу- ществляться до тех пор, пока не будет послан код отмены подчерки- вания. Буфер принтера может быть очищен без отмены установленных спецификаций. Но если произошла ошибка на принтере и принтер был выключен и включен, то необходимо снова устанавливать все специ- фикации. Большинство кодов устанавливающих спецификации принтера пере- мешаны с данными, на которые они действуют. Например, данные для слова, которое должно быть выделено жирным шрифтом, должны пред- варяться Esc-последовательностью, включающей жирный шрифт, и завершаться Esc-последовательностью, выключающей его. Поскольку универсальный стандарт на эти коды отсутствует, то печать с ис- пользованием мощных возможностей требует, чтобы для каждого под- держиваемого принтера были написаны драйверы. Каждый драйвер преобразует инструкции, генерируеиые процедурой печати, в прото- кол, используемый данным принтером. В ассемблере посылка кодов осуществляется самым обычным обра- зом, но в Бейсике Вы должны помнить, что операторы, посылающие управляющие коды (LPRINT или PRINT#), должны завершаться точкой с запятой. В противном случае операторы будут автоматически добав- лять к посылаемым кодам пару возврат каретки/перевод строки. Обсуждения и примеры последующих страниц в основном относятся к графическому принтеру IBM. Коды, используемые этим принтером, настолько же "стандартны", насколько и любой другой протокол. В большой степени это связано с тем, что этот протокол используется в эпсоновских принтерах (первые принтеры для IBM PC были фирмы Epson), которые составляют треть всех используемых принтеров. Управляющие коды, используемые принтерами IBM сравниваются в разделе [6.2.7]. Хотя информация, приведенная в данном разделе, может быть неприменима к тому принтеру, с которым Вы работаете, но большинство общих принципов применимо.
|