Nat*_*ver 12 pdf printing software-recommendation
有时,当我在笔记本电脑上工作时,我想将一些文档排好队以便稍后打印,因为我当时没有连接到打印机。
然而,实际的打印机队列并不是为此而设计的;他们立即尝试打印文档,然后我一上网就突然开始打印,这通常不是我想要做的。此外,有时我想更改队列中文档的顺序,这不是很容易,尤其是在其中一些已经开始打印之后。
此外,有时打印失败,因为例如打印机的纸张或碳粉用完,我想将文档重新打印到不同的打印机。这不是简单的 egCUPS或system-config-printer; 我通常必须返回,重新打开 PDF 阅读器,然后重新开始。我所知道的 PDF 阅读器都没有让您保留待打印的文档列表,但这可能是我不知道的 PDF 阅读器的隐藏功能。
无论如何,这就是我想要做的:
我知道我可以用一个 shell 脚本lpr和一个文本文件中的路径列表来破解一些东西,但我不禁觉得这个问题已经以更健壮和优雅的方式解决了。
奖励积分:
有什么建议?
Rma*_*ano 10
我所做的是以下 --- 它不像你问的那样通用,但它几乎可以正常工作。您需要定义所有打印机,然后需要以下两个脚本:
stop_printers:
#!/bin/bash -f
#
allp=(`cat /etc/printcap | tr "|" "\t" | cut -f 1 | grep -v "#"`)
for i in ${allp[@]}; do
echo -n Printer $i:
cupsdisable "$i"
echo " " paused.
done
Run Code Online (Sandbox Code Playgroud)start_printers:
#!/bin/bash -f
#
allp=(`cat /etc/printcap | tr "|" "\t" | cut -f 1 | grep -v "#"`)
for i in ${allp[@]}; do
echo -n Printer $i:
cupsenable "$i"
echo " " restarted.
done
Run Code Online (Sandbox Code Playgroud)您必须将它们放在您的路径中(例如~/bin)并使用chmod +x. 警告:我没有任何名称中带有空格的打印机。在这种情况下,脚本没有经过测试(但我确信我们的 shell 脚本的一位专家会立即修复脚本;-)...)
现在,您可以发出:
[romano:~] % stop_printers
Printer PDF: paused.
Printer ColorDEA: paused.
Printer Deskjet_6980: paused.
Printer fotocop5: paused.
Run Code Online (Sandbox Code Playgroud)
您可以从任何地方打印,打印机将暂停:

你可以看到你的队列:
[romano:~] % lpq -PDeskjet_6980
Deskjet_6980 is not ready
Rank Owner Job File(s) Total Size
1st romano 439 Bones_3+RG.pdf — Flesh depth 125952 bytes
Run Code Online (Sandbox Code Playgroud)
(AFAIK,打印队列在重新启动后是持久的)。当你想打印时:
[romano:~] % start_printers
Printer PDF: restarted.
Printer ColorDEA: restarted.
Printer Deskjet_6980: restarted.
Printer fotocop5: restarted.
Run Code Online (Sandbox Code Playgroud)
lprm如果需要,使用您可以删除工作;lpr通过命令行将文档排入队列,并且如果您想要不同的“列表”,没有人禁止使用不同的名称多次定义相同的打印机。
您也可以手动恢复每台打印机,这只是cupsenable <printername>从提示运行的问题。
我不认为你可以用这个解决方案做的是事后更改打印选项——你将不得不为此使文档出队和重新入队。