【问题标题】:Sending print request from with-in an iPhone application从 iPhone 应用程序中发送打印请求
【发布时间】:2010-06-04 04:06:29
【问题描述】:

有没有办法使用 wifi 或其他方式向打印机发送打印请求?

编辑: 必须有,因为有一些应用程序可以让你做到这一点。但是他们是怎么做到的呢?例如,

  • HP iPrint 照片
  • 航拍照片
  • EuroSmartzPrint

也许还有其他人。

【问题讨论】:

    标签: iphone cocoa printing


    【解决方案1】:

    Apple 的 SDK 中没有本地打印方式。 Air Photo 使用安装在计算机上的帮助应用程序进行打印,因此它将请求发送到实际发送打印请求的桌面应用程序。 HP 的应用程序可以连接到它可以在网络上找到的 HP 打印机,大概是使用 Bonjour。直接打印的困难在于获得正确的驱动程序,幸运的是惠普,他们也生产打印机。我相信 EuroSmartz 可以使用之前的两种方法,但它们没有声称直接打印到打印机的质量有多好,可能是因为它们不能包含供应商提供的驱动程序。

    所以,如果你想打印你的选项是:

    1. 通过 Bonjour 连接到打印机并尝试在没有供应商提供的驱动程序的情况下进行打印(也许您可以找到开源驱动程序)。
    2. 编写一个桌面应用程序来协助打印。 (质量更好,但需要中间人。)

    更新: 在 iOS 4.2 中,Apple 包含了一项名为“AirPrint”的新技术。 Apple 基本上是通过直接打印到支持 ePrint 的 HP 打印机(我的理解是这不使用传统意义上的驱动程序)和通过带有 OS X 10.6.5 的 Mac 打印来实现 #2。 /p>

    【讨论】:

      【解决方案2】:

      是的,您当然可以使用 Bonjour 和 NSNetServiceBrowser 类找到附近的打印机。具体来说,您希望发送其searchForServicesOfType: 消息,类型为@"_ipp._tcp"(附近的打印机)。查看开发人员文档中的 Browsing for Services 文章。实际假脱机打印的工作原理超出了我的范围。我现在正在学习 GameKit/Bonjour。

      【讨论】:

      • 我想为此寻找第三方库。看来我必须做很多工作才能完成这项工作。感谢您的帮助。
      【解决方案3】:

      据我所知,只有在设备支持 Bonjour 作为 Made For iPod 计划的一部分时才有可能。然后您可以使用 EAAccessoryManager 和相关类来建立连接并向设备发送数据。这是您可以在 iPhone 上尝试的更难的事情之一...

      Here's 关于这个主题的另一个(也许)有用的问题。

      【讨论】:

      • 感谢分享有用的链接。
      猜你喜欢
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      相关资源
      最近更新 更多