Использую этот скрипт как написано в 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
>Использую этот скрипт как написано в 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 2http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/pr... - там все ясно расписано:
принтеры по разному воспринимают и отрабатывают завершение строки,
в Unix это один символ - LF (CR отсутствует как класс), в MSDOS это
два символа LF + CR (line feed + carriage return)Либо посмотреть настройки принтера как у него установлена обработка
новой строки и поменять ее, либо использовать в фильтре дополнительный
код, пример фильтра в верхней ссылке
Уважаемый Lavr не могли бы Вы отослать мне свой e_mail на ivot@ukr.net
если можно еще подскажите как использовать в фильтре дополнительный код
для борьбы c LF
у меня к Вам еще есть вопрос по настройке PPP