使用 Samba 和 CUPS 进行打印机队列

Fle*_*exo 5 cups printing samba queue

我已经成功地让 Samba 和 CUPS 协同工作,为 Windows 客户端(自 95 以来的任何变体的 IA32 和 x64)提供良好、一致的打印界面,仅使用 Postscript 驱动程序。 smb.conf 的打印相关部分是:

[global]
   load printers = yes
   printing = cups
   printcap name = cups
Run Code Online (Sandbox Code Playgroud)

后来这些分享:

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
Run Code Online (Sandbox Code Playgroud)

这成功地枚举了所有 CUPS 打印机,并且客户端可以正常打印。

我遇到的问题是,Windows 客户端除了自己的作业之外几乎看不到队列中的任何作业,而且只在很短的时间内看到,大概是在作业假脱机到服务器时。这会产生连锁反应,如果有人想取消其中一项工作,他们要么关闭打印机电源(!),要么要求我这样做。

我的印象是,printing = cupsprintcap name = cupsin的组合[global]减轻了使用设置的需要,例如lpq command使队列管理功能可用,因为它直接使用 libcups。在测试服务器上,尽管设置一个合理的值会lpq command稍微改变观察到的行为,以便F5在窗口中按下刷新队列会立即显示作业,然后它们再次消失。我缺少什么?

我一度怀疑这与共享read only的设置有关[printers]read only = yes份额部分是什么[printers]意思?它与队列管理任务有关吗?无论以哪种方式更改它,我都看不到任何明显的差异,但我想理解而不是仅仅猜测!据推测,这与通常的文件共享上下文中的含义有所不同,因为共享[printers]在幕后发生了一些与打印相关的魔法。不过,我找不到与打印机共享相关的任何具体文档。

小智 1

本地 Windows 假脱机只是将其传递到远程假脱机。

我想为了实现你的愿望(每个人都看到每个人排队的东西)只能与某些Windows打印队列一起工作,但我远非Windows专家。我会研究 IPP,我也不确定 lpd 是否被设计为将队列发送回客户端,而是仅将您的内容提交到服务器。