Как распечатать файлы PDF автоматически из каталога?

В настоящее время у меня есть каталог под названием МОЙ - СОВМЕСТНО ИСПОЛЬЗОВАННЫЙ, и мне нужно следующее для случая:

  1. Распечатайте все файлы PDF, которые я помещаю в МОЙ - СОВМЕСТНО ИСПОЛЬЗОВАННЫЙ
  2. Печать должна инициировать автоматически (никакое человеческое взаимодействие)
  3. После печати это должно автоматически удалить файл

Как я могу выполнить такую задачу?

Как примечание стороны, я - новичок в мире Ubuntu.

5
задан 17 September 2015 в 11:46

2 ответа

  1. Установите пакет inoticoming

    sudo apt-get install inoticoming
    
  2. Установите пакет trash-cli использовать Вашу папку "Удаленные" вместо того, чтобы удалить PDF

    sudo apt-get install trash-cli
    

    Если Вы предпочитаете удаление файла через классическое rm, чем Вы не нужен этот пакет, и необходимо заменить строку

    lpr "$2/$1" && trash "$2/$1"
    

    с

    lpr "$2/$1" && rm "$2/$1"
    

    в сценарии ниже.

  3. Создайте сценарий обертки printpdf

    mkdir -p ~/bin
    gedit ~/bin/printpdf
    
  4. Добавьте код ниже, сохраните файл и закройте редактора

    #!/usr/bin/env bash
    FILE="$1"
    if [ "${FILE##*.}" = "pdf" ]
    then
        lpr "$2/$1" && trash "$2/$1"
    fi
    exit 0
    
  5. Сделайте исполняемый файл сценария

    chmod +x ~/bin/printpdf
    
  6. Наблюдайте свою папку

    inoticoming /path/to/MY-SHARED ~/bin/printpdf {} /path/to/MY-SHARED \;
    

И поскольку @Rmano сказал в комментариях

О точке 4, заметьте, что это практически невозможно быть уверенным, что файл был распечатан. Можно проверить, что это было отправлено на принтер, но распечатано, вполне более сложно и действительно никогда отказоустойчив (и вероятно зависимый принтера).

8
ответ дан 23 November 2019 в 08:59

Спасибо, , чтоработает как шарм. Особенно, если вы поместите его как cronjob для активации inoticoming , он может даже печатать все виды изображений и PDF.

#!/usr/bin/bash
FILE="$1"

if [ "${FILE##*.}" = "jpg" ]
then
        lpr  "$2/$1" && rm "$2/$1"

elif [ "${FILE##*.}" = "jpeg" ]
then
        lpr  "$2/$1" && rm "$2/$1"

elif [ "${FILE##*.}" = "png" ]
then
        lpr  "$2/$1" && rm "$2/$1"

elif [ "${FILE##*.}" = "pdf" ]
then
        lpr  "$2/$1" && rm "$2/$1"

elif [ "${FILE##*.}" = "svg" ]
then
        lpr  "$2/$1" && rm "$2/$1"

else
 echo "finish"

fi

exit 0
0
ответ дан 19 January 2022 в 08:55

Другие вопросы по тегам:

Похожие вопросы: