ios-iOS如何连接打印机,打印一段字符串

问题描述

iOS如何连接打印机,打印一段字符串

我想要再ipad程序里面,用代码给打印机发送一段字符串,然后打印。
各位,我的问题没有说清楚,不好意思。
情况是这样的,我现在想要连接到打印机,wifi的,然后给打印机发送一个字符串去打印。连接打印机不知道怎么连接,然后发送消息这个也不知道咋整。各位帮帮忙。
打印机和ipad在同一个局域网下,想用socket通过打印机的ip地址进行传送要打印的内容。

解决方案

.h 里面

#import <UIKit/UIKit.h>
#import "AsyncSocket.h"

@interface ViewController : UIViewController<AsyncSocketDelegate>
{
    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;
}

解决方案二:

如果是用打印机打印text文件的话,可以用这个

- (IBAction)printContent:(id)sender {
    UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
    pic.delegate = self;

    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName = self.documentName;
    pic.printInfo = printInfo;

    UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc]
                                             initWithText:yourNSStringWithContextOfTextFileHere];
    textFormatter.startPage = 0;
    textFormatter.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
    textFormatter.maximumContentWidth = 6 * 72.0;
    pic.printFormatter = textFormatter;
    [textFormatter release];
    pic.showsPageRange = YES;

    void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
    ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
        if (!completed && error) {
            NSLog(@"Printing could not complete because of error: %@", error);
        }
    };
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        [pic presentFromBarButtonItem:sender animated:YES completionHandler:completionHandler];
    } else {
        [pic presentAnimated:YES completionHandler:completionHandler];
    }
}

解决方案三:

不知道是不是连接的问题,你是用wifi连接还是bluetooth连接的?在IOS5中不支持蓝牙连接打印。

http://support.apple.com/kb/ht3647

看一下这个网站,有列表说明。

解决方案四:

如果要打印字符串的话是NSString,不过你需要先将字符串打印到屏幕,然后用AirPrint可以打印到打印机。

这是一个单独的进程。

解决方案五:

如果你的打印机设置中有AirPrinter,那用UIPrintInteractionController就很简单了

解决方案六:

我发现一个比较方便的
https://github.com/newOcean/printer
完整可运行的ios蓝牙打印demo

时间: 2024-10-02 22:09:46

ios-iOS如何连接打印机,打印一段字符串的相关文章

QT连接打印机打印是如何设置打印机打印出固定格式的内容

问题描述 QT连接打印机打印是如何设置打印机打印出固定格式的内容 如题,怎么来设置打印机的输出格式,使其固定化,还有如何打印出条形码, 解决方案 QT用zint打印条码 http://download.csdn.net/detail/morg2/7007471

android 连接打印机打印?

问题描述 android 连接打印机打印? 平板连接打印机打印,这个有谁知道呢,急急急急急求啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 解决方案 public void dayin() { Socket s = null; Thread thread = null; Boolean isContect = false; InetSocketAddress isa = null; try { s = new Socket(); isa = new InetSocketAddress("192.

java如何连接打印机打印

问题描述 点击打印"按钮",触发按钮,连接打印机,打印文本框中的内容,如何实现?求解,谢谢.

ios 打印 蓝牙4 0-iPhone4S之后如何利用蓝牙4.0让打印机打印所需要的数据???

问题描述 iPhone4S之后如何利用蓝牙4.0让打印机打印所需要的数据??? 现在知道用CoreBlueTooth的框架,但不知如何入手...

socket-ios连接局域网下的POS小票打印机打印

问题描述 ios连接局域网下的POS小票打印机打印 只知道通过socket来连接,但怎样自定义打印的格式呢,求助各路大神 解决方案 http://www.jianshu.com/p/52bdd2e41b11 这篇文章希望能帮助到你,排版问题的话文中也有提到.希望采纳. 解决方案二: 你这个需要嵌入式的配合开发,你们定义好协议就可以了,iOS自己的话,可能开发不了 解决方案三: http://my.oschina.net/joanfen/blog/287238

win7连接打印机显示本地打印后台处理程序服务没有运行

  连接打印机的电脑是xp系统,打印机型号:hp laser jet 1010,开启网络共享,在局域网里用win7系统添加打印机的时候出现了如下对话框: 找了很多资料讲的不是很全面.因此把解决的过程写下来和大家分享一下,希望和我一样第一次连接打印机的你们能少点纠结,呵呵 解决方法: 1.打开 c:windowssystem32spoolPRINTERS文件夹,点击右键-属性,取消只读属性.并删除PRINTERS文件夹中的所有文件(一般没有). 2. 修改注册表 运行-regedit打开注册表 删

电脑连接打印机提示打印处理器不存在怎么办

  最近有用户反映,在使用电脑连接打印机的时候弹出了"打印处理器不存在,windows无法连接到打印机"的错误提示,遇到这样的问题总是让人十分困扰,那么该怎么办呢? 一般出现这样的问题,可能是Winprint.dll文件出现了错误,首先我们要检查一下Winprint.dll这个文件是否还存在. 64位系统的路径:C:/Windows/system32/spool/prtprocs/X64 32位系统的路径:C:/Windows/system32/spool/prtprocs/win32

ios 连接配对设备-iOS app如何连接 已经与手机配对好的蓝牙设备

问题描述 iOS app如何连接 已经与手机配对好的蓝牙设备 NSUUID *uuid = [[NSUUID alloc]initWithUUIDString:@"F0010001-0451-4000-B000-000000000000"]; NSArray *bleArray = [NSArray arrayWithObjects:uuid, nil]; NSArray *retrivedArray = [centralManager retrieveConnectedPeriphe

ios再现漏洞 连接到已知WiFi热点也会中招

据悉,该漏洞和此前"1970"的bug有关系,但不完全一样. 威锋网讯,你还记得将iOS设备系统时间调至1970.1.1会让设备变砖的 bug 么?尽管苹果在iOS 9.3中已经将这个bug修复,但据安全研究员指出,他们发现了一个 1970的"变种"bug,只要 iOS设备连接上了一个 WiFi 热点,设备就可能会变砖. ios再现漏洞 连接到已知WiFi热点也会中招 据 KrebsonSecurity 指出,该系统漏洞同时利用了在 iOS 中发现的两个弱点.第一个