由于公司業務的需要,要用android客戶端控制pos機打印票據,不單只是中文的,而且還要包括2維碼的打印的!經過兩天的努力!終究弄定了!!!!我真是!
首先,先奉上ESC/POS指令集。
EPSON打印控制指令集
打印命令 功能
格式: ASCII: 以標準ASCII字符序列表示
10進制: 以10進制數字序列表示
106進制: 以106進制數字序列表示
說明:該命令功能和使用說明。
HT 水平制表
格式: ASCII: HT
10進制: 09
106進制: 09
說明:
打印位置進行到下1水平制表位置。
如果當前打印位置超過了最后1個水平制表位置,則HT命令不被履行。
水平制表位置由 ESC D命令設置。
LF 打印并換行
格式: ASCII: LF
10進制: 10
106進制: 0A
說明:
打印寄存在行編輯緩存中的1行數據并按當前設定的行距向前走紙1行。ESC2,ESC3指令可設定行距的長短。
如果行編輯緩存空,則只按當前設定的行距向前走紙1行。
CR 打印回車
格式: ASCII: CR
10進制: 13
106進制: 0D
說明:
當打印在行編輯緩存中的1行數據以后,不進行走紙操作。
DLE EOT n 實時狀態傳送
格式: ASCII: DLE EOT n
10進制: 16 04 n
106進制: 10 04
說明:
1 ≤ n ≤ 4
傳送以實時的方式,n代表被選擇的打印機狀態,基于以下參數:
n = 1: 打印機狀態
n = 2: 脫機狀態
n = 3: 毛病狀態
n = 4: 紙檢測器狀態
返回的字節每位設置以下:
n = 1: 打印機狀態
n = 2: 脫機狀態
n = 3: 毛病狀態
n = 4: 紙檢測器狀態
DLE ENQ n 對打印機的實時要求
格式: ASCII: DLE ENQ n
10進制: 16 05 n
106進制: 10 5
說明:
n = 0, n = 2
打印機對主機要求作出反應,n值定義以下:
n = 0: 恢復到聯機狀態
n = 2: 清除接收和打印緩沖區,并恢復毛病.
ESC SP n 設置字符右間距
格式: ASCII: ESC SP n
10進制: 27 32 n
106進制: 1B 20 n
說明:
以半點為設訂單位(1/144英寸),設置字符右側間距為n個半點距。
默許值n=0。
ESC ! n 設置字符打印方式
格式: ASCII: ESC ! n
10進制: 27 33 n
106進制: 1B 21 n
說明:
0≤n≤255
ESC ! n是綜合性的字符打印方式設置命令,用于選擇打印字符的大小和下劃線。
打印參數n的每位定義為:
位 功能 值
0 1
0 字模選擇 7×9 5×7
1 無定義
2 無定義
3 側重模式 取消 設定
4 倍 高 取消 設定
5 倍 寬 取消 設定
6 無定義
7 下劃線 取消 設定
默許值n=0,
ESC % n 允許/制止用戶自定義字符
格式: ASCII: ESC % n
10進制: 27 37 n
106進制: 1B 25 n
說明:
參數n為1個字節,只有最低位有效。
當n=<*******1>B時,選擇用戶自定義字符集;
當n=<*******0>B時,選擇內部字符集。
0≤n≤255,默許值n=0。
ESC & 設置用戶自定義字符
格式: ASCII: ESC & y n m x d1 d2……db
10進制: 27 38 y n m x d1 d2……db
106進制: 1B 26 y n m x d1 d2……db
說明:
該命令用于自定義字符。各參數為:
y:字符的縱向字節數。這里取 y=1,2。
n:自定義字符集的起始ASCII碼,n≥32。
m:自定義字符集的終止ASCII碼,m≤127。自定義字符個數為m-n+1,最多可定義96個字符。
當只有1個自定義字符時,取m=n。
a:自定義字符的水平方向的點數。
d1 d2……db:自定義字符的數據。每一個字符 y×x個字節,m-n+1個自定義字符共有:
(y×x)×(m-n+1)個字節。
每一個自定義字符數據的格式:
d1 d3 … d(y×x)×(m-n+1)⑴
d2 d4 … d(y×x)×(m-n+1)
樣例以下:
發送的命令以下:
ESC & y c1 c2 X p1 p2 p3 d4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
Code 1B 26 02 20 20 07 1F 80 20 00 44 00 80 00 44 00 20 00 1F 80
ESC * 設置圖形點陣
格式: ASCII: ESC * m n1 n2 D1,D2 … Dk
10進制: 27 42 m n1 n2 D1,D2 … Dk
106進制: 1B 2A m n1 n2 D1,D2 … Dk
說明:
該命令用來設置點陣圖形模式(m)和橫向圖形點陣。
m = 0,1: 表示打印密度。
0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。
n1,n2為兩位106進制數,n1這低字節,n2這高字節,k= n1+ n2×256,表示該命令下載的要打印圖形的橫向點數,該值應小于打印機的最大行寬打印點數。如果下送的點圖數據超越1行的最大行寬打印點數時,超越的部份被疏忽。
m 垂直方向點數 點密度 最大點數 圖形打印模式
0 8 單密度 210 相鄰點打印
1 8 雙密度 420 相鄰點不打印
Dk 定義為:
ESC - n 設置/取消下劃線模式
格式: ASCII: ESC - n
10進制: 27 45 n
106進制: 1B 2D n
說明:
n = 0, 1, 48, 49
n = 0 or 48,取消下劃線模式。
n = 1 or 49, 設置下劃線模式。
ESC 2 設定1/6英寸換行量
格式: ASCII: ESC 2
10進制: 27 50
106進制: 1B 32
說明:
此指令將打印機的換行量設定為1/6英寸。
ESC 3 n 設定 n/144英寸換行量
格式: ASCII: ESC 3 n
10進制: 27 51 n
106進制: 1B 33 n
說明:
此指令將打印機的換行量設定為 n/144英寸。
n=1 - 255。
ESC 〈 打印頭歸位
格式: ASCII: ESC 〈
10進制: 27 60
106進制: 1B 3C
說明:
履行該指令后,打針頭會回到原位(home的位置)。
ESC = n 裝備設置/取消
格式: ASCII: ESC = n
10進制: 27 61 n
106進制: 1B 3D n
說明:
1 ≤ n ≤ 3
默許 n = 1
位 功能 值
0 1
0 打印機選擇 取消 設定
1 顧顯選擇 取消 設定
2 無定義
3 無定義
4 無定義
5 無定義
6 無定義
7 無定義
ESC ? n 取消用戶自定義字符
格式: ASCII: ESC ? n
10進制: 27 63 n
106進制: 1B 3F n
說明:
32 ≤ n ≤ 126
ESC @ 初始化打印機
格式: ASCII: ESC @
10進制: 27 64
106進制: 1B 40
說明:
該命令初始化打印機:使打印機恢復到最初的聯機狀態,清除之前留下的程序。
ESC D NULL 消除所有的水平制表位置
格式: ASCII: ESC D NULL
10進制: 27 68 0
106進制: 1B 44 0
說明:
ESC D NUL命令消除所有的水平制表位置,以后再履行的HT命令將無效。
ESC E n 設置/取消側重模式
格式: ASCII: ESC E NUL
10進制: 27 69 0
106進制: 1B 45 0
說明:
0 ≤ n ≤ 255
當n的LSB位是0,取消側重模式。
當n的LSB位是1,設置側重模式。
ESC G n 設置/取消堆疊模式
格式: ASCII: ESC G NUL
10進制: 27 71 0
106進制: 1B 47 0
說明:
0 ≤ n ≤ 255
當n的LSB位是0,取消堆疊模式。
當n的LSB位是1,設置堆疊模式。
ESC J n 履行n/144英寸走紙
格式: ASCII: ESC J n
10進制: 27 74 n
106進制: 1B 4A n
說明:
進紙n/144英寸,n值應為0到255之間的任意值。
若當時有打印內容則在打印完成后履行走紙。
ESC K n 打印并反向走紙
格式: ASCII: ESC K n
10進制: 27 75 n
106進制: 1B 4B n
說明:
0 ≤ n ≤ 48
打印緩沖區里的內容,并反方向走紙n/144英寸(n X 0.176 mm)。
ESC R n 選擇國際字符集
格式: ASCII: ESC R n
10進制: 27 82 n
106進制: 1B 52 n
說明:
ESC R用于選擇11個不同國家的不同ASCII字符集。
n=0~10。默許值為0,選擇U.S.A方式。
ESC U n 設置/取消單向打印
格式: ASCII: ESC U n
10進制: 27 85 n
106進制: 1B 55 n
說明:
設置/取消單向打印。n=0~255,僅最低位有效。
當n=<×××××××1>B時,在字符方式下設置為準雙向打印,在圖形方式下設置為單向打印。
當n=<×××××××0>B時,設置雙向打印。
默許值n=0。
ESC a n 選擇對齊模式
格式: ASCII: ESC a n
10進制: 27 97 n
106進制: 1B 61 n
說明:
0 ≤n ≤2, 48 ≤n ≤50
n選擇對齊模式,默許值是0。
n 對齊模式
0,48 左對齊
1,49 中對齊
2,50 右對齊
ESC c 3 n 輸出紙盡傳感器
格式: ASCII: ESC c 3 n
10進制: 27 99 51 n
106進制: 1B 63 33 n
說明:
0 ≤ n ≤ 255
n的定義見下表:
位 功能 值
0 1
0 末端傳感器 取消 設定
1 末端傳感器 取消 設定
2 紙盡檢測器 取消 設定
3 紙盡檢測器 取消 設定
4 無定義
5 無定義
6 無定義
7 無定義
ESC c 4 n 設定缺紙時停止打印
格式: ASCII: ESC c 4 n
10進制: 27 99 52 n
106進制: 1B 63 34 n
說明:
設置/取消紙檢測器檢測到缺紙時停止打印。
N=0~255,僅最低位有效。
當n=<*******1>B時,紙檢測器檢測到缺紙時停止打印。
當n=<*******0>B時,紙檢測器檢測到缺紙時不停止打印,以便用戶可以將最后1張單據打印至頁底。
默許值n=1。
ESC c 5 n 允許/制止走紙按鍵
格式: ASCII: ESC c 3 n
10進制: 27 99 33 n
106進制: 1B 63 35 n
說明:
當n=<*******1>B時,制止紙按鍵。
當n=<*******0>B時,允許紙按鍵(默許值)。
ESC d n 打印并進紙n字符行
格式: ASCII: ESC d n
10進制: 27 100 n
106進制: 1B 64 n
說明:
打印行緩存里的數據并向前走紙n行。
n=0~255。
ESC e n 打印并反向進紙n字符行
格式: ASCII: ESC e n
10進制: 27 101 n
106進制: 1B 65 n
說明:
打印行緩存里的數據并向前走紙n行。
0 ≤ n ≤ 2。
ESC p 產生錢箱驅動脈沖
格式: ASCII: ESC p m n1 n2
10進制: 27 112 m n1 n2
106進制: 1B 70 m n1 n2
說明:
產生錢箱驅動脈沖。
m=0,1,48,49 0≤n1≤n2≤255
驅動脈沖情勢為:
解釋:
打開錢箱脈沖時間為n1×2毫秒。
關閉錢箱脈沖時間為n2×2毫秒。
ESC r n 選擇打印色彩
格式: ASCII: ESC r n
10進制: 27 114 n
106進制: 1B 72 n
說明:
n = 0,48,黑色打印
n = 1,49,紅色打印
默許n = 0。
ESC t n 選擇字符集
格式: ASCII: ESC t n
10進制: 27 116 n
106進制: 1B 74 n
說明:
選擇中文方式下的ASCII字符集。
0: 選擇7×9字符集(默許值)。
1: 選擇7×7字符集。
ESC { n 設置/取消倒向打印模式
格式: ASCII: ESC { n
10進制: 27 123 n
106進制: 1B 7B n
說明:
0 ≤ n ≤ 255
當n的LSB位是0,取消倒向打印模式。
當n的LSB位是1,設置倒向打印模式。
默許n = 0。
FS ! 漢字綜合選擇
格式: ASCII: FS ! n
10進制: 28 33 n
106進制: 1C 21 n
說明:
n的各位的定義以下:
位 0 1
0 無定義
1 無定義
2 寬正常 漢字倍高
3 高度正常 漢字倍高
4 無定義
5 無定義
6 無定義
7 無下劃線 漢字下劃線
FS & 進入漢字打印方式
格式: ASCII: FS &
10進制: 28 38
106進制: 1C 26
說明:
打印機接收到該命令后,結束本行打印,從下1行開始轉為漢字打印方式。
在漢字打印方式時,打印機接收的代碼為2字節的標準機內碼(均為大于9FH的碼),根據該代碼尋覓打印機的硬漢字字模,打印國標15×16點陣的漢字。
打印機接收到單字節的ASCII碼(20H-9FH)時,將打印出相應的5 ×7或7×7點陣字符。
FS ~ S 選擇漢字打印速度
格式: ASCII: FS ~ S n
10進制: 28 126 83 n
106進制: 1C 7E 53 n
說明:
此功能設置漢字打印模式時的打印速度,當n=1時為漢字高速打印,橫向分辨率為144 DPI,縱向分辨率為72 DPI;
當n=0時為正常打印模式,橫向分辨率為144 DPI,縱向分辨率為144 DPI
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
下一篇 設計模式之橋接模式