Руководство FreeBSD


Выявление проблем - часть 2


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

Вот что ОС FreeBSD хочет от принтера:

Принтер получает CR Принтер печатает CR
Принтер получает LF Принтер печатает CR + LF

Вот несколько способов этого добиться:

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

    Замечание: Если вы загружаете другие операционные системы, кроме FreeBSD, может иметь смысл переконфигурировать

    принтер для использования такой интерпретации символов CR и LF, которая принята в этих операционных системах. Затем можно использовать одно из представленных далее решений.

  • Заставить драйвер последовательного порта FreeBSD автоматически преобразовывать LF в CR+LF. Конечно, это подойдет только

    для принтеров, подключенных к последовательным портам. Для включения этой возможности используйте характеристику ms# и установите режим onlcr для принтера в файле /etc/printcap.

  • Послать управляющий код на принтер, заставляющий его временно обрабатывать символы LF по-другому. Управляющие коды, которые может поддерживать ваш принтер, поищите в руководстве своего принтера. Когда найдете соответствующий управляющий код, измените текстовый фильтр для посылки сначала этого кода, а затем - задания печати.

    Вот пример текстового фильтра для принтеров, понимающих управляющие последовательности языка Hewlett-Packard PCL. Этот фильтр заставляет принтер обрабатывать символы LF как LF и CR; затем он посылает задание; наконец, он посылает символ прогона страницы для выдачи последней страницы задания. Он должен работать практически со всеми принтерами Hewlett Packard.

    #!/bin/sh # # hpif - Простой текстовый входной фильтр # для lpd для принтеров на базе HP-PCL # Установлен в /usr/local/libexec/hpif # # Просто копирует stdin в stdout. # Игнорирует все аргументы фильтра. # Требует от принтера обрабатывать # LF как CR+LF.


    Начало  Назад  Вперед