iOS蓝牙链接打印机的使用心得

前段时间做了一个收银的项目,里面要用到链接小票打印机打印小票的功能,牵涉到ios的蓝牙链接,打印指令等方面内容,这里总结一些使用心得。

关于ios系统的蓝牙,现在的ios支持的是蓝牙4.0,一般意义的蓝牙教程也都是关于蓝牙4.0的了。常规的操作这里不进行介绍,给大家推荐一个开源的iOS蓝牙项目,BabyBluetooth ,BabyBluetooth极好的封装了CoreBluetooth,可以使你更简单的使用CoreBluetooth的API,另外BabyBluetooth采用链式编程,是代码更加简洁优雅。有兴趣的同学可以研究下。

   至于打印这块是采用的ESC/POS指令来控制打印机的行为。当然如果你就是使用的EPSON打印机,那么肯定会有相应的SDK的,就省去了使用最原始ESC/POS指令打印的繁琐。ESC/POS指令集网上有很多,自己搜索一些就好了。不过可能有的朋友看了指令集之后仍然不会使用,这里贴一下常用的控制指令:

/**
 *  重置打印机
 */
- (void)resetPrinter
{
    Byte reset[] = {0x1B,0X40};
    [self writeData:[NSData dataWithBytes:reset length:2]];
}

/**
 *  唤醒打印机
 */
- (void)wakeUpPrinter
{
    Byte wake[] = {0x00};
    
    [self writeData:[NSData dataWithBytes:wake length:1]];
}

/**
 *  打印并换行
 */
- (void)printAndGoToNextLine
{
    Byte next[] = {0x0A};
    
    [self writeData:[NSData dataWithBytes:next length:1]];
}


- (void)printAndEnter
{
    Byte enter[] = {0x0D};
    
    [self writeData:[NSData dataWithBytes:enter length:1]];
}

/**
 *  加大字体
 *
 *  @param n 位宽,位高
 */
- (void)enlargeFont:(int )n
{
    Byte font[] = {0x1D,0X21,n};
    
    [self writeData:[NSData dataWithBytes:font length:3]];
}

/**
 *  设置对齐方式
 *
 *  @param n 0左对齐,1中对齐,2右对齐
 */
- (void)setAlignment:(int)n
{
    Byte align[] = {0x1B,0x61,n};

    [self writeData:[NSData dataWithBytes:align length:3]];
}

/**
 *  打印缓冲区数据并进纸n个垂直点距,0<= n <= 255,一个垂直点距为0.125mm
 *
 *  @param n
 */
- (void)printAndGoNLine:(int)n
{
    Byte line[] = {0x1B,0X64,n};
    
    [self writeData:[NSData dataWithBytes:line length:3]];
}

/**
 *  结束打印
 */
- (void)printEnd
{
    Byte end[] = {0x1d, 0x4c, 0x1f, 0x00};
    [self writeData:[NSData dataWithBytes:end length:4]];
}

/**
 *  写入数据
 *
 *  @param param 可以是NSData,也可以是NSString
 */
- (void)writeData:(id )param
{
    NSData *data = nil;
    
    if ([param isKindOfClass:[NSString class]]) {
        NSString *str = (NSString *)param;
        data = [str dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
    }else if 
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值