android连接airprint打印机,AirPrint:iOS的打印机

昨天看到安卓QQ有直接打印资料的功能,看了一下iOS的,没有看到,于是查了一下iOS打印的资料

原理

在iOS里边打印主要是用到了UIPrintInteractionController类,这是一个单列类。UIPrintInfo是配置打印信息,UISimpleTextPrintFormatter是设置页面范围。

具体实现

打印textview文本文字

f29ac4f1d8d0

打印文本

//为打印做准备,创建一个指向sharedPrintController的引用

UIPrintInteractionController *printer = [UIPrintInteractionController sharedPrintController];

printer.delegate = self;

//配置打印信息

UIPrintInfo *Pinfo = [UIPrintInfo printInfo];

Pinfo.outputType = UIPrintInfoOutputGeneral;//可打印文本、图形、图像

Pinfo.jobName = @"Print for xiaodui";//可选属性,用于在打印中心中标识打印作业

Pinfo.duplex = UIPrintInfoDuplexLongEdge;//双面打印绕长边翻页,NONE为禁止双面

Pinfo.orientation = UIPrintInfoOrientationPortrait;//打印纵向还是横向

// Pinfo.printerID = @"";//指定默认打印机,也可以使用UIPrintInteractionControllerDelegate来知悉

printer.printInfo = Pinfo;

//设置页面范围

UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc] initWithText:self.textView.text];

textFormatter.startPage = 0;//指定从哪一张开始打印0代表第一张

textFormatter.contentInsets = UIEdgeInsetsMake(36, 36, 36, 36);//72相当于1英寸,这样设置上下左右的边距都为0.5英寸

textFormatter.maximumContentWidth = 504;//(72x7.5)相当于打印宽度为7英寸

printer.printFormatter = textFormatter;

printer.showsPageRange = YES;

[printer presentAnimated:YES completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) {

if (!completed && error) {

NSLog(@"Error");

}

}];

2.打印渲染的HMTL

f29ac4f1d8d0

打印HTML

注意点:其他都跟打印文本的一样,只不过HTML用到了

UIMarkupTextPrintFormatter。

NSURL *requestURL = [[self.webView request] URL];

NSError *error = nil;

NSString *contentHTML = [NSString stringWithContentsOfURL:requestURL encoding:NSASCIIStringEncoding error:&error];

UIMarkupTextPrintFormatter *textFormmatter = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:contentHTML];

3.打印PDF

PDF说白了就是image,打印PDF就是打印image。

UIGraphicsBeginImageContext(self.webView.bounds.size);

[self.webView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

printer.printingItem = image;

这句话的意思就是拿到要打印的空间的大小,然后将内容转化成image就OK了。

如果你有台iPhone手机, 或者苹果iPad平板电脑,那么你可以很方便得利用苹果iOS系统内置AirPrint功能WiFi无线打印照片,Word,PDF等各种文件到你的Air Printer打印机,但有个前提是你的打印机必须支持苹果Air Print功能,即AirPrint-Enable Printer,对于普通打印机而言,有什么办法可以轻松享受到WiFi自由打印这一功能呢? 目前惠普HP,兄弟Brother,佳能Canon等打印机厂商都陆续给打印机内置增加了AirPrint功能,对于普通打印机,包括无WiFi功能的网络打印机,普通USB打印机而言,我们通过Windows电脑网络打印机分享功能可以实现WiFi打印。 由于iOS系统的限制,iPhone, iPad无法和我们常用的Windows系统方便的进行数据交换,iOS设备甚至没有打印机接口,让很多用户认为iPhone,iPad并不能实现文件的打印。但是通过苹果iOS系统提供的AirPrint无线打印功能,可以轻松实现无线打印,更加自由,方便。 AirPrint打印不用连接USB线缆,是名符其实的"无线打印"。iPad能自动在你的WLAN网络中找到支持AirPrint打印机,并与其相连。无论你是在房间的另一端,或是建筑的另一边,都可以在需要的时候进行打印。整个过程极为简便、快速,在你读完这句话的片刻,这一页就从iPad打印出来了。 简单介绍一下通过Air Printer by Feiphone软件,如何使用普通打印机实现AirPrint功能的方法步骤,而在Mac系统中同样可以实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值