ALT Linux: диалоговое окно "Сохранить как..." при использовании принтера Cups-PDF
- Recluse
- 23.07.2024
- 791
- 0
- 21.09.2024
- 2
- 2
- 0
- Содержание статьи
В используемой в работе операционной системе Альт Рабочая станция 9, имеется преднастроенный виртуальный принтер Cups-PDF, который при печати через него сохраняет получившийся файл сразу на Рабочий стол пользователя. Это сильно отличается от своих аналогов в операционных системах Windows, где при печати через виртуальный принтер, выбирается место его сохранения.
Исправить это можно при помощи отдельного bash-скрипта, который будет запускаться после завершения работы виртуального принтера, и будет предлагать выбрать место сохранения и имя свежесозданного PDF файла. Выглядеть это будет как на скриншоте ниже.
Редактирование настроек Cups-PDF
Для того, чтобы появилась возможность выбора места и имени сохранения PDF файла, создаваемого через виртуальный принтер Cups-PDF, нужно выполнить следующие действия:
- Открываем файл /etc/cups/cups-pdf.conf.
- Вносим в данный файл следующие изменения:
- Находим строку
#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
- Находим строку
- Создаем текстовый файл /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
- Выдаем права на чтение и запуск файла всем пользователям:
chmod +rx /etc/cups/cups-pdf-save-as.sh
- Перезагружаем CUPS для применения изменений в файле конфигурации виртуального принтера:
systemctl restart cups
- Пробуем распечатать какой-либо документ через виртуальный принтер Cups-PDF.
Добавить комментарий