Уж не знаю почему, но evince не может отправить на сетевой принтер PDF. Решение для себя я нашёл такое: в "~/.gnome2/nautilus-scripts" создал файл "Printing_a_PDF" следующего содержания:
#!/bin/bash
for FILENAME in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
file $FILENAME | grep -qi 'PDF';
if [ $? -eq 0 ]; then
zenity --info --text="Печатаем $FILENAME"
tmp=$(tempfile)
printer=$(LANG=C lpstat -d | sed 's/^[^:]*: \(.*\)$/\1/')
trap "rm -f -- \"$tmp\"" EXIT
pdftops $FILENAME $tmp
lpr -P $printer $tmp
rm -f -- "$tmp"
trap - EXIT
else
zenity --info --text="$FILENAME не является PDF. Печать отменена."
fi
done
Это решение сформирует нам элемент в контекстном меню ("Scripts", "Printing_a_PDF"), с помощью которого можно отправить один или несколько выделенных PDF на принтер по-умолчанию. Если файл не является PDF, будет выведено соответствующее уведомление и печать будет отменена.
Основной код этот:
pdftops $FILENAME $tmp lpr -P $printer $tmp
Первая команда преобразует PDF в PostScript-файл, который готов к отправке на принтер любыми доступными нам средствами. А вторая команда, собственно, и отправляет подготовленный PostScript-файл на принтер. Эти две команды достаточны, если необходимо отправить PDF на принтер из командной строки.