As far as I know, it is impossible to print in iOS7 without calling the UIPrintInteractionController and displaying the system print dialog box. A.
However, iOS8 now provides a position to print directly to print without displaying a dialog. The main idea is that you get a UIPrinter object and use it in combination with the new - printToPrinter:completionHandler: method of the UIPrintInteractionController for printing without displaying a dialog box.
Getting the UIPrinter object for your printer can be done in several ways.
The easiest is to use the new UIPrinterPickerController . But this will show a dialogue and therefore does not meet your needs.
An alternative is to create a printer through its URL using the UIPrinter + printerWithURL: method. I donβt quite understand how to get this URL, but it can be contained in the administration pages of HTML printers. And I believe that you can get it programmatically using the Bonjour API. More details here:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/NetServices/Introduction.html#//apple_ref/doc/uid/10000119i
Bonjour is a service discovery API that includes IPP printer discovery, which is the protocol used by AirPrint.
As for how Printer Pro can print without dialogue in iOS7, I would suggest that they interact with the printer at a very low level (for example, raw HTTP messages, etc.).
source share