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

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

代码如下:

.h 里面

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

.m里面

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

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

iOS设备控制打印机输出文本的更多相关文章

  1. 在MVC视图的代码块中,直接输出文本,有几种方式?

    @{ <div>我爱IT,我是程序员,我骄傲---</div> <!--在C#代码块中,输出文本--> <!--1.0 使用Razor内置标签text--&g ...

  2. 调试location指令时,直接让location输出文本

    有时候我们调试location指令时希望location指令能够直接输出文本,这样能够方便我们进行调试.这时我们可以使用echo模块实现,但是大多数情况我们没有安装这个模块,那么我们还可以使用另一个方 ...

  3. IOS开发UI基础文本属性Attributes

    文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSFontAttributeName : [UIFont systemFo ...

  4. ios 调用打印机

    源码 无意中玩一个demo发现调用了打印机  才发现ios有快速调用打印机的功能. if ([UIPrintInteractionController isPrintingAvailable] == ...

  5. 转:MVC2表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做;MVC2输出文本;MVC2输出PDF文件

    ViewData.ModelState.AddModelError("FormValidator", message); foreach (string field in Requ ...

  6. iOS 自定义日志输出

    在做iOS开发过程中,我们经常需要输出日志来查看某些数据是否打印出来,或者查看查个类是否被调用了. 系统默认的是NSLog(@"xxxx %d",1) ,但如果该APP要发布到商店 ...

  7. 如何使用 awk 输出文本中的字段和列

    首先我们要知道,awk 能够自动将输入的行,分隔为若干字段.每一个字段就是一组字符,它们和其他的字段由一个内部字段分隔符分隔开来. 如果你熟悉 Unix/Linux 或者懂得 bash shell 编 ...

  8. 使用awk格式化输出文本

    注意:本文并不是一篇awk入门文章,而是偏重实例讲解 awk借鉴了c语法,因此awk在许多地方还保留有c语言的痕迹,比如printf语句:for,if的语法结构等 介绍 最简单地说,AWK 是一种用于 ...

  9. iOS学习——NSLog输出各种类型

    在开发过程中,在调试过程中经常打印不出自己想要的数据格式,还时常报警告,所以整理了一下iOS中用NSLog打印各种数据类型的样式.整型占位符说明 : %d : 十进制整数, 正数无符号, 负数有 “- ...

随机推荐

  1. javascript 函数重载另一种实现办法

    最近在读javascript忍者 感受下jquery作者 john Resig对于js的独到见解. 先上代码: function addMethod(object,name,fn){ var old ...

  2. touch下拉刷新

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 在 POSIX 线程编程中避免内存泄漏

    检测和避免 POSIX 线程内存泄漏的技巧 POSIX 线程(pthread)编程定义了一套标准的 C 编程语言类型.函数和常量 — 且 pthreads 提供了一种强大的线程管理工具.要充分使用 p ...

  4. Scrapy学习-14-验证码识别

    3种实现方案   1. 编码实现 tesseract-ocr 谷歌开源的识别工具,自己实现代码编码,投入精力大,回馈低.且平台验证码更换周期短,编好的代码容易失效 2. 在线打码 在线平台提供,识别率 ...

  5. hdu3947 给一些已知(需费用)路径去覆盖一些边 //预先加灌法费用流

    River Problem 题意:一个有向树(河流),只有一个汇点1,每条边只有一个出度.有些河道有污染指数xi,必需要治理,有m段路径,可以去覆盖这些,每被覆盖一次,xi降低响应值. :即 给出一些 ...

  6. 微信小程序踩坑之一[thist]使用技巧

    刚上手小程序 时,习惯把this当成jquery中的$(this)来用,实际上这两个还是有差别的 在页面方法中调用其他方法,一般是用this.function(),直接调用小程序 的方法或函数则是用w ...

  7. POJ 3660 Cow Contest 传递闭包+Floyd

    原题链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  8. Noip2016题解&总结

    原文放在我的uoj博客上,既然新开了blog,那就移过来了 玩具谜题(toy) 送分题.没有什么好说的. 直接按照题目的要求模拟即可. 标准的noip式day1T1. #include<cstd ...

  9. 【java】深入分析Java ClassLoader原理

    一.什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程 ...

  10. mac 下 virtualbox 配置全网通

    mac下virtualbox实现主机和虚拟机.虚拟机和外网互访的方案 全局添加Host-Only网络 Adapter IPv4 Address:192.168.56.1 IPv4 Network Ma ...