首页 文章

适用于iOS的非AirPrint打印机

提问于
浏览
1

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

  • 如果我将WiFi模块添加到打印机,它是否会启用AirPrint?

  • 如果不是:启用非AirPrint的打印机能否通过其他方式启用AirPrint?

  • 如果我使用不支持AirPrint的打印机,是否可以从iPad连接到它?

  • 如果是,我应该使用什么协议?

  • 这上面有没有开源库?

我发现了以下一个:https://github.com/opentable/star-printing .

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

以下是我用iPad连接桌面打印机的方法 .

  • 启用了WIFI

  • 蓝牙已启用

  • Bonjour启用打印机

  • 网络打印机(与iPad具有相同ip段的打印机)

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打印的方式相同,但我还没有尝试过 .

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

  • -2

    假设,...

    • 你有运行OS X的Mac(Book),

    • 这个Mac的主机名是 mymac

    • 其IP地址为 192.168.111.111

    • 它安装了一个名为 abcd 的共享打印机(不需要支持AirPrint!),以及

    • 打印机共享不需要验证(将 DefaultAuthType none 放入 /etc/cups/cupsd.conf ),

    ...然后,您可以使您的计算机充当iOS客户端可用的 abcd 队列的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上运行同一命令 .


    Background info:

    dns-sd 命令行实用程序是一个测试和开发工具,适用于所有人进入Bonjour,mDNS(多播DNS)和DNS-SD(基于DNS的服务发现) .

    -P-P 参数将为您的本地LAN / WLAN创建Bonjour "proxy announcement" . 该公告将告知潜在的AirPrint客户以下信息:

    • .local. 域中有一个AirPrint设备 .

    • 它的名字是 Airprint-abcd .

    • 可通过IP地址 192.168.111.111 和端口 631 访问 .

    • 使用 printers/abcd 的打印队列名称打印到它 .

    • 它可以使用PDF和URF栅格文档 .

    • 它不需要身份验证 .

    • 它可以输出双面和彩色文档 .

    有关此实用程序的详细信息,请参阅 man dns-sd . 有关更多背景信息,请参阅dns-sd.orgmy other answers on similar questions .

相关问题