2010-06-04 113 views
1

有没有办法通过wifi或其他方式向打印机发送打印请求?发送来自iPhone应用程序的打印请求

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

  • HP iPrint的照片
  • 航空照片
  • EuroSmartzPrint

,也许其他人。

回答

5

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

所以,如果你要打印你的选择是:

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

更新: 与iOS 4.2,苹果包括一个名为 “AirPrint的” 新技术。通过直接打印到支持ePrint的惠普打印机(我的理解是,这不会使用传统意义上的驱动程序),以及通过使用OS X 10.6.5的Mac进行打印,#2本质上实现了#1。

+0

谢谢,感谢。 – Mustafa 2010-06-07 06:01:40

1

据我所知,只有当设备作为Made For iPod程序的一部分启用Bonjour时才有可能。然后,您可以使用EAAccessoryManager和相关类进行连接并将数据发送到设备。这是你可以尝试在iPhone上更难的事情之一...

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

+0

感谢您分享有用的链接。 – Mustafa 2010-06-07 05:57:04

2

是的,您当然可以使用Bonjour和NSNetServiceBrowser类找到附近的打印机。具体而言,您希望发送searchForServicesOfType:消息,并附带@“_ ipp._tcp”(附近的打印机)。查看开发者文档中的Browsing for Services文章。实际的假脱机打印如何工作是超出我的。我现在只是在学习GameKit/Bonjour。

+0

我正在为此寻找第三方库。看起来我需要做很多工作才能完成。感谢您的帮助。 – Mustafa 2010-06-07 06:01:21

相关问题