iOS设备控制打印机输出文本教程

移动开发 iOS
现在用移动智能设备控制家庭电器逐渐成为一种趋势,这里介绍如何用iPad控制局域网内的打印机,输出文本,希望对你有所帮助。

在同一局域网下,用iPad写一段话,然后向打印机发送一段代码,控制打印机将这段话打印下来,这是不是很酷?

让我们来看看是如何实现的吧,首先要知道打印机的ip地址,然后用socket通过打印机的ip地址进行传送要打印的内容,并传送让打印机打印的指令即可。

代码如下:

.h 里面

  1. #import   
  2. #import "AsyncSocket.h"  
  3.   
  4. @interface ViewController : UIViewController  
  5. {  
  6.     AsyncSocket *asyncSocket;  
  7. }  
  8.   
  9. @end  


.m里面

  1. #import "ViewController.h" 
  2.  
  3. @interface ViewController () 
  4.  
  5. @end 
  6.  
  7. @implementation ViewController 
  8.  
  9. - (void)viewDidLoad { 
  10.     [super viewDidLoad]; 
  11.     //    NSError *err = nil; 
  12.     //    if(![asyncSocket connectToHost:@"192.168.1.105" onPort:18011 error:&err]) 
  13.     //    { 
  14.     //        asyncSocket = [[AsyncSocket alloc] initWithDelegate:self]; 
  15.     // 
  16.     //        [asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]]; 
  17.     // 
  18.     //        if (![self SocketOpen:@"192.168.1.105" port:18011]) 
  19.     //        { 
  20.     //            NSMutableString *sendString=[NSMutableString stringWithCapacity:1000]; 
  21.     //            [sendString appendString:@"非警务健身房"]; 
  22.     //            NSData *cmdData = [sendString dataUsingEncoding:NSUTF8StringEncoding]; 
  23.     // 
  24.     //            [asyncSocket writeData:cmdData withTimeout:-1 tag:0]; 
  25.     //        } 
  26.     //        NSLog(@"Error: %@", err); 
  27.     //    } 
  28.  
  29. -(IBAction)haha:(id)sender{ 
  30.     asyncSocket=nil; 
  31.     NSError *err = nil; 
  32.     if(![asyncSocket connectToHost:@"192.168.1.105" onPort:18011 error:&err]) 
  33.     { 
  34.         asyncSocket = [[AsyncSocket alloc] initWithDelegate:self]; 
  35.  
  36.         [asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]]; 
  37.  
  38.         if (![self SocketOpen:@"192.168.1.105" port:18011]) 
  39.         { 
  40.             NSMutableString *sendString=[NSMutableString stringWithCapacity:100000]; 
  41.             [sendString appendString:@"Socket测试成功!!!!"]; 
  42.             NSData *cmdData = [sendString dataUsingEncoding:NSUTF8StringEncoding]; 
  43.  
  44.             [asyncSocket writeData:cmdData withTimeout:-1 tag:0]; 
  45.         } 
  46.         NSLog(@"Error: %@", err); 
  47.     } 
  48. - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port 
  49.     NSLog(@"onSocket:%p didConnectToHost:%@ port:%hu", sock, host, port); 
  50.     [sock readDataWithTimeout:1 tag:0]; 
  51. -(void) onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag 
  52.  
  53. - (void)onSocket:(AsyncSocket *)sock didSecure:(BOOL)flag 
  54.     NSLog(@"onSocket:%p didSecure:YES", sock); 
  55. - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err 
  56.     NSLog(@"onSocket:%p willDisconnectWithError:%@", sock, err); 
  57. - (void)onSocketDidDisconnect:(AsyncSocket *)sock 
  58.     //断开连接了 
  59.     NSLog(@"onSocketDidDisconnect:%p", sock); 
  60. - (void)didReceiveMemoryWarning { 
  61.     [super didReceiveMemoryWarning]; 
  62. - (void)viewDidUnload { 
  63.     asyncSocket=nil; 
  64. //打开 
  65. - (NSInteger)SocketOpen:(NSString*)addr port:(NSInteger)port 
  66.     if (![asyncSocket isConnected]) 
  67.     { 
  68.         [asyncSocket connectToHost:addr onPort:port withTimeout:-1 error:nil]; 
  69.  
  70.         NSLog(@"connect to Host:%@ Port:%d",addr,port); 
  71.     } 
  72.     return 0; 

其他的方法,还有利用UIPrintInteractionController,不过这需要打印机设置中有AirPrinter。

责任编辑:徐川 来源: csdn
相关推荐

2009-04-11 01:22:19

2011-05-06 15:00:16

老式打印机无线打印机

2011-05-07 09:59:31

施乐LED打印机普通激光打印机

2011-08-30 17:37:32

打印机共享怎么设置共享打印机局域网

2021-12-03 11:56:10

打印机攻击漏洞

2011-05-04 17:23:01

打印机

2011-07-14 23:02:15

打印机评测

2012-03-07 16:19:58

喷墨打印机推荐

2011-04-26 15:31:45

联想打印机LJ2200清零

2011-06-21 10:00:39

惠普打印机行情

2011-08-24 23:43:04

打印机对比评测

2011-05-29 11:45:39

打印机技巧

2011-05-03 16:22:33

打印机

2011-03-21 10:10:38

nagios打印机

2011-04-26 13:31:05

喷墨打印机

2009-01-03 08:57:00

网络打印机共享

2011-04-21 09:11:36

惠普打印机维修代码

2011-05-06 14:35:28

打印机维修方法

2012-03-02 12:36:58

HP激光打印机

2021-12-05 12:10:05

打印机漏洞HP公司
点赞
收藏

51CTO技术栈公众号