>Использую этот скрипт как написано в HandBooke
>но в результате печатет все равно лесенку, может кто подскажет решение
>(не думаю что никто не использует FreeBSD с лазерными принтерами :)
>
>
>#!/bin/sh
>
> printf "\033&k2G" || exit 2
>
> read first_line
> first_two_chars=`expr "$first_line" : '\(..\)'`
>
> if [ "$first_two_chars" = "%!" ]; then
>
> exec 3>&1 1>&2
> /usr/local/bin/gs -dSAFER -dNOPAUSE -q
>-sDEVICE=laserjet \
>
>-sOutputFile=/dev/fd/3 - && exit 0
>
> /usr/local/bin/gs -dSAFER -dNOPAUSE -q
>-sDEVICE=laserjet \
>
>-sOutputFile=- - && exit 0
> else
>
> echo $first_line && cat
>&& printf "\033&l0H" &&
> exit 0
> fi
>
> exit 2
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/printing-troubleshooting.html - там все ясно расписано:
принтеры по разному воспринимают и отрабатывают завершение строки,
в Unix это один символ - LF (CR отсутствует как класс), в MSDOS это
два символа LF + CR (line feed + carriage return)
Либо посмотреть настройки принтера как у него установлена обработка
новой строки и поменять ее, либо использовать в фильтре дополнительный
код, пример фильтра в верхней ссылке