ALT Linux: диалоговое окно «Сохранить как…» при использовании принтера Cups-PDF

В используемой в работе операционной системе Альт Рабочая станция 9, имеется преднастроенный виртуальный принтер Cups-PDF, который при печати через него сохраняет получившийся файл сразу на Рабочий стол пользователя. Это сильно отличается от своих аналогов в операционных системах Windows, где при печати через виртуальный принтер, выбирается место его сохранения.

Исправить это можно при помощи отдельного bash-скрипта, который будет запускаться после завершения работы виртуального принтера, и будет предлагать выбрать место сохранения и имя свежесозданного PDF файла. Выглядеть это будет как на скриншоте ниже.

Редактирование настроек Cups-PDF

Для того, чтобы появилась возможность выбора места и имени сохранения PDF файла, создаваемого через виртуальный принтер Cups-PDF, нужно выполнить следующие действия:

  1. Открываем файл /etc/cups/cups-pdf.conf.
  2. Вносим в данный файл следующие изменения:
    • Находим строку #Out /var/spool/cups-pdf/${USER} и убираем символ # в её начале.
      В строке ниже — Out ${DESKTOP} добавляем в самое начало символ #. В итоге, эти две строки должны выглядеть следующим образом:
      Out /var/spool/cups-pdf/${USER}  #Out ${DESKTOP} 
    • Ближе к концу файла находим строку #PostProcessing, и так же удаляем символ # в начале, а после дописываем /etc/cups/cups-pdf-save-as.sh. Таким образом, строка должна принять следующий вид:
      PostProcessing /etc/cups/cups-pdf-save-as.sh

    Для того, чтобы не вносить данные изменения вручную, их можно выполнить при помощи программы sed:

    sed -i "/#Out /var/spool/cups-pdf/${USER}/cOut /var/spool/cups-pdf/${USER}" /etc/cups/cups-pdf.conf  sed -i "/Out ${DESKTOP}/c#Out ${DESKTOP}" /etc/cups/cups-pdf.conf  sed -i "/#PostProcessing/cPostProcessing /etc/cups/cups-pdf-save-as.sh" /etc/cups/cups-pdf.conf
  3. Создаем текстовый файл /etc/cups/cups-pdf-save-as.sh со следующим содержимым:
    #!/bin/bash    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $2)/bus  export DISPLAY=:0.0  export HOME=$(bash -c "cd ~$(printf %q "$2") && pwd")  export XAUTHORITY=/run/lightdm/$2/xauthority    destination=$(zenity --confirm-overwrite --display=:0.0 --file-selection --filename="${HOME}/Рабочий стол/$(date '+%Y.%m.%d %H-%M-%S').pdf" --save --title="Сохранить PDF как...")    case $? in  	0)  		mv "$1" "$destination";;  	1)  		rm "$1";;  	-1)  		zenity --error --text="Произошла ошибка!";;  esac
  4. Выдаем права на чтение и запуск файла всем пользователям:
    chmod +rx /etc/cups/cups-pdf-save-as.sh
  5. Перезагружаем CUPS для применения изменений в файле конфигурации виртуального принтера:
    systemctl restart cups
  6. Пробуем распечатать какой-либо документ через виртуальный принтер Cups-PDF.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *