Wednesday, June 8, 2011

iPhone/iPad AirPrinting Tutorial in 3 steps

Step 1:

Start Xcode and make a New Project – Select View-based Application – I call it AirPrinting.


Add an image to your project – I added demo.png – Here is the image

Step 2:

Go to AirPrintingViewController.h and add the following code

#import <UIKit/UIKit.h>
 
@interface AirPrintingViewController : UIViewController <UIPrintInteractionControllerDelegate>{
 
}
 
-(void)printItem;
 
@end

Next in AirPrintingViewController.m add the following code

#import "AirPrintingViewController.h"
 
@implementation AirPrintingViewController
 
-(void)printItem {
 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"png"];
    NSData *dataFromPath = [NSData dataWithContentsOfFile:path];
 
    UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
 
    if(printController && [UIPrintInteractionController canPrintData:dataFromPath]) {
 
        printController.delegate = self;
 
        UIPrintInfo *printInfo = [UIPrintInfo printInfo];
        printInfo.outputType = UIPrintInfoOutputGeneral;
        printInfo.jobName = [path lastPathComponent];
        printInfo.duplex = UIPrintInfoDuplexLongEdge;
        printController.printInfo = printInfo;
        printController.showsPageRange = YES;
        printController.printingItem = dataFromPath;
 
        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 presentAnimated:YES completionHandler:completionHandler];
 
    }
}
 
- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn addTarget:self action:@selector(printItem) forControlEvents:UIControlEventTouchDown];
    [btn setTitle:@"PRINT" forState:UIControlStateNormal];
    btn.frame = CGRectMake(0, 100, 320, 50);
    [self.view addSubview:btn];
}
 
@end

Step 3:

Build and Run – You will see a print button – Click the print Button and you will see UIPrintInteractionController popup – Go ahead and Print.

Here is the entire Code

 

No comments:

Post a Comment