Документ создан: 02.01.2012

Печать PDF из контекстного меню.

Уж не знаю почему, но evince не может отправить на сетевой принтер PDF. Решение для себя я нашёл такое: в "~/.gnome2/nautilus-scripts" создал файл "Printing_a_PDF" следующего содержания:

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 на принтер из командной строки.

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate