2012-04-11 1 views
1

После вопроса с этого поста: Unable to display printer options with AirPrintIOS AirPrint - печать нескольких URL-адресов

Существовали несколько вопросов, которые я имел:

1) Один из ответов были установить Controller.printItem в URL. Аналогично, могу ли я установить несколько URL-адресов? В принципе, у меня есть набор URL-адресов, которые мне нужно распечатать одним выстрелом. Можно ли установить controller.printitems в массив URL-адресов? Кроме того, я знаю, что controller.printItem использует данные типа, поэтому как преобразовать URL-адрес веб-страницы в тип данных?

2) По какой-то странной причине по умолчанию двусторонняя двусторонняя установка устанавливается на каждый раз, когда я достигаю диалогового окна печати. Какую переменную мне нужно отключить? Было бы здорово, если бы я просто не мог показать эту возможность пользователю.

+0

, пожалуйста, попробуйте ссылку http://sugartin.info/2012/02/02/ios-print-functionality-to-print-using-airprinter/ –

ответ

0

Попробуйте этот код может помочь вам

- (IBAction)btnPrintTapped:(id)sender { 
    NSData *imageData = UIImagePNGRepresentation(self.imgV.image); 
    [self printItem:imageData]; 
} 

#pragma mark - Printing 

-(void)printItem :(NSData*)data { 
    printController = [UIPrintInteractionController sharedPrintController]; 
    if(printController && [UIPrintInteractionController canPrintData:data]) { 
     printController.delegate = self; 
     UIPrintInfo *printInfo = [UIPrintInfo printInfo]; 
     printInfo.outputType = UIPrintInfoOutputGeneral; 
     printInfo.jobName = [NSString stringWithFormat:@""]; 
     printInfo.duplex = UIPrintInfoDuplexLongEdge; 
     printController.printInfo = printInfo; 
     printController.showsPageRange = YES; 
     printController.printingItem = data; 
     void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) { 
      if (!completed && error) { 
       //NSLog(@"FAILED! due to error in domain %@ with error code %u", error.domain, error.code); 
      } 
     }; 
     [printController presentFromBarButtonItem:self.item animated:YES completionHandler:completionHandler]; 
    } 
} 

- (BOOL)presentFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion { 
    return YES; 
} 

- (BOOL)presentFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated completionHandler:(UIPrintInteractionCompletionHandler)completion { 
    return YES; 
} 
+0

спасибо за это .. Я действительно видел код перед публикацией, но моя ситуация немного отличается. У меня есть веб-просмотр, в котором, когда пользователь нажимает на ссылку, мне нужно распечатать 5 разных страниц (все страницы - это веб-URL). Итак, поток: пользователь щелкает печать -> Я динамически получаю 5 URL-адресов (все URL-адреса являются полными страницами изображений) -> Мне нужно отправить все 5 URL-адресов для печати. – tHeiMmOrTaL

+0

Мне просто нужен простой способ отправить эти 5 URL-адресов на принтер, и обсерватория заботится обо всем. Но как только у меня есть URL-адрес, как мне преобразовать его в NSData и после преобразования в NSData, как мне передать несколько URL-адресов? – tHeiMmOrTaL

0

Я знаю, что его поздно, но может помочь, если кто-то нуждается в этом: Создать массив адресов и присвоить его свойству «printingItems» класса «UIPrintInteractionController».

 Смежные вопросы

  • Нет связанных вопросов^_^