Airprint是iOS系統(tǒng)自帶的打印服務框架劈彪,利用她可以很簡單系統(tǒng)打印服務,打印word顶猜,PDF沧奴,圖片,也可以打印html網(wǎng)頁长窄。
Dome地址:https://github.com/wyhu/AirPrintDemo
// 打印
-(void)printActionsbutton:(id)sender{
//獲取要打印的圖片
UIImage * scanImage = [self scaleToSize:printImage size:CGSizeMake(595, 1660)];
UIImage *jietuImage = [self imageFromImage:scanImage inRect:CGRectMake(0, 0, 595, 880)];
UIPrintInteractionController *printC = [UIPrintInteractionController sharedPrintController];//顯示出打印的用戶界面滔吠。
printC.delegate = self;
if (!printC) {
NSLog(@"打印機不存在");
}
printC.showsNumberOfCopies = YES;
printC.showsPageRange = YES;
NSData *imgDate = UIImagePNGRepresentation(jietuImage);
NSData *data = [NSData dataWithData:imgDate];
NSString *pdf = [[NSBundle mainBundle] pathForResource:@"PDF使用指南.pdf" ofType:nil];
NSData *pdfData = [NSData dataWithContentsOfFile:pdf];
// NSArray *arr = @[data,data];//打印多張圖片
if (printC && [UIPrintInteractionController canPrintData:pdfData]) {
UIPrintInfo *printInfo = [UIPrintInfo printInfo];//準備打印信息以預設(shè)值初始化的對象纲菌。
printInfo.outputType = UIPrintInfoOutputGeneral;//設(shè)置輸出類型。
printC.showsPageRange = YES;//顯示的頁面范圍
printInfo.jobName = @"my.job";
printC.printInfo = printInfo;
//設(shè)置打印源文件
printC.printingItem = pdfData;//single NSData, NSURL, UIImage, ALAsset
// 等待完成
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"可能無法完成疮绷,因為印刷錯誤: %@", error);
}
if (completed) {
NSLog(@"完成了");
}else{
NSLog(@"出錯了");
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:sender];//調(diào)用方法的時候翰舌,要注意參數(shù)的類型-下面presentFromBarButtonItem:的參數(shù)類型是 UIBarButtonItem..如果你是在系統(tǒng)的UIToolbar or UINavigationItem上放的一個打印button,就不需要轉(zhuǎn)換了冬骚。
[printC presentFromBarButtonItem:item animated:YES completionHandler:completionHandler];//在ipad上彈出打印那個頁面
} else {
[printC presentAnimated:YES completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {
}];
// [printC presentAnimated:YES completionHandler:completionHandler];//在iPhone上彈出打印那個頁面
}
}
}