iOS设备调用打印机打印-打印当前网页-打印一张图片-打印文本
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() == UIUserInte易做图ceIdiomPad) {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;//获取当前网页的urlNSLog(@"--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 marginstextFormatter.maximumContentWidth = 16 * 72.0;//最大范围的宽printC.printFormatter = textFormatter;*/// 等待完成void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =^(UIPri补充:移动开发 , IOS ,
上一个:iOS中为UIColor创建类别 其中添加了几个常用的方法
下一个:UITableView获取cell的row值(解决自定义cell里的button通过点击无法获得cell的indexpath的问题)
- 更多wap疑问解答:
- 新人求助QPainter
- 为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
- qt 4.7 sqlserver2000 存储过程调用
- 关于ANDROID4.0.1编译问题!
- Android FrameBuffer读屏幕30秒后mmap失败
- 联通粗定位用java程序如何来请求和接受数据
- 为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
- android与PC蓝牙通讯
- 指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
- Android调试
- android如何通过wifi连接无线打印机
- 运行程序,release目录下产生一个乱码文件夹
- 分享个某机构最新安卓资料,自己验证了
- service启动不起来,掉不了service connection
- 求助:QT5.0 没有QPrinter吗