Search code examples
objective-ciosairprint

Function that sends an image to AirPrint


Im trying to find a function that lets me print using AirPrint.

I have a button btnPrint, that when pressed, should print myPic.jpg to the default AirPrint device. But I cannot figure out if there even is such a function.

I cannot find a lot of documentation on AirPrint in xcode.


Solution

  • Apple has documentation on printing that would probably benefit you.

    And the following is from Objective-C code for AirPrint:

    Check wether printing is available:

    if ([UIPrintInteractionController isPrintingAvailable])
    {
        // Available
    } else {
        // Not Available
    }
    

    Print after button click:

    -(IBAction) buttonClicked: (id) sender;
    {
        NSMutableString *printBody = [NSMutableString stringWithFormat:@"%@, %@",self.encoded.text, self.decoded.text];
        [printBody appendFormat:@"\n\n\n\nPrinted From *myapp*"];
    
         UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
         pic.delegate = self;
    
         UIPrintInfo *printInfo = [UIPrintInfo printInfo];
         printInfo.outputType = UIPrintInfoOutputGeneral;
         printInfo.jobName = self.titleLabel.text;
         pic.printInfo = printInfo;
    
         UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc] initWithText:printBody];
         textFormatter.startPage = 0;
         textFormatter.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
         textFormatter.maximumContentWidth = 6 * 72.0;
         pic.printFormatter = textFormatter;
         [textFormatter release];
         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 presentFromBarButtonItem:self.rightButton animated:YES completionHandler:completionHandler];
    
    }