iOS 如何连接打印机

问题描述:我想要再ipad程序里面,用代码给打印机发送一段字符串,然后打印。

具体情况是这样的,现在想要用wifi连接到打印机,然后给打印机发送一个字符串去打印。但是问题是不知道如何连接打印机,也不知道如何给打印机发送消息。其中打印机和ipad在同一个局域网下,想用socket通过打印机的ip地址进行传送要打印的内容。

更多解决方法见:http://ask.csdn.net/questions/910

.h 里面

[plain]  view plain copy
  1. #import <UIKit/UIKit.h>  
  2. #import "AsyncSocket.h"  
  3.   
  4. @interface ViewController : UIViewController<AsyncSocketDelegate>  
  5. {  
  6.     AsyncSocket *asyncSocket;  
  7. }  
  8.   
  9. @end  


.m里面

[plain]  view plain copy
  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.   
  30. -(IBAction)haha:(id)sender{  
  31.     asyncSocket=nil;  
  32.     NSError *err = nil;  
  33.     if(![asyncSocket connectToHost:@"192.168.1.105" onPort:18011 error:&err])  
  34.     {  
  35.         asyncSocket = [[AsyncSocket alloc] initWithDelegate:self];  
  36.   
  37.         [asyncSocket setRunLoopModes:[NSArray arrayWithObject:NSRunLoopCommonModes]];  
  38.   
  39.         if (![self SocketOpen:@"192.168.1.105" port:18011])  
  40.         {  
  41.             NSMutableString *sendString=[NSMutableString stringWithCapacity:100000];  
  42.             [sendString appendString:@"Socket测试成功!!!!"];  
  43.             NSData *cmdData = [sendString dataUsingEncoding:NSUTF8StringEncoding];  
  44.   
  45.             [asyncSocket writeData:cmdData withTimeout:-1 tag:0];  
  46.         }  
  47.         NSLog(@"Error: %@", err);  
  48.     }  
  49. }  
  50. - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port  
  51. {  
  52.     NSLog(@"onSocket:%p didConnectToHost:%@ port:%hu", sock, host, port);  
  53.     [sock readDataWithTimeout:1 tag:0];  
  54. }  
  55. -(void) onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag  
  56. {  
  57.   
  58. }  
  59. - (void)onSocket:(AsyncSocket *)sock didSecure:(BOOL)flag  
  60. {  
  61.     NSLog(@"onSocket:%p didSecure:YES", sock);  
  62. }  
  63. - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err  
  64. {  
  65.     NSLog(@"onSocket:%p willDisconnectWithError:%@", sock, err);  
  66. }  
  67. - (void)onSocketDidDisconnect:(AsyncSocket *)sock  
  68. {  
  69.     //断开连接了  
  70.     NSLog(@"onSocketDidDisconnect:%p", sock);  
  71. }  
  72. - (void)didReceiveMemoryWarning {  
  73.     [super didReceiveMemoryWarning];  
  74. }  
  75. - (void)viewDidUnload {  
  76.     asyncSocket=nil;  
  77. }  
  78. //打开  
  79. - (NSInteger)SocketOpen:(NSString*)addr port:(NSInteger)port  
  80. {  
  81.     if (![asyncSocket isConnected])  
  82.     {  
  83.         [asyncSocket connectToHost:addr onPort:port withTimeout:-1 error:nil];  
  84.   
  85.         NSLog(@"connect to Host:%@ Port:%d",addr,port);  
  86.     }  
  87.     return 0;  
  88. }  


 

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于uniapp热敏打印机的问题,根据提供的引用内容,可以得出以下结论: 1. 该热敏打印机的参数包括点密度、接口类型、打印方式和打印指令集等。其中,点密度为576点/行(8dots/mm,203dpi),接口类型为蓝牙(Bluetooth2.0,4.0双模,支持Android,IOS),打印方式为图形打印(位图),打印指令集为ESC/POS。\[1\] 2. 在uniapp中,可以通过蓝牙连接实现与该热敏打印机连接连接成功后,可以获取到具体的点位信息,并处理图片信息。处理图片信息的步骤包括获取画布里的图片数据、将图片数据转换成位图数据,并通过蓝牙配置文件进行打印。\[2\] 3. 在vue页面中,可以通过canvas标签获取像素(位图)信息,并进行画图操作。通过uni.chooseImage方法选择图片后,可以使用uni.createCanvasContext方法绘制图片,并通过uni.canvasGetImageData方法获取canvas的像素信息。\[3\] 4. 最后,可以通过调用printHandler方法开始打印。该方法会先获取图片信息,然后调用热敏打印机的printImage方法进行打印。\[3\] 综上所述,通过uniapp和vue页面中的相关方法和配置,可以实现与热敏打印机连接和打印操作。 #### 引用[.reference_title] - *1* *3* [uni-app(android、ios) 使用蓝牙便携式打印机(热敏打印机)](https://blog.csdn.net/w96098/article/details/131306300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uniapp调试ESC指令热敏打印机 打印图片 以及 打印途中报10007特性不支持解决方案](https://blog.csdn.net/weixin_45615791/article/details/125332309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li_yangyang_li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值