我注意到将完全相同的pdf文件打印到完全相同的打印机并不总是花费相同的时间:
- 从macOS预览的默认打印对话框打印非常快。
- 从 Chrome 浏览器的内置打印对话框打印速度较慢。打印机在启动打印作业后暂停片刻。
- 使用
lpr
从命令行打印与从 Chrome 的内置打印对话框打印具有相同的效果。 - 但是,切换到带有Chrome的系统打印对话框会使事情再次变得快速。
我的目标是使从命令行打印lpr
与从系统对话框打印一样流畅。究竟是什么能有所作为?
lpr -o landscape /path/to/my/file.pdf
是我目前的命令。生成的输出符合预期,只是太慢了。
解决方案从下面的评论中提取到这里:
就我而言,我查看了
lpoptions -p printerName -l
以查看所有选项,发现其中一个默认值与我的设置不匹配。在我的命令中使用-o paramName=paramValue
修复了它,它打印起来一如既往地流畅。
原答案:
如果尚未尝试,请尝试以下操作:
- 为您使用的
lpr
命令指定-H immediate
,以覆盖 CUPS 队列本身中可能发生的任何计划。 - 尝试指定
-d $printername
参数以覆盖有关使用哪种打印机的任何决定。
lp
的手册页为我们提供了一些关于可能发生的事情的提示:
CUPS 提供了许多设置默认目标的方法。首先参考 LPDEST 和 PRINTER 环境变量。 如果两者都未设置,则使用当前使用 lpoptions(1) 命令的缺省设置, 然后使用 lpadmin(8) 命令进行缺省设置。
从lpoptions
手册页:
~/.cups/lpoptions - 用户默认值和非 root 用户创建的实例。
/etc/cups/lpoptions - 系统范围的默认值和由根用户创建的实例。
这些位置中的任何一个都可能包含设置,因此请检查您那里没有任何意外的配置。
回复:目的地选择:
通过使用上述任何一种方式指定默认目的地,可以在一定程度上加快目的地的选择。声明默认目标,然后在调用lp
或lpr
时选择带有-d
的命名目标似乎是最简单的方法,但 ENV 变量也非常方便。
您还应该使用lpoptions
来验证打印机的选项(如果有设置为小于最佳值)。匹配此处"正常"OSX打印机设置中使用的选项应该会导致两种打印方法以完全相同的速度运行。
如果这不能解决您的问题,下一步将是找出您的打印机打印最快的原始文件格式 - 然后尝试通过在命令行上进行转换来模拟它并将转换后的文件传递给打印机(注意:lp
和lpr
都支持使用 STDIN 作为输入)。在所有条件相同的情况下,您的计算机在转换方面可能比您使用的打印机或打印服务器快得多,并且预览可能使用类似的技巧,例如打印原始文件而不是实际传递PDF文件。