您的位置:首页 > 移动开发 > IOS开发

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

2014-11-08 12:14 295 查看

本文转载至 http://tec.5lulu.com/detail/108krn1e6e66m8sbd.html

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

.h 里面

#import

#import "AsyncSocket.h"

@interface ViewController : UIViewController

{

AsyncSocket *asyncSocket;

}

@end

.m里面

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// NSError *err = nil;

// if(![asyncSocket connectToHost:@"192.168.1.105" onPort:18011 error:&err])

// {

// asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];

//

// [asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];

//

// if (![self SocketOpen:@"192.168.1.105" port:18011])

// {

// NSMutableString *sendString=[NSMutableString stringWithCapacity:1000];

// [sendString appendString:@"非警务健身房"];

// NSData *cmdData = [sendString dataUsingEncoding:NSUTF8StringEncoding];

//

// [asyncSocket writeData:cmdData withTimeout:-1 tag:0];

// }

// NSLog(@"Error: %@", err);

// }

}

-(IBAction)haha:(id)sender{

asyncSocket=nil;

NSError *err = nil;

if(![asyncSocket connectToHost:@"192.168.1.105" onPort:18011 error:&err])

{

asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];

[asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];

if (![self SocketOpen:@"192.168.1.105" port:18011])

{

NSMutableString *sendString=[NSMutableString stringWithCapacity:100000];

[sendString appendString:@"Socket测试成功!!!!"];

NSData *cmdData = [sendString dataUsingEncoding:NSUTF8StringEncoding];

[asyncSocket writeData:cmdData withTimeout:-1 tag:0];

}

NSLog(@"Error: %@", err);

}

}

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port

{

NSLog(@"onSocket:%p didConnectToHost:%@ port:%hu", sock, host, port);

[sock readDataWithTimeout:1 tag:0];

}

-(void) onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

{

}

- (void)onSocket:(AsyncSocket *)sock didSecure:(BOOL)flag

{

NSLog(@"onSocket:%p didSecure:YES", sock);

}

- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err

{

NSLog(@"onSocket:%p willDisconnectWithError:%@", sock, err);

}

- (void)onSocketDidDisconnect:(AsyncSocket *)sock

{

//断开连接了

NSLog(@"onSocketDidDisconnect:%p", sock);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

- (void)viewDidUnload {

asyncSocket=nil;

}

//打开

- (NSInteger)SocketOpen:(NSString*)addr port:(NSInteger)port

{

if (![asyncSocket isConnected])

{

[asyncSocket connectToHost:addr onPort:port withTimeout:-1 error:nil];

NSLog(@"connect to Host:%@ Port:%d",addr,port);

}

return 0;

}

其他的方法,还有利用UIPrintInteractionController,不过这需要打印机设置中有AirPrinter。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: