cashumit/plugins/ios/Classes/EscCommand.h

455 lines
13 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//
// EscCommand.h
// Gprinter
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface EscCommand : NSObject
/**
* 方法说明打印UPCA条码
* @param content 数据范围0-9长度为11位
*/
-(void) addUPCAtest:(NSString*) content;
/**
* 方法说明:插入文字
* @param text 文本
*/
-(void) addText:(NSString*) text;
/**
* 方法说明:获得打印命令
* @return NSData*
*/
-(NSData*) getCommand;
/**
* 方法说明:将字符串转成十六进制码
* @param str 命令字符串
*/
-(void) addStrToCommand:(NSString *) str;
/**
* 方法说明打印机初始化必须是第一个打印命令0x1b,0x40
*/
-(void) addInitializePrinter;
/**
* 方法说明打印并且走纸多少行默认为8行打印完内容后发送
* @param n 行数
*/
-(void) addPrintAndFeedLines:(int) n;
/**
* 方法说明:换行
*/
-(void)addPrintAndLineFeed;
/**
* 方法说明设置打印模式0x1B 0x21 n(0-255)根据n的值设置字符打印模式
*@param n 二进制默认为00000000(0X0),10001000(0X88)表示下划线和加粗00001000(0X08)表示加粗10000000(0X80)表示下划线
*
* Set the print mode, where n can be either:
* 0 (00000000) means default
* 8 (00001000) means bold
* 128 (10000000) means underline
* 136 (10001000) means underline and bold
*/
-(void) addPrintMode:(int) n;
/**
* 方法说明设置国际字符集默认为美国0
* @param n 字符集编号
*/
-(void) addSetInternationalCharacterSet:(int) n;
/**
* 方法说明设置字符是否旋转90°默认为0
* @param n 是否旋转
*/
-(void) addSet90ClockWiseRotatin:(int) n;
/**
* 方法说明:设置对齐方式
* @param n 左 中 右对齐0左对齐,1中间对齐,2右对齐
*/
-(void) addSetJustification:(int) n;
/**
* 方法说明:开钱箱
* @param m 钱箱引脚号
* @param t1 高电平时间
* @param t2 低电平时间
*/
-(void) addOpenCashDawer:(int) m :(int) t1 :(int) t2;
/**
* 方法说明:蜂鸣器
* @param m 报警灯和鸣叫次数
* @param t 时间
* @param n 方式
*/
-(void) addSound:(int) m :(int) t :(int) n;
/**
* 方法说明设置行间距不用设置打印机默认为30
* @param n 行间距高度,包含文字
*/
-(void) addLineSpacing:(int) n;
/**
* 方法说明:设置倒置模式 选择/取消倒置打印模式。
* @param n 是否倒置默认为0 0 ≤n ≤255 当n的最低位为0时取消倒置打印模式。当n的最低位为1时选择倒置打印模式。只有n的最低位有效
*/
-(void) addSetUpsideDownMode:(int) n;
/**
* 方法说明设置字符放大限制为不放大和放大2倍n=0x11
* @param n = width | height 宽度放大倍数0 ≤n ≤255 1 ≤ 纵向放大倍数 ≤81 ≤ 横向放达倍数 ≤8[描述] 用0 到2 位选择字符高度4 到7 位选择字符宽度
*
* Set character size, where n can be either:
* 0 (0000) means default
* 2 (0010) means double height
* 16 (1000) means double width
* 18 (1010) means double height and width
*/
-(void) addSetCharcterSize:(int) n;
/**
* 方法说明:设置反白模式,黑白反显打印模式
* @param n 是否反白当n的最低位为0时取消反显打印模式。当n的最低位为1时选择反显打印模式。只有n的最低位有效
*/
-(void) addSetReverseMode:(int) n;
/**
* 方法说明:打印机实时状态请求
* @param n PRINTER_STATUS 打印机状态 1 ≤n ≤4
* PRINTER_OFFLINE 脱机状态
* PRINTER_ERROR 错误状态
* PRINTER_PAPER 纸张状态
*/
-(void) queryRealtimeStatus:(int) n;
/**
* 方法说明:设置切纸后走纸
* @param n 走纸距离
*/
-(void) addCutPaperAndFeed:(int) n;
/**
* 方法说明:切纸 0全切纸1是半切
*/
-(void) addCutPaper:(int) m;
/**
* 方法说明设置条码可识别字符选择HRI字符的打印位置
* @param n 可识别字符位置0, 48 不打印 1, 49 条码上方 2, 50 条码下方 3, 51 条码上、下方都打印
*/
-(void) addSetBarcodeHRPosition:(int) n;
/**
* 方法说明设置条码字符种类选择HRI使用字体
*/
-(void) addSetBarcodeHRIFont;
/**
* 方法说明:设置条码高度
* @param n 高度 条码高度为n点默认为40
*/
-(void) addSetBarcodeHeight:(int) n;
/**
* 方法说明:设置条码单元宽度,不用设置,使用打印机内部默认值
* @param n 条码宽度 2 ≤n ≤6
*/
-(void) addSetBarcodeWidth:(int) n;
/**
* 方法说明打印EAN13码
* @param content 数据范围0-9长度为12位
*/
-(void) addEAN13:(NSString*) content;
/**
* 方法说明打印EAN8码
* @param content 数据范围0-9长度为7位
*/
-(void) addEAN8:(NSString*) content;
/**
* 方法说明打印UPCA条码
* @param content 数据范围0-9长度为11位
*/
-(void) addUPCA:(NSString*) content;
/**
* 方法说明:打印ITF14条码
* @param content 数据范围 0-9 数据长度 偶数个
*/
-(void) addITF:(NSString*) content;
/**
* 方法说明:打印CODE39条码
* @param content 数据范围0-9 A-Z SP $ % + - . / *为 (开始/结束字符)
*/
-(void) addCODE39:(NSString*) content;
/**
* 方法说明打印CODE128码
* 采用的是1D 6B 49 n的命令格式n为后面所有打印字符串的长度包括了字符集的声明。默认使用CODEB字符集: {B , 0x7B, 0x42
* @param charset ,CODEB字符集有 {A {B {Ccharset默认值用B 实际上字符集可以插入到content中一个content可以有多个字符集定义。
* @param content 数据范围0x00-0x7f
*/
-(void) addCODE128:(char) charset :(NSString*) content;
/**
* 方法说明打印CODE128码支持混合{A {B {C打印支持58mm纸打印超过14位的奇数数字例如15位 17位 19位的数字串
* 采用的是1D 6B 49 n的命令格式n为后面所有打印字符串的长度包括了字符集的声明。默认使用CODEB字符集: {B , 0x7B, 0x42
* CODEB字符集有 {A {B {C默认值用B 实际上字符集可以插入到data中一个data可以有多个字符集定义。
* @param height 条码高度
* @param width 条码宽度
* @param data 数据范围0x00-0x7f全部为16进制
*/
-(void) addCODE128ABC:(int) height :(int) width :(NSData*) data;
/**
* 方法说明addNVLOGO
* @param n 序号1<=n<=20 m默认为0
*/
-(void) addNVLOGO:(int) n :(int) m;
/*
十六进制码 1D 76 30 m xL xH yL yH d1...dk
0 ≤ m ≤ 3, 48 ≤ m ≤ 51
0 ≤ xL ≤ 255
0 ≤ xH ≤ 255
0 ≤ yL ≤ 255
0 ≤ yH ≤ 255
0 ≤ d ≤ 255
k = ( xL + xH × 256) × ( yL + yH × 256) ( k ≠ 0)
参 数 说 明
m 模式
0, 48 正常
1, 49 倍宽
2, 50 倍高
3, 51 倍宽、倍高
xL、 xH表示水平方向位图字节数 xL+ xH × 256
yL、 yH表示垂直方向位图点数 yL+ yH × 256
data 影像数据
*/
-(void) addESCBitmapwithM:(int) m withxL:(int) xL withxH:(int) xH withyL:(int) yL
withyH:(int) yH withData:(NSData*) data;
/**
* 方法说明:打印光栅位图
* @param image 图片
* @param width 图片宽度
*/
-(void)addOriginrastBitImage:(UIImage *)image width:(int)width;
/**
* 方法说明:打印光栅位图
* @param image 图片
*/
-(void)addOriginrastBitImage:(UIImage *)image;
/*
正确的ESC指令下QRCode打印流程为四步
1、设定QRCode大小可以省略
2、设定纠错等级一般无需设定忽略
3、将QRCode对应的文字信息存入打印机缓存中必须要有
4、发送打印QRCode命令。
一共有四个命令对应上述四步。
*/
/*
1、设定QRCode大小可以省略
[格式] ASCII码 GS ( K pL pH cn fn n
十六进制码 1D 28 6B 03 00 31 43 n
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=67
1 ≤n≤16
[默认值] n=3
*/
-(void) addQRCodeSizewithpL:(int) pL withpH:(int) pH withcn:(int) cn
withyfn:(int) fn withn:(int) n;
/*
2、设定纠错等级一般无需设定忽略
[格式] ASCII码 GS ( K pL pH cn fn m d1...dk
十六进制码 1D 28 6B 03 00 31 45 n
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=69
48≤n≤51
[默认值] n=48
*/
-(void) addQRCodeLevelwithpL:(int) pL withpH:(int) pH withcn:(int) cn
withyfn:(int) fn withn:(int) n;
/*
3、将QRCode对应的文字信息存入打印机缓存中必须要有
[格式] ASCII码 GS ( K pL pH cn fn m d1...dk
十六进制码 1D 28 6B pL pH 31 50 30 d1...dk
[范围] 4≤(pL+pH×256)≤7092 (0≤pL≤255,0≤pH≤27)
cn=49
fn=80
m=48
k=(pL+pH×256)-3
[描述] 存储QR CODE数据d1...dk)到符号存储区
[注释] • 将QRCode的数据存储到打印机中
• 执行esc @或打印机掉电后,恢复默认值
*/
-(void) addQRCodeSavewithpL:(int) pL withpH:(int) pH withcn:(int) cn
withyfn:(int) fn withm:(int) m withData:(NSData*) data;
/*
4、发送打印QRCode命令。
[格式] ASCII码 GS ( K pL pH cn fn m
十六进制码 1D 28 6B 03 00 31 51 m
[范围] (pL+pH×256)=3 (pL=3,pH=0)
cn=49
fn=81
m=48
[描述] 打印QRCode条码在发送此命令之前需通过 K< Function 180命令将QRCode数据存储在打印机中。
*/
-(void) addQRCodePrintwithpL:(int) pL withpH:(int) pH withcn:(int) cn
withyfn:(int) fn withm:(int) m;
/**
* 方法说明:设置是否汉字字体
* @param n 是否倍宽 是否倍高 是否下划线
*/
-(void) addSetKanjiFontMode:(int) n;
/**
* 方法说明:设置汉字有效
*/
-(void) addSelectKanjiMode;
/**
* 方法说明:设置汉字下划线
* @param n 根据 n 的值,选择或取消汉字的下划线:
* n 功能
* 0, 48 取消汉字下划线
* 1, 49 选择汉字下划线1 点宽)
* 2, 50 选择汉字下划线2点宽
*/
-(void)addSetKanjiUnderLine:(int) n;
/**
* 方法说明:设置汉字无效
*/
-(void) addCancelKanjiMode;
/**
* 方法说明:设置字符右间距
* @param n 间距长度
* 0 ≤ n≤255
* [描述] 设置字符的右间距为[n×横向移动单位或纵向移动单位]英寸。
* [注释] • 当字符放大时,右间距随之放大相同的倍数。
* • 此命令设置的值在页模式和标准模式下是相互独立的。
* • 横向或纵向移动单位由GS P指定。改变横向或纵向移动单位不改变当前右间距。
* • GS P 命令可改变水平(和垂直)运动单位。但是该值不得小于最小水平移动量,
* 并且必须为最小水平移动量的偶数单位。
* • 标准模式下,使用横向移动单位。
* • 最大右间距是31 .91 毫米255/203 英寸) 。 任何超过这个值的设置都自动转换为最
* 大右间距。
* [默认值] n = 0
*/
-(void) addSetCharacterRightSpace:(int) n;
/**
* 方法说明:设置汉字左右间距
* @param n1 左间距 0 ≤ n1 ≤ 255
* @param n2 右间距 0 ≤ n2 ≤ 255
*/
-(void) addSetKanjiLefttandRightSpace:(int) n1 :(int) n2;
/**
* 方法说明:设置加粗模式
* @param n 是否加粗
* 0 ≤ n ≤ 255
* [描述] 选择或取消加粗模式
* 当n的最低位为0时取消加粗模式。
* 当n的最低位为1 时,选择加粗模式。
* [注释] • n只有最低位有效。
* • ESC ! 同样可以选择/取消加粗模式,最后接收的命令有效。
* [默认值] n = 0
*/
-(void) addTurnEmphasizedModeOnOrOff:(int) n;
/**
* 方法说明:设置加重模式
* @param n 是否加重
* 0 ≤ n ≤ 255
* [描述] 选择/取消双重打印模式。
* • 当n的最低位为0时取消双重打印模式。
* • 当n的最低位为1 时,选择双重打印模式。
* [注释] • n只有最低位有效。
* • 该命令与加粗打印效果相同。
* [默认值] n = 0
*/
-(void) addTurnDoubleStrikeOnOrOff:(int) n;
/**
* 方法说明发送16进制数据例如data=0x0A或data=0x0D
*/
-(void) addNSDataToCommand:(NSData*) data;
/**
* 方法说明:设置水平和垂直单位距离
* @param x 水平单位
* @param y 垂直单位
*/
-(void)addSetHorAndVerMotionUnitsX:(int)x Y:(int)y;
/**
* 方法说明:设置绝对打印位置
* @param n 与起始打印位置距离
*/
-(void)addSetAbsolutePrintPosition:(int)n;
/**
* 方法说明:设置打印宽度
*
* @param width
* 打印宽度
*/
-(void)addSetPrintingAreaWidth:(int)width;
/**
* 方法说明: 票据默认倍高(重启不失效)
* @param n1 宽 默认为0翻倍为1
* @param n2 高 默认为0翻倍为1
* @param n3 汉字宽 默认为0翻倍为1
* @param n4 汉字高 默认为0翻倍为1
*/
-(void)receiptDoubleHeightOrDefaultPrintN1:(int)n1 N2:(int)n2 N3:(int)n3 N4:(int)n4;
/**
* 方法说明: 设置默认代码页
* @param n 代码页 n的参数范围为0-1016-3250-89
*/
-(void)setDefaultCodePage:(int)n;
/**
* 方法说明: 波特率
* @param baudRate 波特率
*/
-(void)setBaudRate:(int)baudRate;
/**
* 方法说明: 查询打印机电量。
* <p>返回值: 31低电量32 (中电量)33 (高电量)35 (正在充电)</p>
*
*/
-(void)queryElectricity;
@end