Информация об изменениях в платформе и прикладных решениях на нашем официальном телеграм канале. Подписывайтесь!

Что написано пером…

Если бы Паркинсон проводил свои исследования не в пятидесятых годах, а полувеком позже, то список его знаменитых законов несомненно пополнился бы еще одним: количество бумаг в офисе прямо пропорционально степени его компьютеризации.

Сегодня уже практически не слышно голосов оптимистов, всего несколько лет назад предвещавших торжество безбумажных технологий. Там, где на смену печатающей машинке приходит персональный компьютер, количество распечатываемых документов увеличивается во столько раз, сколько различных начертаний шрифтов можно применить при их оформлении. А, если несколько персоналок объединяют в локальную сеть, то нагрузку на принтеры после такой операции можно рассчитать как количество печатаемых страниц до установки сети, умноженное на число объединяемых компьютеров. И действительно: теперь каждый пользователь без проблем получает доступ не только к своим файлам, но и к файлам соседей.

Существуют десятки причин, по которым предпочтительно, а иногда и просто необходимо, иметь копию данных на бумаге. И, коль скоро, спрос рождает предложение - любая программа, претендующая на маломальский успех на рынке, должна обладать достаточными возможностями вывода информации на печать (формирования отчетов). Условно, данные, содержащиеся в отчетах, можно разделить на три категории: текст, таблицы и графические изображения. Рассмотрим трудности, с которыми предстоит столкнуться программисту, создающему приложение, в котором необходим вывод на печать, а также возможные варианты их разрешения.

Преданье старины далекой…

Давным-давно, когда 286-й с мегабайтом ОЗУ считался достойной машиной, а о "дешевой оболочке" Windows слышали только самые продвинутые пользователи, повсюду царствовал DOS. Говоря принтер в те времена, как правило, имели ввиду что-нибудь Epson совместимое, способное с визгом пропечатывать на бумаге буквы и, даже, что-то, в первом приближении напоминающее графическое изображение. С точки зрения прикладного программиста, вывод на печать под управлением DOS сводился к посылке соответствующих данных непосредственно на принтер. Детали реализации зависели от конкретной системы программирования. Как правило, открывался текстовый файл только для чтения, ассоциированный с устройством печати, и данные записывались в него, как будто бы это был нормальный файл на диске.

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

Принтеры компании Epson понимали определенные последовательности символов, позволявшие управлять процессом печати, изменять атрибуты текста, устанавливать различные шрифты и выводить графическую информацию. Первым символом такой последовательности всегда был символ с десятичным кодом 27 - Escape-символ - и, соответственно, такие последовательности назывались Escape -последовательностями. Другие производители матричных принтеров старались делать их совместимыми с устройствами компании Epson, т.е. воспринимающими язык Escape -последовательностей.

Андрей КИРЕЕВ
1 января 1999г.