Иногда, когда я работаю на своем ноутбуке, я хочу поставить в очередь несколько документов для печати позже, так как в данный момент я не подключен к принтеру.
Однако реальные очереди принтеров не предназначены для этого; они сразу пытаются распечатать документ, и все внезапно начинают печатать, как только я попадаю в сеть, что обычно не то, что я хочу делать. Более того, иногда я хочу изменить порядок документов в очереди, что не очень легко, особенно после того, как некоторые из них начали печатать.
Кроме того, иногда происходит сбой печати, поскольку, например, в принтере заканчивается бумага или тонер, и я хочу повторно напечатать документ на другом принтере. Это не просто с например, CUPS
или system-config-printer
; Обычно мне приходится возвращаться назад, открывать программу чтения PDF и начинать заново. Ни один из известных мне ридеров PDF не позволяет хранить список документов для последующей печати, но это может быть скрытая особенность ридера PDF, о которой я не знаю.
В любом случае, вот что я хочу сделать:
- Укажите список PDF-файлов, которые я хочу распечатать.
- Сохраните этот список на диске, чтобы я мог закрыть приложение или перезагрузиться, не теряя весь список.
- Укажите принтер (-ы), на который я хочу отправить их заранее, без фактического подключения к этим принтерам в данный момент.
- Укажите параметры печати, такие как цвет, дуплекс и количество копий.
- Измените эти назначения принтера и параметры печати позже.
- Подождите, пока я не нажму кнопку или не выполню команду для фактической печати документа (ов).
- Сохраните отдельный список документов, которые уже были напечатаны, на случай, если печать не работает или я хочу перепечатать их позже.
Я знаю, что мог бы взломать что-нибудь вместе со сценарием оболочки lpr
и списком путей в текстовом файле, но я не могу не чувствовать, что эта проблема уже решена более надежным и элегантным способом.
Бонусные очки:
- Не требуйте, чтобы документы были открыты в программе чтения PDF. Я хочу напечатать их, а не просматривать их, и нет никаких причин, чтобы они были одним и тем же приложением.
- Более одного списка.
- Также работает для Postscript, DjVu и других форматов описания страниц.
- Перетащите из файловых менеджеров.
Какие-либо предложения?
источник
cups
. Вы просто печатаете в нужную очередь принтера, но переводите задания принтера в режим ожидания, пока не решите их «освободить». Кнопка «на удержании» - это все, что нужно. Или я что-то пропустил?system-config-printer-applet
позволяет мне удерживать и отпускать задания на печать, а также перемещать их на другие принтеры, но я не могу изменить порядок заданий на печать или изменить параметры печати после отправки задания. Кроме того, к этому моменту путь к исходному документу давно ушел.Ответы:
Я делаю следующее: он не такой универсальный, как вы просили, но работает почти нормально. Вам нужно определить все ваши принтеры, а затем вам понадобятся эти два скрипта:
stop_printers
:start_printers
:Вы должны поместить их в свой путь (например
~/bin
) и сделать их исполняемыми сchmod +x
. ПРЕДУПРЕЖДЕНИЕ : у меня нет принтера с пробелами в их именах. Сценарии в этом случае не тестируются (но я уверен, что один из гуру наших сценариев-оболочек исправит сценарии в одно мгновение; -) ...)Теперь вы можете выдать:
И вы можете печатать откуда угодно, принтер будет приостановлен:
Вы можете увидеть свою очередь:
(AFAIK, очереди печати являются постоянными при перезагрузках). И когда вы хотите напечатать:
Используя
lprm
вы можете удалить работу, если вам нужно;lpr
ставить в очередь документ через командную строку, и если вам нужны разные «списки», никто не запрещает определять один и тот же принтер несколько раз с разными именами.Вы также можете возобновить работу каждого принтера вручную, просто запустите его
cupsenable <printername>
из командной строки.То, что я не думаю, что вы можете сделать с этим решением, это изменить параметры печати после факта - вам придется снять и повторно поставить документ в очередь для этого.
источник
cut
части:cat /etc/printcap | cut -d "|" -f 1 | grep -v "#"
. Вы экономите время на цикле, избавляясь от переводаtr
. Это работает, если вам нужно только ваше первое поле.Мой пакет (бесстыдный плагин) duplexpr делает то, что вам нужно, и включает в себя функции bash, которые могут быть полезны при развертывании вашей собственной версии. (Он написан на bash, поэтому его относительно легко изменить, и я помогу, если смогу.)
Он разработан для эмуляции двусторонней печати на недуплексных принтерах и имеет собственное простое управление очередью печати. У этого есть и интерфейсы GUI и Cli.
Текущая версия печатается только в дуплексном режиме и работает только с недуплексными принтерами, но в настоящее время разрабатывается новая версия, которая будет обрабатывать принтеры с дуплексным оборудованием, что по сути является просто управлением принтерами и очередями без программного обеспечения эмуляции дуплексного режима. (У меня есть альфа-версия скрипта, который уже работает, если кто-то хочет связаться со мной напрямую через проект и т. Д.)
Система печатает на текущий принтер по умолчанию, но сценарии dplx и duplex принимают дополнительные аргументы, которые передаются в lp и могут использоваться для установки любых опций, которые понимает lp, таких как принтер и другие свойства.
В настоящее время система обрабатывает PDF, PostScript и текстовые файлы.
Одна вещь , которую она не сделать , это печать файлов , которые были созданы с помощью печати в опции File из в Acroread. Эти файлы просто не работают с lp, и мне никогда не удавалось привлечь внимание любого из вышестоящих людей, чтобы выяснить, в чем проблемы.
Лично я печатаю почти все в автономном режиме (используя параметры «Печать в файл», которые поддерживаются большинством приложений), даже когда мои принтеры доступны. Это помогает мне сосредоточиться на том, что я делаю. Позже, когда я достигаю подходящей точки разрыва, я печатаю партии заданий.
Наличие очереди печати также очень удобно, когда вы хотите напечатать еще одну копию чего-либо без необходимости ее регенерации, и это важно для устранения ошибок принтера, таких как замятие или нехватка тонера.
источник
Кажется, нет полного решения этой проблемы, но вот функция, которую я добавил к моей,
.bashrc
которая похожа на ответ Rmano выше, с дополнительным удобством автозаполнения.источник