12

是否有适用于 Windows 的 CUPS 服务器版本?查看 CUPS 源代码,它似乎已准备好进行 Visual Studio 编译,但我没有找到任何实际支持的包的痕迹。我想在 Windows 上设置一个 CUPS 服务器,以便我可以从 Linux/MacOSX/Win 客户端打印到我在此服务器上设置的打印机。

4

4 回答 4

10

我给你一个新的答案:

  1. ippsample自从有一段时间以来,GitHub上有一个名为的项目。它正在慢慢接近成熟的 1.0 版本。

  2. 以下是强制性 README 文件中给出的前两句话作为自我描述:

    “此代码提供了 IPP 客户端、打印机和代理的示例实现。它主要基于 CUPS 软件,对 ippproxy 和 ippserver 实现进行了重大更改,以使其更加通用和可配置。” (我的重点)

  3. 该项目由ISTO Printer Working Group (PWG)开发和推广 IPP 作为通用标准的同一行业组织主办。

  4. IPP 示例项目的ippserveripptoolippfind和组件共同构成了一个符合标准的实现,涵盖了打印的客户端和服务器端ippproxyipptransformIPP Everywhere

  5. IPP 示例项目的 GitHub 代码由同样开发 CUPS 的 Mike Sweet 维护——所以它是真实的。

  6. 是的,它可以在 Windows 上很好地编译和运行,并且有很多文件可以.vclxproj.sln使 MS Visual Studio 的构建过程尽可能顺利。

  7. 是的,IPP 示例代码正在运行,并且可以打印到在 macOS 或任何 Linux 混合上运行的 CUPS 服务器(或从那里接收打印作业)。

  8. 不,这还不是用于 Windows 的成熟 CUPS 服务器,它可以作为 Windows 打印服务器的直接替代品。它没有所有需要的功能。

  9. 但是如果你想创造这样的野兽:

    • 这是您必须先四处逛逛的地方;
    • 这是您可能可以分叉代码并开始添加功能以到达您想去的地方。
  10. 哦,您是否知道Apple 最近更改了 CUPS 的许可条件并使其更加宽松,从 GPL2 转向 Apache 2.0 许可?

  11. 您以前从未听说过“IPP Everywhere”吗?这是“无人驾驶”打印的未来。

  12. 没听说过“无人驾驶打印”?它的一个稍微修改(和精简)的版本已经实现为 iPhone 和 iPad 设备的“Apple AirPrint” 。

  13. 基于 CUPS 的打印堆栈的当前实现包括最近移至 GitHub的cups-drivers项目中的新代码。这个新代码实现了 IPP Everywhere 功能。

  14. 这个cups-filters项目一直由Linux 基金会的 OpenPrinting 部门管理,因为当这些部分原始 CUPS 源代码对 macOS 不再有用但对 Linux 仍然很重要时,Apple 将这些部分交给了他们。

  15. 那么无人驾驶打印的基本思路是什么?

    • 让设备自动宣布它们在本地网络中的存在及其服务类型。使用 IETF 标准协议mDNSDNS-SD(在 macOS 中以“Bonjour”的名称实现,在 Linux 中以“Avahi”的名称实现)记录所提供的服务。

    • 告诉打印客户端他们可以使用该IPP协议,以便在他们发出get-printer-attributes请求时获得查询响应。该请求将告诉他们设备支持哪组打印选项。然后打印客户端可以显示一个完全定制的打印对话框,以向打印用户显示选择的选择。打印客户端还将被告知每个设备支持的作业提交格式。这必须是 PDF 或称为“PWG-Raster”的简单光栅格式。

    • 那么......在这样的环境中,您在哪里需要特定的“打印机驱动程序”?如今,任何人和每个人都可以创建 PDF 文档。查看!无需将特定设备转换为任何其他打印语言。

  16. 是否已经有支持 IPP Everywhere 的打印机?哦,是的,看这里——据说它们都完全符合标准:

于 2017-11-24T17:16:46.777 回答
4

您在 CUPS 源代码中看到的.sln.vcproj 文件并不是为了编译所有适用于 Windows 的 CUPS。

它们仅用于编译它的一些实用程序(例如ipptool.exe)...

使完整的 CUPS 服务器+过滤代码在 Windows 上工作将是一项艰巨的任务,因为 Windows 假脱机和打印与 Unix 世界有很大不同。

于 2010-06-05T20:49:20.067 回答
0

CUPS 使用 Internet 打印协议进行客户端-服务器通信。根据Technet 文章,Windows 可以用作 IPP 主机:

要使运行 Windows Server 2008 的计算机充当支持 Internet 打印的服务器,您必须在打印服务角色中安装 Web 服务器 (IIS) 角色、打印服务角色和 Internet 打印角色服务。

此外,Windows、Linux 和 Mac OS X 客户端似乎可以使用通过 SMB 共享的打印机。

于 2010-06-05T21:06:49.927 回答
0

“让完整的 CUPS 服务器+过滤代码在 Windows 上运行将是一项艰巨的任务,因为 Windows 假脱机和打印与 Unix 世界有很大不同。”

回到拨号上网的日子,我遇到了一个问题,一些 IPS 有一个用于调制解调器功能的替换 dll。问题在于,在您卸载 IPS 程序之前,该 dll 会阻止合法程序访问调制解调器。

通过编写 Windows 假脱机和打印替换程序,可以使用相同的技术来创建 Windows CUPS 服务器,该程序不是直接打印到打印机,而是将打印任务交给 CUPS 服务器。

当然,需要对 Windows 假脱机和打印协议有深入了解的人。

于 2020-07-12T19:25:44.860 回答