1

对于未启用 AirPrint 的打印机,Apple 没有任何内置 API。我了解到我们可以将 WiFi 模块添加到打印机。所以我的问题是:

  • 如果我将 WiFi 模块添加到打印机,它会启用 AirPrint 吗?
  • 如果不是:是否可以通过其他方式使未启用 AirPrint 的打印机启用 AirPrint?
  • 如果我得到一台不支持 AirPrint 的打印机,是否可以从 iPad 连接到它?
  • 如果是,我应该使用什么协议?
  • 有没有这方面的开源库?

我找到了以下一个:https ://github.com/opentable/star-printing 。

但是从文档中我无法理解:它仅适用于启用 AirPrint 的打印机吗?

以下是我猜想使用 iPad 连接桌面打印机的方法。

  1. 启用 WIFI
  2. 启用蓝牙
  3. 启用 Bonjour 的打印机
  4. 联网打印机(与 iPad 具有相同 ip 段的打印机)
4

2 回答 2

0

试图回答你所有的问题:

  • If I add a wifi module, will my printer be AirPrint enabled?
  • Can a non-AirPrint printer be made into an AirPrint printer?

不可以。您需要兼容 AirPrint 的打印机,仅通过 WiFi 使其可用并不能使其成为 AirPrint 打印机,并且您无法更改设备以使其成为 AirPrint 打印机。

  • If not, can I still use it?

是的。但是,它需要您直接打开与打印机的连接(通过套接字)并以这种方式发送数据。真的不难做到。可能有一些可用的库,但我没有专门尝试过。假设您已经拥有 PCL 数据,那么打开端口并发送数据 blob 的代码非常简单。

  • Can I connect to a WiFi printer?

是的,如上所述。

  • ... Bluetooth?

是的,但仅限于 MFi(Made For iOS)打印机。

  • ... Bonjour

是的,通过内置的打印对话框。

  • ... Networked

这可能与 WiFi 打印的方式相同,但我还没有尝试过。

希望对您有所帮助,如果我能澄清任何事情,请告诉我。

于 2015-10-27T22:08:43.700 回答
-3

假设,...

  • 你有一台运行 OS X 的 Mac(Book),
  • 这台 Mac 的主机名是mymac,
  • 它的 IP 地址是192.168.111.111,
  • 它安装了一个名为的共享打印机abcd不需要支持 AirPrint!),并且
  • 打印机共享不需要身份验证(放入DefaultAuthType none/etc/cups/cupsd.conf

...然后您可以让您的计算机充当abcdiOS 客户端可用队列的 AirPrint 网关。

要测试这一点,只需在 Terminal.app 窗口中执行以下命令(注意,该命令不会返回 - 如果关闭 Terminal.app 窗口,该命令的效果将消失!)

 dns-sd                 \
   -P AirPrint-abcd     \
   _ipp._tcp,_universal \
   local.               \
   631                  \
   mymac.local.         \
   192.168.111.111      \
         pdl="application/pdf,image/urf"    \
         kind="document"                    \
         priority="1"                       \
         product="Model Name of my Printer" \
         rp="printers/abcd"                 \
         URF="DM3"                          \
         Duplex="T"                         \
         Color="T"                          \
         note="Testing AirPrint via MacBook"\
         txtvers="1"                        \
         qtotal="1"                         \
         printer-type="0x0480FFFC"          \
         printer-state="3"                  \
         air="none"                         \
         UUID="54321abc-1234-1234-abcd-1238e4bdcbf8"

您可以想出一个脚本或 cron 作业,每次启动 Mac 时在后台执行此命令。这留给读者作为练习。

此外,如果第一台 Mac 提供共享打印队列并且上述所有详细信息都与第一台 Mac 的设置相匹配,则您可以在同一网络上从第二台完全不同的 Mac 运行相同的命令。


背景资料:

dns-sd命令行实用程序旨在为每个研究 Bonjour、mDNS(多播 DNS)和 DNS-SD(基于 DNS 的服务发现)的人提供测试和开发工具。

-P参数 todns-sd将向您的本地 LAN/WLAN 发出 Bonjour“代理公告” 。该公告将告诉潜在的 AirPrint 客户以下信息:

  • .local.您的域中有可用的 AirPrint 设备。
  • 它的名字是Airprint-abcd
  • 它可以通过 IP 地址192.168.111.111和端口访问631
  • 使用打印队列名称printers/abcd打印到它。
  • 它可以使用 PDF 和 URF 光栅文档。
  • 它不需要身份验证。
  • 它可以输出双面和彩色文档。

有关此实用程序的详细信息,请参阅man dns-sd。有关更多背景信息,请参阅dns-sd.org我对类似问题的其他答案

于 2016-07-03T19:26:36.360 回答