2012-04-11 1 views
1

Suite à la question de ce poste: Unable to display printer options with AirPrintiOS AirPrint - imprimer plusieurs URL

Il y avait quelques questions que j'avais:

1) L'une des réponses fixions Controller.printItem à une URL. De même, puis-je définir plusieurs URL? Fondamentalement, j'ai un ensemble d'URL que j'ai besoin d'imprimer en une seule fois. Est-il possible de définir controller.printitems à un tableau d'URL? De plus, je sais que controller.printItem prend un type 'data', alors comment convertir une URL d'image Web en type 'data'?

2) Pour une raison étrange, par défaut, le mode recto verso est activé chaque fois que j'atteins la boîte de dialogue d'impression. Quelle est la variable dont j'ai besoin pour régler ça? Ce serait génial si je ne pouvais pas montrer l'option à l'utilisateur.

+0

s'il vous plaît essayer le lien de référence http://sugartin.info/2012/02/02/ios-print-functionality-to-print-using-airprinter/ –

Répondre

0

Essayez ce code peut aider à vous

- (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

merci pour cela .. J'ai effectivement vu le code avant de poster, mais Ma situation est un peu différente. J'ai un webview dans lequel quand un utilisateur clique sur un lien, j'ai besoin d'imprimer 5 pages différentes (toutes les pages sont des URL web). Ainsi, le flux: l'utilisateur clique sur imprimer -> Je reçois 5 URL de manière dynamique (toutes les URL sont des images de pleine page) -> Je dois envoyer les 5 URL à imprimer. – tHeiMmOrTaL

+0

J'ai juste besoin d'un moyen simple d'envoyer ces 5 URL à l'imprimante et l'airprint prend soin de tout. Mais une fois que j'ai l'URL, comment puis-je la convertir en NSData et une fois converti en NSData, comment puis-je passer plusieurs URL? – tHeiMmOrTaL

0

Je sais que tard, mais pourrait aider si quelqu'un a besoin de ce: Créer tableau d'URL et attribuez à propriété « printingItems » de classe « UIPrintInteractionController ».

Questions connexes