是否有可用于Windows的CUPS服务器版本? 看着CUPS的源代码,它似乎已经准备好了Visual Studio编译,但我没有find任何实际支持包的踪迹。 我想在Windows上设置一个CUPS服务器,这样我就可以将Linux / MacOSX / Win客户端打印到我在此服务器上设置的打印机上。
您在CUPS源文件中看到的.sln和.vcproj文件并不是要编译Windows的所有CUPS文件。
它们仅用于编译其一些实用程序(如ipptool.exe
)…
在Windows上制作完整的CUPS服务器+过滤代码将是一项艰巨的任务,因为Windows假脱机和打印与Unix世界有很大不同。
CUPS使用Internet打印协议进行客户端 – 服务器通信。 根据Technet的文章 ,Windows可以用作IPP主机:
要使运行Windows server 2008的计算机充当支持Internet打印的服务器,必须在打印服务角色中安装Web服务器(IIS)角色,打印服务角色和Internet打印角色服务。
而且,Windows,Linux和Mac OS X客户端似乎可以使用通过SMB共享的打印机。
我有一个新的答案给你:
一段时间以来,在GitHub上有一个名为ippsample
的项目。 它正在慢慢接近成熟的1.0版本。
以下是强制README文件中给出的自描述的前两个句子:
“这段代码提供了IPP客户端,打印机和代理的示例实现, 主要基于CUPS软件,对ippproxy和ippserver实现进行了大量更改,使其更具通用性和可配置性。 (我的重点)
该项目由ISTO Printer Working Group (PWG)
主持,该组织是开发和推广IPP作为通用标准的同一行业组织。
IPP示例项目的ippserver
, ipptool
, ippfind
, ippproxy
和ipptransform
组件共同组成了符合标准的IPP Everywhere
实现,涵盖了客户端以及服务器端的打印。
IPP Sample项目的GitHub代码由同样开发CUPS的Mike Sweet维护 – 所以它是真实的。
是的,它在Windows上很好地编译和工作,还有一堆.vclxproj
和.sln
文件可以使MS Visual Studio的构建过程尽可能流畅。
是的,IPP示例代码正在运行,并且可以打印到运行在macOS上的任何混合的Linux上的CUPS服务器(或从那里接收打印作业)。
不,这还不是一个完全成熟的适用于Windows的CUPS服务器,可以作为Windows打印服务器的替代品。 它没有与所有需要的功能。
但是,如果你想创造这样一个野兽:
哦,你是否知道, 苹果最近改变了CUPS的许可条件,并使其更加宽容,从GPL2转向Apache 2.0许可?
你从来没有听说过“IPP Everywhere”吗? 这是“无人驾驶”印刷的未来。
从来没有听说过“无人驾驶印刷” ? 它已经作为iPhone和iPad设备的“Apple AirPrint”实施了一个稍微修改(和精简)的版本。
目前,基于CUPS的打印栈的实现包括最近转移到GitHub的cups-drivers
项目中的新代码。 这个新的代码实现了IPP Everywhere功能。
这个cups-filters
项目是由Linux基金会的OpenPrinting部门管理的 ,自从苹果公司将这些原始的CUPS源代码部分移交给它们时,它们就不再用于macOS,但对Linux依然重要。
那么无人驾驶打印的基本思想是什么?
让设备在本地网络中自动通知他们的存在及其服务类型。 使用IETF标准协议mDNS
和DNS-SD
(在macOS下以“Bonjour”名称实现,在Linux中以“Avahi”实现 )注意所提供的服务。
告诉打印客户端他们可以使用IPP
协议,以便在获取get-printer-attributes
请求时获得查询响应。 这个请求会告诉他们设备支持哪些打印选项。 然后,打印客户端可以显示精确定制的打印对话框,以向打印用户显示选择的选项。 打印客户端也将被告知每个设备支持的作业提交格式。 这必须是PDF或称为“PWG-Raster”的简单光栅格式。
那么……在这样的环境下,你需要一个特定的“打印机驱动程序”? 一切和每个人都可以创建PDF文件。 检查! 无需将设备特定的转换为任何其他打印语言。
是否有打印机支持IPP Everywhere? 哦,是的,看这里 – 他们都说是完全符合标准: