是否有适用于Windows的CUPS服务器版本?查看CUPS源代码,它似乎已准备好进行Visual Studio编译,但我没有找到任何实际支持的包的跟踪。我想在Windows上设置CUPS服务器,以便我可以将Linux / MacOSX / Win客户端打印到我在此服务器上设置的打印机。
答案 0 :(得分:5)
我为你找到了新答案:
因为有一段时间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上编译并运行良好,并且有bunch of .vclxproj
and .sln
files可用于使MS Visual Studio的构建过程尽可能顺利。
是的,IPP示例代码正常工作,可以打印到在macOS或任何Linux混合上运行的CUPS服务器(或从那里接收打印作业)。
不,这还不是一款完全成熟的Windows CUPS服务器,它可以作为Windows打印服务器的直接替代品。它没有所有必需的功能。
但如果你想创造这样的野兽:
哦,您是否知道Apple recently changed the license conditions for CUPS并使其更加宽松,从GPL2转向Apache 2.0许可?
您以前从未听说过" IPP Everywhere" ?这是"无人驾驶"的未来。印刷。
从未听说过"无人驾驶打印" ?它的一个略微修改(和剥离)的版本已经实现为iPhone和iPad设备的" Apple AirPrint" 。
基于CUPS的打印堆栈的当前实现包括最近移动到GitHub的 cups-drivers
project 中的新代码。这个新代码实现了IPP Everywhere功能。
这个 cups-filters
项目由The Linux Foundation's OpenPrinting department开始管理,因为Apple已经不再将原始CUPS源代码的这些部分交给他们了对macOS很有用,但对Linux仍然很重要。
那么无人驾驶印刷的基本思路是什么?
让设备自动在本地网络中公布其存在及其服务类型。使用IETF标准协议mDNS
和DNS-SD
(在macOS中以" Bonjour" 的名义实现,在Linux中实现为&# 34; Avahi" )注意所提供的服务。
告诉打印客户端他们可以使用IPP
协议,以便在发出get-printer-attributes
请求时获得查询响应。此请求将告诉他们设备支持哪些打印选项。然后,打印客户机可以显示精确定制的打印对话框,以向打印用户显示选择的选择。打印客户端还将被告知每个设备支持的作业提交格式。这必须是PDF或简单的栅格格式,称为" PWG-Raster" 。
那么......你需要一个特定的"打印机驱动程序"在这样的环境中?现在,每个人都可以创建PDF文档。校验!无需特定于设备的转换为任何其他打印语言。
是否有支持IPP Everywhere的打印机?哦,是的,看看这里 - 他们都被认为完全符合标准:
答案 1 :(得分:4)
您在CUPS源中看到的 .sln 和 .vcproj 文件无意编译所有CUPS for Windows。
它们仅用于编译其中的一些实用程序(例如ipptool.exe
)...
使完整的CUPS服务器+过滤代码在Windows上运行将是一项艰巨的任务,因为Windows假脱机和打印与Unix世界有很大不同。
答案 2 :(得分:0)
CUPS使用Internet打印协议进行客户端 - 服务器通信。根据{{3}},Windows可以用作IPP主机:
启用运行Windows的计算机 Server 2008充当服务器 支持互联网打印,你必须 安装Web服务器(IIS)角色 打印服务角色和Internet 打印中的打印角色服务 服务角色。
此外,似乎Windows,Linux和Mac OS X客户端可以使用通过SMB共享的打印机。
答案 3 :(得分:0)
“在Windows上完成完整的CUPS服务器+过滤代码将是一项艰巨的任务,因为Windows的假脱机和打印与Unix世界有很大不同。”
在拨号上网时代,我遇到了一个问题,其中某些IPS具有用于调制解调器功能的替代dll。问题在于,在您卸载IPS程序之前,dll阻止了合法程序访问调制解调器。
通过编写Windows假脱机和打印替换程序,可以将相同的技术用于创建Windows CUPS服务器,该程序可以直接将打印任务交给CUPS服务器,而不是直接打印到打印机。
当然,这需要具有Windows假脱机和打印协议的深入知识的人。