整理Android 連接Star印表機的控制碼

###整理控制碼(java版)

控制碼陣列 描述
{ 0x1b, 0x40 } Initialization
{ 0x1b, 0x44, 0x10, 0x00 } <ESC> <D> n1 n2 nk <NUL>
{ 0x1b, 0x1d, 0x61, 0x31 } <ESC> <GS> a n
{ 0x1b, 0x69, 0x02, 0x00 } <ESC> <i> n1 n2
{ 0x1b, 0x45 } <ESC> <E> 加上加粗線
{ 0x1b, 0x46 } <ESC> <F> 取消加粗線
{0x1b, 0x1c, 0x70, 0x01, 0x00} Stored Logo Printing
{ 0x1b, 0x1d, 0x61, 0x01} { 0x1b, 0x62, 0x34, 0x31, 0x32, 0x50 } “content_to_1D_barcode_\u001e\r\n”.getBytes() 1D barcode example
{ 0x1b, 0x1d, 0x79, 0x53, 0x30, 0x02} { 0x1b, 0x1d, 0x79, 0x53, 0x31, 0x03 } { 0x1b, 0x1d, 0x79, 0x53, 0x32, 0x03} { 0x1b, 0x1d, 0x79, 0x44, 0x31, 0x00, (byte) (barCodeData.length % 256), (byte) (barCodeData.length / 256) } barCodeData { 0x1b, 0x1d, 0x79, 0x50, 0x0a} { 0x1b, 0x1d, 0x61, 0x30 } QRCode example
\n 換行
{ 0x1b, 0x64, 0x33 } Cut
{ 0x07 } Kick cash drawer

Unicode 參考表

image

對照上圖 是ESC鍵,對照就是0x1b 對照上圖 @ 就是0x40 對照上圖 D 就是0x44

或是如下面這個Unicode對照表,可以看到UTF-8欄。

ASCIIUTF-8UnicodeCharacterName
0x7F0x7F0x007FDELETE
0x7E0x7E0x007E~TILDE
0x7D0x7D0x007D}RIGHT CURLY BRACKET
0x7C0x7C0x007C|VERTICAL LINE
0x7B0x7B0x007B{LEFT CURLY BRACKET
0x7A0x7A0x007AzLATIN SMALL LETTER Z
0x790x790x0079yLATIN SMALL LETTER Y
0x780x780x0078xLATIN SMALL LETTER X
0x770x770x0077wLATIN SMALL LETTER W
0x760x760x0076vLATIN SMALL LETTER V
0x750x750x0075uLATIN SMALL LETTER U
0x740x740x0074tLATIN SMALL LETTER T
0x730x730x0073sLATIN SMALL LETTER S
0x720x720x0072rLATIN SMALL LETTER R
0x710x710x0071qLATIN SMALL LETTER Q
0x700x700x0070pLATIN SMALL LETTER P
0x6F0x6F0x006FoLATIN SMALL LETTER O
0x6E0x6E0x006EnLATIN SMALL LETTER N
0x6D0x6D0x006DmLATIN SMALL LETTER M
0x6C0x6C0x006ClLATIN SMALL LETTER L
0x6B0x6B0x006BkLATIN SMALL LETTER K
0x6A0x6A0x006AjLATIN SMALL LETTER J
0x690x690x0069iLATIN SMALL LETTER I
0x680x680x0068hLATIN SMALL LETTER H
0x670x670x0067gLATIN SMALL LETTER G
0x660x660x0066fLATIN SMALL LETTER F
0x650x650x0065eLATIN SMALL LETTER E
0x640x640x0064dLATIN SMALL LETTER D
0x630x630x0063cLATIN SMALL LETTER C
0x620x620x0062bLATIN SMALL LETTER B
0x610x610x0061aLATIN SMALL LETTER A
0x600x600x0060`GRAVE ACCENT
0x5F0x5F0x005F_LOW LINE
0x5E0x5E0x005E^CIRCUMFLEX ACCENT
0x5D0x5D0x005D]RIGHT SQUARE BRACKET
0x5C0x5C0x005C\REVERSE SOLIDUS
0x5B0x5B0x005B[LEFT SQUARE BRACKET
0x5A0x5A0x005AZLATIN CAPITAL LETTER Z
0x590x590x0059YLATIN CAPITAL LETTER Y
0x580x580x0058XLATIN CAPITAL LETTER X
0x570x570x0057WLATIN CAPITAL LETTER W
0x560x560x0056VLATIN CAPITAL LETTER V
0x550x550x0055ULATIN CAPITAL LETTER U
0x540x540x0054TLATIN CAPITAL LETTER T
0x530x530x0053SLATIN CAPITAL LETTER S
0x520x520x0052RLATIN CAPITAL LETTER R
0x510x510x0051QLATIN CAPITAL LETTER Q
0x500x500x0050PLATIN CAPITAL LETTER P
0x4F0x4F0x004FOLATIN CAPITAL LETTER O
0x4E0x4E0x004ENLATIN CAPITAL LETTER N
0x4D0x4D0x004DMLATIN CAPITAL LETTER M
0x4C0x4C0x004CLLATIN CAPITAL LETTER L
0x4B0x4B0x004BKLATIN CAPITAL LETTER K
0x4A0x4A0x004AJLATIN CAPITAL LETTER J
0x490x490x0049ILATIN CAPITAL LETTER I
0x480x480x0048HLATIN CAPITAL LETTER H
0x470x470x0047GLATIN CAPITAL LETTER G
0x460x460x0046FLATIN CAPITAL LETTER F
0x450x450x0045ELATIN CAPITAL LETTER E
0x440x440x0044DLATIN CAPITAL LETTER D
0x430x430x0043CLATIN CAPITAL LETTER C
0x420x420x0042BLATIN CAPITAL LETTER B
0x410x410x0041ALATIN CAPITAL LETTER A
0x400x400x0040@COMMERCIAL AT
0x3F0x3F0x003F?QUESTION MARK
0x3E0x3E0x003E>GREATER-THAN SIGN
0x3D0x3D0x003D=EQUALS SIGN
0x3C0x3C0x003C<LESS-THAN SIGN
0x3B0x3B0x003B;SEMICOLON
0x3A0x3A0x003A:COLON
0x390x390x00399DIGIT NINE
0x380x380x00388DIGIT EIGHT
0x370x370x00377DIGIT SEVEN
0x360x360x00366DIGIT SIX
0x350x350x00355DIGIT FIVE
0x340x340x00344DIGIT FOUR
0x330x330x00333DIGIT THREE
0x320x320x00322DIGIT TWO
0x310x310x00311DIGIT ONE
0x300x300x00300DIGIT ZERO
0x2F0x2F0x002F/SOLIDUS
0x2E0x2E0x002E.FULL STOP
0x2D0x2D0x002D-HYPHEN-MINUS
0x2C0x2C0x002C,COMMA
0x2B0x2B0x002B+PLUS SIGN
0x2A0x2A0x002A*ASTERISK
0x290x290x0029)RIGHT PARENTHESIS
0x280x280x0028(LEFT PARENTHESIS
0x270x270x0027'APOSTROPHE
0x260x260x0026&AMPERSAND
0x250x250x0025%PERCENT SIGN
0x240x240x0024$DOLLAR SIGN
0x230x230x0023#NUMBER SIGN
0x220x220x0022"QUOTATION MARK
0x210x210x0021!EXCLAMATION MARK
0x200x200x0020SPACE
0x1F0x1F0x001FUNIT SEPARATOR
0x1E0x1E0x001ERECORD SEPARATOR
0x1D0x1D0x001DGROUP SEPARATOR
0x1C0x1C0x001CFILE SEPARATOR
0x1B0x1B0x001BESCAPE
0x1A0x1A0x001ASUBSTITUTE
0x190x190x0019END OF MEDIUM
0x180x180x0018CANCEL
0x170x170x0017END OF TRANSMISSION BLOCK
0x160x160x0016SYNCHRONOUS IDLE
0x150x150x0015NEGATIVE ACKNOWLEDGE
0x140x140x0014DEVICE CONTROL FOUR
0x130x130x0013DEVICE CONTROL THREE
0x120x120x0012DEVICE CONTROL TWO
0x110x110x0011DEVICE CONTROL ONE
0x100x100x0010DATA LINK ESCAPE
0x0F0x0F0x000FSHIFT IN
0x0E0x0E0x000ESHIFT OUT
0x0D0x0D0x000DCARRIAGE RETURN
0x0C0x0C0x000CFORM FEED
0x0B0x0B0x000BVERTICAL TABULATION
0x0A0x0A0x000ALINE FEED
0x090x090x0009HORIZONTAL TABULATION
0x080x080x0008BACKSPACE
0x070x070x0007BELL
0x060x060x0006ACKNOWLEDGE
0x050x050x0005ENQUIRY
0x040x040x0004END OF TRANSMISSION
0x030x030x0003END OF TEXT
0x020x020x0002START OF TEXT
0x010x010x0001START OF HEADING
0x000x000x0000NULL

Star標準控制指令表(1.15版)

image image image

Star 其他控制指令表(1.15版)

image image image image image image

###初始化控制碼 若要組『ESC @』則就是上面章節中的Initial,則在塞byte[]的時候,就直接給Unicode表格中的0x1b以及0x40

###設定水平位置(教你如何看懂command manual) image 如說明說的,這是用來調整水平位置。需要傳入ESC D 位置表示 NUL的格式,傳入Hex(若是0x開頭就是Hex)。 而實際使用時程式是傳入 { 0x1b, 0x44, 0x10, 0x00 }

###設定水平對齊位置 image 如說明說的,這是調整水平對齊的排列方式。 實際使用時程式是傳入 { 0x1b, 0x1d, 0x61, 0x31 }
0x31是1,所以是水平置中。

###強調重點(加粗)

image x 在要強調加粗的文字前後加上這個指令 實際上傳入是{ 0x1b, 0x45 }、{ 0x1b, 0x46 }

###設定放大縮小尺寸 image

實際上傳入{ 0x1b, 0x69, 0x02, 0x00 }、{ 0x1b, 0x69, 0x00, 0x00 }、{ 0x1b, 0x69, 0x01, 0x01 } 所以依據放大就是放大三倍高度、預設高度寬度、放大兩倍高度和寬度

###印製LOGO image 實際上傳入的是{0x1b, 0x1c, 0x70, 0x01, 0x00} ,也就是傳入第一個logo(最小是1)

###印製QRCode image 實際上傳入
{ 0x1b, 0x1d, 0x79, 0x53, 0x30, 0x02}
{ 0x1b, 0x1d, 0x79, 0x53, 0x31, 0x03 }
{ 0x1b, 0x1d, 0x79, 0x53, 0x32, 0x03}
{ 0x1b, 0x1d, 0x79, 0x44, 0x31, 0x00, (byte) (barCodeData.length % 256), (byte) (barCodeData.length / 256) }
barCodeData
{ 0x1b, 0x1d, 0x79, 0x50, 0x0a}
{ 0x1b, 0x1d, 0x61, 0x30 }

###印製QRCode(位置部分細談) 在上面一小節中有 傳入{ 0x1b, 0x1d, 0x79, 0x44, 0x31, 0x00, (byte) (barCodeData.length % 256), (byte) (barCodeData.length / 256) }

PAGE MODE 設定印製位置

image 大睿的林工程師提供的範例

換算位置如下圖,工具如下網址 image

###Star POS Printer v.s. Mobile Print 兩者確實指令集不同。 StarLine模式下就已經兩種不同了…@@ Star POS Printer Command Star Mobile Print Command

###比對Star SM-S220和TSP650II的StarLine指令集差別

POS Printer
Mobile 指令集