Я регулярно получаю набор PDF как единственный zip-файл. Я хотел бы отправить их непосредственно на принтер.
Я нашел хороший сценарий, который позволяет использовать контекстное меню щелчка правой кнопкой для отправки PDF непосредственно в принтер.
Распечатать файл PDF непосредственно, не открывая его?
Теперь я хотел бы изменить сценарий так, чтобы он разархивировал файл и затем отправил PDF на принтер. Как я могу выполнить это?
Теперь получил его работа. Нужно использовать "NAUTILUS_SCRIPT_SELECTED_URIS", поскольку существует несколько файлов.
#!/bin/bash
current_nautilus_path=$(echo "$NAUTILUS_SCRIPT_SELECTED_URIS" | sed -e 's/%/\\x/g' -e 's_^file://__' | xargs -0 printf "%b") #get the URI variable from nautilus
mkdir -p /tmp/unzip_files "$current_nautilus_path" -d /tmp/unzip_files #unzip selected files to tmp directory
lpr -r /tmp/unzip_files/*.pdf #print and remove file
Если Вы хотите простое "один лайнер", можно использовать -p
опция unzip
- p извлекают файлы для передачи по каналу (stdout).
Только данные файла отправляются в stdout, и файлы всегда
извлеченный в двоичном формате, так же, как они хранятся (никакие преобразования).
Таким образом, это - вопрос передачи по каналу вывода к lpr
:
unzip -p archive_with_lots_of_pdfs.zip | lpr
и можно легко адаптировать сценарий, который Вы связали для использования этой команды.
Обратите внимание что -c
опция подобна
- c извлекают файлы к stdout/screen (''CRT'').
Но это печатает имя файла перед фактическим содержанием. Это повредит Ваш lpr
команда и вероятно распечатает мусор.
Попробуйте это:
mkdir -p files
unzip pdfs.zip -d files
lpr files/*.pdf
files
каталогРедактирование, сценарий наутилуса:
#!/bin/bash
mkdir -p /tmp/unzip_files
unzip "$NAUTILUS_SCRIPT_CURRENT_URI" -d /tmp/unzip_files #unzip selected files to tmp directory
lpr -r /tmp/unzip_files/*.pdf #print and remove file