

                      Уважаемая редакция !


    Разрешите предложить для раздела FREEWARE бюллетеня "Софтпано-
рама"  программу  постраничной  печати  "Папирус".  Программа и ее
описание  в  неизменном  виде  могут  свободно  распространяться и
использоваться без цели извлечения коммерческой выгоды.

    Основной причиной ее создания, как это часто бывает, послужила
неудовлетворенность возможностями доступных программ печати. Глав-
ными недостатками подобных программ кажуться:

    1. Бедный или неудобный интерфейс с пользователем.

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


    2. Ограниченность основных функций  или наличие крайне редко
       используемых.

       При  разработке  программы   печати  трудно  удержаться  от
соблазна  использовать  "встроенные"  возможности  принтера, вроде
установки  межстрочного  интервала  с  шагом  1/216  дюйма.  Такие
функции  легко программируются,  но редко  используются, тем более
что нестандартное (отличное от 1/6 и 1/8 дюйма) значение интервала
резко уменьшает  скорость печати. В  то же время  отсутствие таких
возможностей как формирование  билистингового файла или выборочной
печати части файла сильно  снижают общее впечатление от программы.
Вообще  же достижение  компромисса между  возможным и  достаточным
определяется  многими  факторами  и  не  в  последнюю очередь тем,
является ли  программа коммерческой или  свободно распространяемой
(freeware).

    3. Потребность в управляющих кодах в тексте входного файла.

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

    4. Отсутствие возможности выполнения операций с файлами.

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


    Основные требования к программе были следующие:

 1.  Работа с  входными файлами  в ASCII  формате и результирующие
     файлы также должны оставаться в ASCII формате.

     Программа  предназначена  в   основном  для  печати  исходных
     текстов  программ и  документации, поставляемой  на дискетах.
     Информация  такого  рода  редко  готовится  с  помощью мощных
     редакторов  текстов  типа   MS  Word,  позволяющих  изощренно
     форматировать  текст,  менять  шрифты  и  их  стили, включать
     рисунки,   графики  и   т.п.  Печать   таких  файлов   должна
     осуществляться  на  быстрых  лазерных  принтерах,  потому что
     вывод   длинных   файлов   на   точечно-матричный  принтер  в
     графическом  режиме  просто  нецелесообразен.  Тем  не  менее
     матричные принтеры  дешевы, широко распространены  и обладают
     достаточными  возможностями  для  печати  в текстовом режиме.
     Коды,    управляющие   режимами    работы   принтера,   могут
     присутствовать  в исходном  тексте (например,  изменение типа
     шрифта), а  некоторые - перевод  строки - просто  необходимы.
     Программа  не   должна  помещать  в   выходной  файл  никакой
     управляющей  информации,  кроме  самой  необходимой (переводы
     строк,  возвраты  каретки  и  прогоны  листа).  Это позволяет
     выводить результирующий файл на  устройства быстрой печати от
     малых  и  больших  компьютеров.  Для  этой  же цели программа
     обладает  возможностью  перекодировки   исходного  текста  из
     расширенного   кода  ASCII,   используемого  в   персональных
     компьютерах, в кодировку других ЭВМ.


 2.  Работа  с  входными  файлами  разделенными  на  страницы и не
     разделенными.

     Входной файл, направляемый для  печати, должен содержать коды
     прогона  листа.  Программа  должна  уметь  печатать файлы уже
     содержащие эти коды или добавлять их в выходной файл.

 3.  Создание  выходного  файла  с  одной  или  двумя  (билистинг)
     страницами на листе.

     Обычно  при печати  на  одной  стороне листа  помещается одна
     страница текста.  Однако при печати  на широкой бумаге  можно
     размещать по  две страницы текста, что  резко сокращает общее
     время печати.

 4.  Вывод на  печать страниц  с нечетными,  четными номерами  или
     подряд.

     Программа должна  позволять печатать на  обеих сторонах листа
     (рулона) или только на одной стороне.

 5.  Вывод файла целиком или некоторой его части.

     Необходимо,  чтобы программа  могла выводить  не только  весь
     файл, но и его часть в указанном интервале страниц.

 6.  Установка параметров страницы.

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

 7.  При выводе на принтер допускается печать на отдельных листах,
     установка типа шрифта и интервала между строками.

     Принтер  персонального  компьютера  воспринимает  значительно
     большее  количество управляющих  кодов и  их комбинаций,  чем
     устройства  печати больших  ЭВМ. Программа  использует только
     некоторые  из   них:  выбор  типа   шрифта,  интервала  между
     строками, включение и отключение  датчика конца бумаги, сброс
     в начальное состояние. При выводе в дисковый файл эти коды не
     формируются,  что  позволяет  печатать  его  на  принтерах не
     совместимых со стандартами Epson/IBM.

 8.  Работа с файлами (выбор для печати, редактирование, удаление
     и т.п.).

     Программа  должна  обладать  удобным  интерфейсом  для выбора
     печатаемых  файлов  и  некоторых  файловых  простых  файловых
     операций.  Наиболее  привычен  интерфейс  и  команды  в стиле
     Norton Commander.

 9.  Сохранение и восстановление состояния программы при начальной
     загрузке и в процессе работы.

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


                              * * *

     Программа реализована на  языке программирования ТурбоПаскаль
6.0  без  использования  каких-либо  дополнительных  средств вроде
Turbo Vision, Object Vision или Turbo Professional.

     Полное  описание программы  и  ее  ограничений можно  найти в
файле  PAPYRUS.DOC,  поставляемом   вместе  с  исполняемым  файлом
PAPYRUS.EXE.


                                         Игорь Анатольевич Хомяков

                                             (044) 213-79-49 (р)
                                             (044) 213-22-73 (р)

