Одна действительно неприятная вещь, с которой я столкнулся, это невозможность печати на нескольких принтерах AirPrint одновременно.Не путайте это с распечаткой нескольких ЭЛЕМЕНТОВ на 1 принтер.
Пример:
У нас есть 3 принтера AirPrint.
Каждый принтер должен что-то распечатывать ... одинпосле другого.
Если вы уже получили свой объект UIPrinter, вы бы вызвали:
- (BOOL)printToPrinter:(UIPrinter *)printer
completionHandler:(UIPrintInteractionCompletionHandler)completion;
В методе завершения обычным процессом будет запуск следующей работы вМетод завершения так:
- (void)printAllJobs
// let's use an example printer url:
UIPrinter *printer = [[UIPrinter alloc] initWithURL:[NSURL URLWithString:@"ipps://mycomputer.:863/printers/label"]];
// get the printer interaction controller:
UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
// now print:
[controller printToPrinter:printer completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {
// here.. you would check if the job is complete:
if (completed) {
// print to the next printer:
// THIS METHOD GETS FIRED BUT DOESN'T ACTUALLY PRINT
[self printToNextPrinter];
}
}
}
- (void)printToNextPrinter {
// create next printer:
UIPrinter *nextPrinter = [[UIPrinter alloc] initWithURL:[NSURL URLWithString:@"ipps://mycomputer.:863/printers/roller"]];
// get controller:
UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
// print:
[controller printToPrinter:printer completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {
// this never gets executed.
}
}