iOS 调用打印机
来源:互联网 发布:db2 oracle mysql 编辑:程序博客网 时间:2024/06/10 10:37
1)添加UIPrintInteractionControllerDelegate 打印的委托代理协议
(2)添加打印按钮:
[objc]
// 打印
UIButton *printButton = [UIButton buttonWithType:UIButtonTypeSystem];
printButton.frame =CGRectMake(400,0,100,70);
[printButton setTitle:@"打印" forState:UIControlStateNormal];
printButton.titleLabel.font = [UIFont systemFontOfSize:32];
[printButton addTarget:self action:@selector(printAction:) forControlEvents:UIControlEventTouchUpInside];
[self.toolView addSubview:printButton];
(3)打印button相应的action
打印一张图片:
[objc]
// 打印
-(void)printAction:(id)sender{
UIPrintInteractionController *printC = [UIPrintInteractionController sharedPrintController];//显示出打印的用户界面。
printC.delegate = self;
UIImage *img = [UIImage imageNamed:@"db.png"];
NSData *data = [NSData dataWithData:UIImagePNGRepresentation(img)];
if (printC && [UIPrintInteractionController canPrintData:data]) {
UIPrintInfo *printInfo = [UIPrintInfo printInfo];//准备打印信息以预设值初始化的对象。
printInfo.outputType = UIPrintInfoOutputGeneral;//设置输出类型。
printC.showsPageRange = YES;//显示的页面范围
// printInfo.jobName = @"willingseal";
// printC.printInfo = printInfo;
// NSLog(@"printinfo-%@",printC.printInfo);
printC.printingItem = data;//single NSData, NSURL, UIImage, ALAsset
// NSLog(@"printingitem-%@",printC);
// 等待完成
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"可能无法完成,因为印刷错误: %@", error);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:sender];//调用方法的时候,要注意参数的类型-下面presentFromBarButtonItem:的参数类型是 UIBarButtonItem..如果你是在系统的UIToolbar or UINavigationItem上放的一个打印button,就不需要转换了。
[printC presentFromBarButtonItem:item animated:YES completionHandler:completionHandler];//在ipad上弹出打印那个页面
} else {
[printC presentAnimated:YES completionHandler:completionHandler];//在iPhone上弹出打印那个页面
}
}
}
打印当前网页或者文本信息:
[objc]
@property (strong,nonatomic)UIWebView *webView;
@property (strong,nonatomic)UIView *toolView;
@property (strong,nonatomic)NSString *currentURL;
[objc]
-(void) webViewDidFinishLoad:(UIWebView *)webView {
self.currentURL = webView.request.URL.absoluteString;//获取当前网页的url
NSLog(@"--url-%@--",self.currentURL);
}
[objc]
// 打印
-(void)printAction:(id)sender{
UIPrintInteractionController *printC = [UIPrintInteractionController sharedPrintController];//显示出打印的用户界面。
printC.delegate = self;
UIPrintInfo *printInfo = [UIPrintInfo printInfo];//准备打印信息以预设值初始化的对象。
printInfo.outputType = UIPrintInfoOutputGeneral;//设置输出类型。
printC.showsPageRange = YES;//显示的页面范围
// 打印网页
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.currentURL]]];//网页
printC.printFormatter = [self.webView viewPrintFormatter];//布局打印视图绘制的内容。
/*
// 打印文本
UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc]
initWithText:@"ここの ういえい 子に うぃっl willingseal 20655322 你好么? #@¥%……&*"];
textFormatter.startPage = 0;
textFormatter.contentInsets = UIEdgeInsetsMake(200, 300, 0, 72.0); // 插入内容页的边缘 1 inch margins
textFormatter.maximumContentWidth = 16 * 72.0;//最大范围的宽
printC.printFormatter = textFormatter;
*/
// 等待完成
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"可能无法完成,因为印刷错误: %@", error);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:sender];//调用方法的时候,要注意参数的类型-下面presentFromBarButtonItem:的参数类型是 UIBarButtonItem..如果你是在系统的UIToolbar or UINavigationItem上放的一个打印button,就不需要转换了。
[printC presentFromBarButtonItem:item animated:YES completionHandler:completionHandler];//在ipad上弹出打印那个页面
// [printC presentFromRect:CGRectMake(500, 500, 100, 200) inView:self.webView animated:YES completionHandler:completionHandler];//第二种方法
} else {
[printC presentAnimated:YES completionHandler:completionHandler];//在iPhone上弹出打印那个页面
}
}
0 0
- iOS 调用打印机
- Ios 调用打印机2
- ios调用打印机
- ios 打印机
- VB调用打印机属性
- 调用打印机,js
- WebService 调用打印机
- C# 调用打印机
- js调用打印机打印
- java 调用打印机程序
- Qt调用打印机
- js调用打印机服务
- 调用windows打印机
- Qt 调用打印机参考
- jQuery调用打印机
- AX代码调用打印机
- c# 调用打印机
- java调用打印机
- 书屋(二):《我的成功可以复制》不妨一读
- python学习日记_第十二天(ex29~30)
- 2016蓝桥杯基础训练——闰年判断
- 2016太原UI设计师郭文军告你UI设计企业流程
- 典型代码-.net连接access(控制台)
- iOS 调用打印机
- html 复习
- Ios 调用打印机2
- 写静态反编译器的方法
- WC2016酱油记
- Apache启动报错Name or service not known,`127.0.0.1' does NOT match server name!
- java中值得注意的
- spring boot 工程如何生成 gradle wrapper
- Oracle 出现锁表问题解决步骤(以前写的一份故障排查报告)