ESC "x" n Выбор качества печати:
0 - низкое качество; 1 - качественный шрифт NLQ.
Для задания типа шрифта надо вывести на принтер три байта: символ ESC (1Bh), символ "x" (78h), затем код шрифта (30h...31h).
Существуют различные команды, позволяющие определить размер межстрочного интервала, расположение левой и правой границ листа, используемый для печати шрифт. Можно выполнять печать графических изображений, о чем мы раскажем немного позже.
Если вас не устраивает шрифт, который записан в ПЗУ принтера (например, в нем нет русских букв), вы можете использовать команды для загрузки собственного шрифта.
Приведем пример программы, которая посылает в принтер командные последовательности и обычные символы, пользуясь функцией 05h прерывания INT21h:
#include <dos.h> #include <stdio.h>
main() {
char buffer[] = {
0x1b, '@', // Сбрасываем принтер в исходное // состояние.
7,7,7, // Выдаем 3 раза звуковой сигнал.
0x1b, 'x','0', // Устанавливаем низкое // качество печати.
'S','t','r','i','n','g',' ','1', // Печатаем // строку.
0x1b, 'x','1', // Устанавливаем высокое // качество печати.
'S','t','r','i','n','g',' ','2', // Печатаем // строку.
0x0a, // Переводим строку.
7,7,7, // Выдаем 3 раза звуковой сигнал.
0 };
char *p;
// Выводим строку символов на принтер
for(p = buffer; *p != 0; p++) bdos(0x05, *p, 0); }
Для вывода символа на принтер через функцию MS-DOS здесь использована функция bdos(), входящая в состав стандартных библиотек трансляторов Microsoft QC 2.5 и C 6.0. Первый параметр функции bdos() - номер выполняемой функции прерывания MS-DOS INT 21h, второй - содержимое регистра DX перед вызовом этой функции, и третий - содержимое регистра AL.
В комментариях к программе объясняется назначение управляющих последовательностей, посылаемых на принтер. Перед запуском программы необходимо убедиться в том, что принтер включен и находится в состоянии ON LINE, иначе программа перейдет в состояние ожидания.