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

  • 23.07.2024
  • 848
  • 0
  • 21.09.2024
  • 2
  • 2
  • 0
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}/c\Out \/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/c\PostProcessing /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 не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.