J'ai joué avec iOS 4.2 UIWebView + AirPrint. Le problème, cependant, c'est que get le viewPrintFormatter de l'UIWebView, je suis capable d'imprimer des PDF et des images, mais pas DOC, DOCX, PPT, PPTX, etc. Ces files sont affichés correctement dans UIWebView, mais Airprint imprimera des pages vierges .
Voici mon code:
[internalWebView loadData:[[printContent objectAtIndex:0] data] MIMEType:mimeType textEncodingName:nil baseURL:nil]; UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController]; //pic.delegate = self; UIPrintInfo *printInfo = [UIPrintInfo printInfo]; printInfo.outputType = UIPrintInfoOutputGeneral; printInfo.jobName = [[printContent objectAtIndex:0] fileName]; pic.printInfo = printInfo; pic.printFormatter = [internalWebView viewPrintFormatter]; pic.showsPageRange = YES; void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) { if (!completed && error) { NSLog(@"Printing could not complete because of error: %@", error); } }; [pic presentAnimated:YES completionHandler:completionHandler];
J'ai trouvé comment le réparer, pour une raison quelconque, si je n'utilise pas le type mime cela fonctionne. Je viens d'save le file sur le stockage local et utilisé l'autre méthode de chargement pour le webview qui charge le contenu basé uniquement sur une URL. J'espère que cela aide…
Merci, je suis votre indice et ça marche maintenant. En utilisant loadRequest à la place:
[internalWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];