在我工作的一所学校,我被告知用户在打印时遇到了麻烦——打印队列不断被堵塞,并且系统提示他们输入密码,而不必解除堵塞。
我们的用户使用的是运行 OS X 10.5.7 的 Mac。计算机直接打印到网络打印机(即无需先通过打印服务器)。
我找到了确定哪些机器有问题的方法:
lpstat -o -p
显示队列中的作业,并说明有关打印机的信息。在有问题的计算机上,它以以下内容结束:
printer CJHS_WestLab_HP1320 disabled since Wed Dec 16 09:35:54 2009 -
/usr/libexec/cups/backend/lpd failed
我认为打印作业失败的原因是打印机默认使用 A4 尺寸的纸张——而这里的学生只使用美国信纸尺寸的纸张。然后作业进入打印机,打印机开始闪烁,直到您按一个按钮打印,或按另一个按钮取消作业。
我有两个问题:
- 我如何强制执行美国信函页面大小(在脚本中?)
- 我可以让用户自己清除队列吗?让他们暂停和取消暂停打印机?
- 如果没有,是否有一个好的脚本可以运行来清除队列?
我可以看到,作为管理员,我可以通过以下方式清除打印作业:
- 我发现一个很好的脚本,每两分钟清除一次队列——但肯定有更优雅的解决方案!?[我会选择可行的方法,而不是优雅的方法,但优雅+可行的方法 == 优点]。
- 而且,只需再进行一点搜索...取消-a-。它仍然会提示属于 lpadmin 组的人员,并且它不会恢复卡住的打印机......但了解这一点确实很有用,以便以管理员身份解决问题。
我也发现了这个Mac OS X 提示否定了用户属于 lpadmin 组的要求通过编辑 /etc/cups/cupsd.conf 。这听起来很棒——我只是担心它会被软件更新破坏。
尽管如此,我还是忍不住觉得我忽略了一些东西,并且这个问题有更好的解决方案。(我很想知道为什么默认页面大小是 A4,以及如何解决这个问题。)
答案1
为了避免弄乱 cupsd.conf(并冒着被攻击的风险),你可以将用户添加到 _lpadmin 组:
sudo dseditgroup -o edit -a fred _lpadmin
或者直接添加所有人:
sudo dseditgroup -o edit -t group -a everyone _lpadmin
顺便说一句,_lpadmin 的成员资格既授予管理队列的能力,也授予配置打印机设置的能力;如果您只想授予队列管理权,我相信您可以通过将人员添加到 _lpoperator 来实现。
至于避免使用 A4,我的第一个想法是编辑打印机的 ppd 文件以删除所有提及该死的 PageSize 的内容——但这不是我所了解的事情……
答案2
对于您的页面大小问题,我遇到了相反的问题,默认使用 us Letter 用 lpadmin 修复了它
在您的打印机上使用 lpadmin 命令并添加“-o PageSize=*”* 表示您想要的默认大小,例如我的是 -o PageSize=A4
在终端中运行 man lpadmin 以获得更好的观察:)
答案3
当您进入系统偏好设置->打印和传真并更改“页面设置中的默认纸张尺寸”时,它会将更改写入 ~/Library/Preferences/com.apple.print.PrintingPrefs.plist 。
可以通过运行来准备参数
defaults read com.apple.print.PrintingPrefs DefaultPaperID
通常返回 na-letter 或 iso-a4。
指定用户可以通过运行以下命令进行更改
defaults write com.apple.print.PrintingPrefs DefaultPaperID na-letter
我想为整个实验室管理此首选项。为此,我在工作组管理器中选择了计算机组,单击了“首选项”(顶部),然后单击右侧的“详细信息”选项卡。然后我点击加号按钮,找到我正确配置的 ~/Library/Preferences/com.apple.print.PrintingPrefs.plist 文件,并使用默认设置管理“经常”属性。然后我在列表中找到 com.apple.print.PrintingPrefs,并点击铅笔对其进行编辑。在“经常”键下,我删除了除 DefaultPaperID 之外的所有内容,然后点击“立即应用”和“完成”。
我已确认设置已生效(Apple 菜单 -> 关于本机 -> 更多信息,然后,当系统配置文件出现时,向下滚动到“托管客户端”(靠近底部),看看它是否显示设置)。我认为它会很好地工作。