0% found this document useful (0 votes)
3 views86 pages

HP Thermal Receipt Printer Programming Guide

The HP Thermal Receipt Printer Programming Guide provides detailed information on printer commands, including classifications such as print, position, character, and barcode commands. It outlines the command formats, usage, and examples for effective programming. Additionally, the guide includes an overview of the programming process and appendices for specific command details and code tables.

Uploaded by

chrisqwerty35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views86 pages

HP Thermal Receipt Printer Programming Guide

The HP Thermal Receipt Printer Programming Guide provides detailed information on printer commands, including classifications such as print, position, character, and barcode commands. It outlines the command formats, usage, and examples for effective programming. Additionally, the guide includes an overview of the programming process and appendices for specific command details and code tables.

Uploaded by

chrisqwerty35
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 86

HP Thermal Receipt Printer

Programming Guide
© Copyright 2019 HP Development Company, L.P.

Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other
countries.

The information contained herein is subject to change without notice. The only warranties for HP products and services are set forth in
the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an
additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.

First Edition: June 2019

Document Part Number: L70903-001

Product notice

This user guide describes features that are common to most models. Some features may not be available on your computer.

To access the latest user guides, go to http://www.hp.com/support, and follow the instructions to find your product. Then select User
Guides.

Software terms

By installing, copying, downloading, or otherwise using any software product preinstalled on this computer, you agree to be bound by
the terms of the HP End User License Agreement (EULA). If you do not accept these license terms, your sole remedy is to return the
entire unused product (hardware and software) within 14 days for a full refund subject to the refund policy of your seller.

For any further information or to request a full refund of the price of the computer, contact your seller.
Contents

1 Overview............................................................................................................................................. - 1 -

1.1 Commands classification ..................................................................................................................... - 1 -


1.2 Key terms ............................................................................................................................................. - 1 -
1.3 Command format ................................................................................................................................. - 2 -

2 Command Description ...................................................................................................................... - 3 -

2.1 Print command ..................................................................................................................................... - 3 -


LF ........................................................................................................................................................... - 3 -

FF ........................................................................................................................................................... - 3 -

CR .......................................................................................................................................................... - 3 -

ESC FF................................................................................................................................................... - 3 -

ESC J n .................................................................................................................................................. - 4 -

ESC d n .................................................................................................................................................. - 4 -

2.2 Position command ............................................................................................................................... - 5 -


HT........................................................................................................................................................... - 5 -

ESC $ nL nH .......................................................................................................................................... - 6 -

ESC D n1...nk NUL ................................................................................................................................ - 6 -

ESC T n .................................................................................................................................................. - 7 -

ESC W xL xH yL yH dxL dxH dyL dyH ................................................................................................... - 8 -

ESC \ nL nH ......................................................................................................................................... - 10 -

ESC a n ................................................................................................................................................ - 11 -

GS $ nL nH ........................................................................................................................................... - 12 -

GS L nL nH ........................................................................................................................................... - 12 -

GS P x y ............................................................................................................................................... - 13 -

GS W nL nH ......................................................................................................................................... - 14 -

GS \ nL nH ............................................................................................................................................ - 14 -

2.3 Character command .......................................................................................................................... - 15 -


CAN ...................................................................................................................................................... - 15 -

ESC SP n ............................................................................................................................................. - 16 -

ESC ! n ................................................................................................................................................. - 17 -
ESC % n ............................................................................................................................................... - 18 -

ESC & y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]........................................................................... - 19 -

ESC – n ................................................................................................................................................ - 21 -

ESC ? n ................................................................................................................................................ - 21 -

ESC E n ............................................................................................................................................... - 22 -

ESC G n ............................................................................................................................................... - 22 -

ESC M n ............................................................................................................................................... - 23 -

ESC R n ............................................................................................................................................... - 23 -

ESC V n ............................................................................................................................................... - 24 -

ESC t n ................................................................................................................................................. - 25 -

ESC { n ................................................................................................................................................. - 26 -

GS ! n ................................................................................................................................................... - 27 -

GS B n .................................................................................................................................................. - 28 -

FS ! n .................................................................................................................................................... - 29 -

FS & ..................................................................................................................................................... - 30 -

FS - n.................................................................................................................................................... - 30 -

FS . ....................................................................................................................................................... - 30 -

FS 2 c1 c2 d1...dk ................................................................................................................................ - 31 -

FS C n .................................................................................................................................................. - 31 -

FS S n1 n2 ........................................................................................................................................... - 32 -

FS W n ................................................................................................................................................. - 32 -

2.4 Bitmap Command .............................................................................................................................. - 33 -


ESC * m nL nH d1... dk ........................................................................................................................ - 33 -

GS # n .................................................................................................................................................. - 34 -

GS * x y d1...d(x × y × 8) ...................................................................................................................... - 35 -

GS / m .................................................................................................................................................. - 35 -

GS v 0 m xL xH yL yH d1....dk ............................................................................................................. - 36 -

FS p n m ............................................................................................................................................... - 37 -

FS q n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n ........................................................................ - 37 -

2.5 Status command ................................................................................................................................ - 39 -


DLE EOT n ........................................................................................................................................... - 39 -
GS a n .................................................................................................................................................. - 41 -

GS r n ................................................................................................................................................... - 43 -

2.6 Barcode command ............................................................................................................................. - 43 -


GS H n.................................................................................................................................................. - 43 -

GS f n ................................................................................................................................................... - 44 -

GS h n .................................................................................................................................................. - 44 -

① GS k m d1...dk NUL②GS k m n d1...dn ................................................................................... - 45 -

GS s n1 n2 n3 n4 n5 n6 n7 n8 ............................................................................................................. - 49 -

GS o n .................................................................................................................................................. - 51 -

GS p n .................................................................................................................................................. - 52 -

GS q n .................................................................................................................................................. - 52 -

GS w n.................................................................................................................................................. - 52 -

2.7 Bi-color command .............................................................................................................................. - 53 -


ESC r n ................................................................................................................................................. - 53 -

ESC C n ............................................................................................................................................... - 54 -

GS (N pL pH fn a............................................................................................................................. - 54 -

2.8 Upside-down print command ............................................................................................................. - 54 -


GS (z nL nH 0 S ................................................................................................................................... - 54 -

GS (z nL nH 0 E ................................................................................................................................... - 56 -

2.9 Water-based print command.............................................................................................................. - 56 -


GS { w f n1 n2 n3 n4 n5 ....................................................................................................................... - 56 -

GS { w n ............................................................................................................................................... - 57 -

2.10 Greyscale printing commannd ......................................................................................................... - 58 -


FS r n xl xh yl yh zl zh d1 d2 d3...d(k) .................................................................................................. - 58 -

ESC c 6 n yl yh zl zh d1 d2 d3 ...d(k) ................................................................................................... - 60 -

ESC c 7 n RAM .................................................................................................................................... - 61 -

2.11 Control command ............................................................................................................................. - 61 -


ESC c : n .............................................................................................................................................. - 61 -

2.12 Other commands ............................................................................................................................. - 62 -


DLE ENQ n .......................................................................................................................................... - 62 -

DLE DC4 n m t ..................................................................................................................................... - 63 -

ESC 2 ................................................................................................................................................... - 63 -

ESC 3 n ................................................................................................................................................ - 63 -
ESC = n ................................................................................................................................................ - 64 -

ESC @ ................................................................................................................................................. - 64 -

ESC L ................................................................................................................................................... - 64 -

ESC S................................................................................................................................................... - 65 -

ESC c 0 n ............................................................................................................................................. - 66 -

ESC c 3 n ............................................................................................................................................. - 66 -

ESC c 4 n ............................................................................................................................................. - 67 -

ESC c 5 n ............................................................................................................................................. - 67 -

ESC p m t1 t2 ....................................................................................................................................... - 67 -

GS (A pL pH n m .................................................................................................................................. - 68 -

GS ........................................................................................................................................................ - 68 -

①GS V m ②GS V m n ....................................................................................................................... - 69 -

GS ^ r t m ............................................................................................................................................. - 69 -

3 Programming Process Guide ........................................................................................................ - 71 -

Appendix ............................................................................................................................................. - 72 -

Appendix A: Code128 .............................................................................................................................. - 72 -


A.1 Description of the CODE128 ............................................................................................................. - 72 -
A.2 Code Tables ....................................................................................................................................... - 73 -
Appendix B: Print mode and its change................................................................................................... - 77 -
B.1 General description ........................................................................................................................... - 77 -
B.2 Setting values in standard and page modes ..................................................................................... - 77 -
Appendix C: Command index .................................................................................................................. - 78 -
1 Overview
This manual classifies the printer commands and describes the applications of relative commands in detail.

1.1 Commands classification

This receipt printer commands are classified as follows:


• Print commands: used for printing and feeding paper.
• Position commands: to control the print position.
• Character commands: to set character property.
• Bitmap commands: to download bitmap and print, including NV and RAM bitmap.
• Status commands: used for printer status query.
• Barcode commands: barcode print and property settings.
• Bi-color commands: bi-color print and property settings.
• Upside-down print command: upside-down print and property settings.
• Watermark printing command: watermark print and property settings.
• Greyscale printing command: greyscale print and property settings.
• Control command: choose paper-saving mode and reduce ticket width.
• Double-side relevant command: relevant print and property settings of double-side print mode.
• Other commands: used for periphery control, macro-definition and initialization.
• Command instruction refers to the detailed function of relative commands.

1.2 Key terms

Real-time commands: These commands are acted on immediately upon being received by the printer.
Print buffers: Used to store figure data to be printed.
Page mode: Under this mode, the printer stores all data in a specified memory and thinks of this as a virtual page.
The page is printed when the printer receives print command either FF or ESC FF.
Standard mode: Standard mode is the default mode of printer, namely line mode. Under this mode, the printer prints
data and feeds paper upon print line buffer full (data is enough for one print line) or receiving print command like LF.
HRI character: Barcode note character. Human Readable Interface.
NV: Non-volatile memory in which data stored is not lost when the device is turned off.
RAM: Random Access Memory.
DPI: Dots per inch (one inch equals 25.4 mm). It is used to identify the resolution of a printer. For example, 203 DPI
means 203 print dots per inch.
Baseline: The standard position where character data in print buffers are stored. The figure shows the position of
ordinary characters in standard mode and page mode:

-1-
1.3 Command format

[Function]: The name and function summary of commands.


[Format]: The format of command data, such as ASCII, Hex and Decimal.
[Range]: The value range of the parameters in the command.
[Notes]: Explains the main features and application notices of commands.
[Default]: The initial value used after the printer is initialized.
[Relative]: Other commands related to current command.
[Example]: Example used for current or relative commands.
All the command data in the programming demo uses HEX. All normal font/characters are data. There is no
explanation for the data of command such as 42 43 which is data. The font/character underlined and emphasized is
a command such as 1B 40. All the data inside parentheses after all commands in the demo is used to explain the
meanings of this command. The parentheses and data inside it is not the command to be transmitted to the printer.

-2-
2 Command Description

2.1 Print command

LF

[Function] Print and line feed


[Format] ASCII LF
Hex 0A
Decimal 10
[Notes] This command sets the print position to the beginning of the line.
[Relative] ESC 2, ESC 3

FF

[Function] Print all data in the print buffers and return to the standard mode.
[Format] ASCII FF
Hex 0C
Decimal 12
[Notes] This command is valid only in page mode.
The buffer data is deleted after being printed.
The printer does not execute paper cutting.
This command sets the print position to the beginning of the line.
[Relative] ESC FF, ESC L, ESC S

CR

[Function] When the command is enabled, it equals to LF; it is ignored when disabled,
[Format] ASCII CR
Hex 0D
Decimal 13
[Notes] Sets the print starting position to the beginning of the line.
This command is set according to the printer configuration.
[Relative] LF

ESC FF

[Function] Print buffered data in page mode


[Format] ASCII ESC FF
Hex 1B 0C
Decimal 27 12
[Notes] This command is enabled only in page mode.
After printing, the printer does not clear the buffered data, setting values for ESC T and ESC W, and the position for

-3-
buffering character data.
[Relative] FF, ESC L, ESC S

ESC J n

[Function] Print and feed paper for [n × motion unit in vertical or horizontal] inches.
[Format] ASCII ESC J n
Hex 1B 4A n
Decimal 27 74 n
[Range] 0 ≤n ≤ 255
[Notes] After printing is completed, this command sets the print starting position to the beginning of the line.
The paper feed amount set by this command is not affected by the values set by ESC 2 or ESC 3.
The horizontal and vertical motion unit is specified by GS P.
In standard mode, the printer uses the vertical motion unit (y).
In page mode, this command functions as follows, depending on the starting position of the printable area:
1) When the starting position is set to the upper left or lower right of the printable area by ESC T, the vertical
motion unit (y) is used.
2) When the starting position is set to the upper right or lower left of the print able area by ESC T, the
horizontal motion unit (x) is used.
The maximum paper feed amount is 1016 mm (40 inches). When the setting value exceeds the maximum, it is
converted to the maximum automatically.
[Relative] GS P
[Example] 1B 40 (initialize printer)
1D 50 CB CB (set the resolution 203 × 203)
41 41 41 41 41 41 41(data to be printed)
1B 4A 50 (print and feed paper 80/203 inches)
42 42 42 42 42 42 42 0A (data to be printed)
Results:

ESC d n

[Function] Print and feed n lines


[Format] ASCII ESC d n
Hex 1B 64 n
Decimal 27 100 n
[Range] 0 ≤n ≤ 255
[Notes] • This command sets the print starting position to the beginning of the line.

-4-
• This command does not affect the line spacing set by ESC 2 or ESC 3.
• The maximum paper feed amount is 1016 mm. If the paper feed amount is more than 1016 mm , the printer feeds
paper only 1016 mm.
[Relative] ESC 2, ESC 3
[Example] 1B 40 (initialize printer)
41 41 41 41 41 41 41(data to be printed)
1B 64 02 (print and feed two-character line spacing, 2/6 inches)
42 42 42 42 42 42 42 0A (data to be printed)
Results:

2.2 Position command

HT

[Function] Move the print position to the next tab position.


[Format] ASCII HT
Hex 09
Decimal 9
[Notes] • This command is ignored unless the next horizontal tab position has been set.
• If the next horizontal tab position exceeds the printing area, the printer sets the printing position to [Print area
width + 1].
• Horizontal tab positions are set with ESC D.
• If this command is received when the printing position is at [print area width + 1], the printer executes print buffer-
full printing of the current line and horizontal tab processing from the beginning of the next line.
• The default setting of the horizontal tab position is 8 ASCII characters (12 × 24).
• When current buffer is full, the printer shall execute the actions as below:
1) In standard mode, the printer shall print current line and set the print position to the beginning of next line;
2) In page mode, the printer shall shift the line and set the print position to the beginning of next line.
[Relative] ESC D
[Example] 0A (set the print starting position to the beginning of the line)
1B 40 (initialize printer)
1B 53 (enter standard mode)
33 33 33 33 33 33
1B 44 08 10 1C 00 (set the horizontal tab position)
09 (move the print position to the next tab)

-5-
33 33 33 33
09 (the same as above)
33 33 33 33
09 (the same as above)
33 33 33 33
0A (print)
33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
0A (print)
Results:

ESC $ nL nH

[Function] The distance from the beginning of the line to the print position is [(nL + nH × 256) × (vertical or
horizontal motion unit)] inches.
[Format] ASCII ESC $ nL nH
Hex 1B 24 nL nH
Decimal 27 36 nL nH
[Range] 0≤nL ≤ 255
0 ≤nH≤255
[Notes] • Settings outside the specified printable area are ignored.
• The horizontal and vertical motion units are specified by GS P.
• In standard mode, the horizontal motion unit (x) is used.
• In page mode, horizontal or vertical motion unit differs depending on the starting position of the printable area as
follows:
1) When the starting position is set to the upper left or lower right of the printable area by ESC T,
the horizontal motion unit (x) is used.
2) When the starting position is set to the upper right or lower left of the printable area using ESC
T, the vertical motion unit (y) is used.
[Relative] ESC \, GS $, GS \, GS P
[Example] Refer to ESC W

ESC D n1...nk NUL

[Function] Set horizontal tab positions.


Set a tab position at the nth column from the beginning of the line.
There are k tab positions in all,

-6-
[Format] ASCII ESC D n1...nk NUL
Hex 1B 44 n1...nk 00
Decimal 27 68 n1...nk 0
[Range] 1 ≤ n ≤ 255
0 ≤ k ≤ 32
[Notes] • The horizontal tab position is stored as a value of [character width × n] measured from the beginning
of the line. The character width includes the right-side character spacing, and double-width characters are set with
twice the width of normal characters.
• This command cancels the previous horizontal tab settings.
• When setting n = 8, the print position is moved to column 9 by sending HT.
• Up to 32 tab positions (k = 32) can be set. Data exceeding 32 tab positions is processed as normal data.
• Transmit [n] k in ascending order and place a NUL code 0 at the end.
• When [n] k is less than or equal to the preceding value [n] k-1, tab setting is finished and the following data is
processed as normal data.
• ESC D NUL cancels all horizontal tab positions settings.
• The previously specified horizontal tab positions do not change, even if the character width changes.
• The character width is memorized for each standard and page mode.
[Default] The default tab positions are at intervals of 8 characters (columns 9, 17, 25...) for font A (12 × 24).
[Relative] HT
[Example] Refer to HT

ESC T n

[Function] Select the print direction and starting position in page mode.
[Format] ASCII ESC T n
Hex 1B 54 n
Decimal 27 84 n
[Range] 0≤n≤3 48 ≤ n ≤ 51
n specifes print direction and starting position:

[Notes] • When the command is input in standard mode, the printer executes only internal flag operation. This
command does not affect printing in standard mode.
• This command sets the position where data is buffered within the printing area.
-7-
• Parameters for horizontal or vertical motion units (x or y) differ as follows, depending on the starting position of
the printing area:
1) If the starting position is the upper left or lower right of the printing area, data is buffered in the
direction perpendicular to the paper feed direction:
Commands using character width: ESC SP, ESC $, ESC \
Commands using vertical motion units: ESC 3, ESC J, GS $, GS \
2) If the starting position is the upper right or lower left of the printing area, data is buffered in the
paper feed direction:
Commands using horizontal motion units: ESC 3, ESC J, GS $, GS \
Commands using vertical motion units: ESC SP, ESC $, ESC \
[Default] n=0
[Relative] ESC $, ESC L, ESC W, ESC \, GS $, GS P, GS \
[Example] 1B 4C (enter page mode)
1D 50 CB CB (set printer resolution)
1B 57 20 00 00 00 40 02 90 02 (set the print area in page mode)
1B 54 00 (select the print area direction in page mode)
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0A (newline)
1B 54 01 (select the print area direction in page mode)
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 0A (newline)
1B 54 02 (select the print area direction in page mode)
32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 0A (newline)
1B 54 03 (select the print area direction in page mode)
33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 0A (print)
50 72 69 6E 74 20 45 6E 64
0C (print)
Results:

ESC W xL xH yL yH dxL dxH dyL dyH

[Function] Define the horizontal starting position, vertical starting position, printing area width, and printing area
height.

-8-
Horizontal starting position: x0 = [(xL + xH × 256) × (horizontal motion unit)]
Vertical starting posirion: y0 = [(yL + yH × 256) × (vertical motion unit)]
Print area width: dx = [(dxL + dxH × 256) × (horizontal motion unit)]
Print area height: dy = [(dyL + dyH × 256) × (vertical motion unit)]
[Format] ASCII ESC W xL xH yL yH dxL dxH dyL dyH
Hex 1B 57 xL xH yL yH dxL dxH dyL dyH
Decimal 27 87 xL xH yL yH dxL dxH dyL dyH
[Range] 0 ≤ xL, xH, yL, yH, dxL, dxH, dyL, dyH ≤ 255 (except dxL= dxH=0 or dyL= dyH=0)
[Notes] • If this command is input in standard mode, the printer executes only internal flag operation. This
command does not affect printing in standard mode.
• If the horizontal or vertical starting position is set outside the printable area, the printer stops command processing
and processes the following data as normal data.
• If the printing area width or height is set to 0, the printer stops command processing and processes the following
data as normal data.
• This command sets the position where data is buffered to the position specified by ESC T within the printing area.
• If (horizontal starting position + printing area width) exceeds the printable area, the printing area width is
automatically set to (horizontal printable area - horizontal starting position).
• If (vertical starting position + printing area height) exceeds the printable area, the printing area height is
automatically set to (vertical printable area – vertical starting position).
• The horizontal and vertical motion units are specified by GS P. Changing the horizontal or vertical motion unit does
not affect the current printing area.
• Use the horizontal motion unit (x) for setting the horizontal starting position and printing area width, and use the
vertical motion unit (y) for setting the vertical starting position and printing area height.
• When the horizontal starting position, vertical starting position, printing area width, and printing area height are
defined as X, Y, Dx, and Dy respectively, the printing area is set as shown in the figure below.

[Default] Decided by printer configuration


[Relative] CAN, ESC L, ESC T, GS P
[Example] 0A
1D 50 CB CB (set printer resolution 203×203)
1B 4C (enter page mode)
1B 57 20 00 00 00 40 01 90 01 (set print area in page mode)
-9-
1B 24 00 00 (set absolute horizontal starting position to be starting point)
41
1B 24 32 00 (set absolute horizontal starting position to be 50/203 inches)
42
1B 24 64 00 (set absolute horizontal starting position to be 100/203 inches)
43
0A (newline)
1B 24 00 00 (set absolute horizontal starting position to be starting point)
41
1B 5C 32 00 (set relative horizontal starting position to be 50/203 inches)
1B 5C 64 00 (set relative horizontal starting position to be 100/203 inches)
43
0A (newline)
0C (print in page mode)
Results:

ESC \ nL nH

[Function] Set the print starting position based on the current position by using the horizontal or vertical motion
unit.
This command sets the distance from the current position to the print position to be [(nL + nH × 256) × horizontal or
vertical motion unit]
[Format] ASCII ESC \ nL nH
Hex 1B 5C nL nH
Decimal 27 92 nL nH
[Range] 0 ≤ nL ≤ 255
0 ≤ nH ≤ 255
[Notes] • Any setting that exceeds the printable area is ignored.
• When pitch N is specified to the right: nL+ nH × 256 = N
• When pitch N is specified to the left: nL+ nH × 256 = 65536 - N
• The print starting position moves from the current position to [N × horizontal or vertical motion unit]
• The horizontal and vertical motion units are specified by GS P.
• In standard mode, the horizontal motion unit is used.

- 10 -
• In page mode, the horizontal or vertical motion unit differs as follows, depending on the direction and starting
point of the printing area:
1) When the starting position is set to the upper left or lower right of the printable area
using ESC T, the horizontal motion unit (x) is used.
2) When the starting position is set to the upper right or lower left of the printable area using ESC
T, the vertical motion unit (y) is used.
[Relative] ESC $, GS P

ESC a n

[Function] Align all the data in one line to the specified position
[Format] ASCII ESC a n
Hex 1B 61 n
Decimal 27 97 n
[Range] 0 ≤ n ≤ 2, 48 ≤ n ≤ 50
n selects the justification as follows:
n Justification
0, 48 Left justification
1, 49 Centering
2, 50 Right justificatoin
[Notes] • This command is enabled only when processed at the beginning of the line in the standard mode.
• If this command is input in page mode, the printer performs only internal flag operations.
• This command adjusts the space area according to HT, ESC $ or ESC\.
[Default] n = 0
[Example] 0A (Entering line mode)
1B 40 (Initialization)
1B 61 00 (Setting left justification)
41 42 43 0A
41 42 43 44 0A
41 42 43 44 45 0A
1B 61 01 (Setting centering)
41 42 43 0A
41 42 43 44 0A
41 42 43 44 45 0A
1B 61 02 (Setting right justification)
41 42 43 0A
41 42 43 44 0A
41 42 43 44 45 0A

- 11 -
Results:

GS $ nL nH

[Function] This command sets the absolute vertical position.


[Format] ASCII GS $ nL nH
Hex 1D 24 nL nH
Decimal 29 36 nL nH
[Range] 0 ≤ nL ≤ 255, 0 ≤ nH ≤ 255
[Notes] • This command is effective only in page mode.
• If the [(nL + nH × 256) × (vertical or horizontal motion unit)] exceeds the specified printing area, this command is
ignored.
• The horizontal starting buffer position does not move after executing. this command.
• The positions of relative commands are specified by ESC T.
• This command operates as follows, depending on the direction and starting position of the printing area specified
by ESC T:
1) When the starting position is set to the upper left or lower right, this command sets the absolute
position in the direction.
2) When the starting position is set to the upper right or lower left, this command sets the absolute
position in the vertical direction.
• The horizontal and vertical motion units are specified by GS P.
[Relative] ESC $, ESC T, ESC W, ESC \, GS P, GS \
[Example] See ESC W

GS L nL nH

[Function] Set left margin to [(nL + nH × 256) × horizontal motion unit)] inches
[Format] ASCII GS L nL nH
Hex 1D 4C nL nH
Decimal 29 76 nL nH
[Range] 0 ≤ nL ≤ 255
0 ≤ nH ≤ 255

- 12 -
[Notes] • This command is effective only when processed at the beginning of the line in standard mode.
• If this command is input in page mode, it is disabled.
• This command does not affect printing in page mode.
• If the setting exceeds the printable area, the maximum value of the printable area is used.
• The horizontal and vertical motion units are specified by GS P. Changing the horizontal and vertical motion unit
does not affect the current left margin.
[Default] nL = 0, nH = 0
[Relative] GS P, GS W
[Example] 0A (Setting printing position at the beginning of the line)
1B 40 (Initialization)
30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 0A
1D 4C 30 00 (Setting left margin to 48/203 inches)
30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 0A
1D 57 C8 00 (Setting printing width to 200/203 inches)
30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 0A
Results:

GS P x y

[Function] Set the horizontal and vertical motion units to approximately 25.4/ x mm {1/ x inches} and
approximately 25.4/ y mm {1/ y inches}, respectively.
[Format] ASCII GS P x y
Hex 1D 50 x y
Decimal 29 80 x y
[Range] 0 ≤ x ≤ 255
0 ≤ y ≤255
[Notes] • When x and y are set to 0, the default setting of each value is used.
• The horizontal direction is perpendicular to the paper feed direction and the vertical direction is the paper feed
direction.
• In standard mode, the following commands use x or y, regardless of character rotation (upside-down or 90°
clockwise rotation):
1) Commands using x: ESC SP, ESC $, ESC \, FS S, GS L, GS W
2) Commands using y: ESC 3, ESC J, GS V
• In page mode, the following commands use x or y, depending on the direction and starting position of print area:
1) When the print starting position is set to the upper left (Printing direction from left to right)or
lower right (printing direction from right to left) of the printing area by ESC T:
- 13 -
Commands using x: ESC SP, ESC $, ESC W, ESC \, FS S
Commands using y: ESC 3, ESC J, ESC W, GS $, GS \, GS V
2) When the print starting position is set to the upper right(Printing direction from top to down)
or lower left (Printing direction from down to top)of the printing area by ESC T:
Commands using x: ESC 3, ESC J, ESC W, GS $, GS \
Commands using y: ESC SP, ESC $, ESC W, ESC \,FS S, GS V
• The command does not affect the previously specified values.
• The minimum motion unit is the compositive result of this command and other commands.
• 1 inch=25.4mm.
[Default] x = 203, y =203, at this time, one motion unit is a printing dot. The horizontal distance is about 1/8
mm and the vertical distance is about 1/8 mm.
[Relative] ESC SP, ESC $, ESC 3, ESC J, ESC W, ESC \, GS $, GS L, GS V, GS W, GS \

GS W nL nH

[Function] Set printing area width


[Format] ASCII GS W nL nH
Hex 1D 57 nL nH
Decimal 29 87 nL nH
[Range] 0 ≤ nL ≤ 255
0 ≤ nH ≤ 255
[Notes] • The printing area width is set to [(nL + nH × 256) × horizontal motion unit)] inches.

• In standard mode, the command is enabled only when processed at the beginning of the line.
• In page mode, this command is disabled.
• This command does not affect the printing in page mode.
• If the [left margin + printing area width] exceeds the printable area, [printable area width - left margin) is used.
• The horizontal and vertical motion units are specified by GS P. Changing the horizontal and vertical motion units
does not affect the current left margin or print area width.
• The horizontal motion unit (x) is used for calculating the printing area width.
[Default] nL = 76, nH = 2
[Relative] GS L, GS P
[Example] See GS L

GS \ nL nH

[Function] Set relative vertical print position in page mode.


[Format] ASCII GS \ nL nH

- 14 -
Hex 1D 5C nL nH
Decimal 29 92 nL nH
[Range] 0 ≤ nL ≤ 255
0 ≤ nH ≤ 255
[Notes] • This command sets the distance from the current position to [(nL + nH × 256) × vertical or horizontal
motion unit] inches.
• This command is ignored unless page mode is selected.
• When pitch N is specified to the movement downward:nL + nH × 256 = N
• When pitch N is specified to the movement upward:nL + nH × 256 = 65536 – N
• Any setting that exceeds the specified printing area is ignored.
• This command functions as follows, depending on the print starting position set by ESC T:
1) When the starting position is set to the upper left (printing from left to right) or lowerright (printing from
right to left) of the printing, the vertical motion unit (y) is used.
2) When the starting position is set to the upper right (printing from up to down) or lower left (printing from
down to up) of the printing area, the horizontal motion unit (x) is used.
• The horizontal and vertical motion units are specified by GS P.
• The horizontal and vertical motion units can be changed by GS P.
[Relative] ESC $, ESC T, ESC W, ESC \, GS $, GS P

2.3 Character command

CAN

[Function] In page mode, delete all the print data in current area.
[Format] ASCII CAN
Hex 18
Decimal 24
[Notes] This command is enabled only in page mode.
If the previously specified printing data also exists in the currently specified printing area, it is deleted.
[Relative] ESC L, ESC W
[Example] 1B 40 (Initialization)
1D 50 CB CB (Setting resolution 203×203)
1B 4C (Enter page mode)
1B 57 00 00 00 00 20 02 E8 00(Setting printing width and height in page mode)
31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78
79 7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77
78 79 7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76
77 78 79 7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75
76 77 78 79 7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74
- 15 -
75 76 77 78 79 7A 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73
74 75 76 77 78 79 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 64 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71
72 73 74 75 76 77 78 79
1B 57 44 00 10 00 7C 01 AA 00(Setting the size of page needed to be deleted)
18 (Delete data in page buffer)
1B 24 64 00 (Setting absolute horizontal print position as 100 dots)
1D 24 60 00 (Setting abosulute vertical print position as 96 dots)
43 61 6E 63 65 6C 20 74 68 65 20 64 61 74 61 20
0A 0C (Printing)
Results:

ESC SP n

[Function] Set right-side character spacing.


[Format] ASCII ESC SP n
Hex 1B 20 n
Decimal 27 32 n
[Range] 0 ≤ n≤255
[Notes] • Set the character spacing for the right side of the character to [n × horizontal or vertical motion unit]
inch.
• When characters are enlarged, the right-side character spacing is enlarged the same times.
• This command sets values independently in each mode (standard and page modes)
• The horizontal and vertical motion units are specified by GS P. Changing the horizontal or vertical motion unit does
not affect the current right-side spacing.
• In standard mode, the horizontal motion unit is used.
• In page mode, the horizontal or vertical motion unit differs in page mode, depending on starting position of the
printable area as follows:
1) When the starting position is set to the upper left or lower right of the printable area by ESC T, the
horizontal motion unit (x) is used.
2) When the starting position is set to the upper right or lower left of the printable area by ESC T, the vertical
motion unit (y) is used.
• The maximum right-side spacing is 255/203 inches. Any setting exceeding the maximum is converted to the
maximum automatically.
- 16 -
[Default] n = 0
[Example] 1B 40
1B 20 00 (Set right-side character spacing as 0)
41 41 41 41 41 0A
1B 20 06 (Set character spacing as 6/203 inch)
42 42 42 42 42 0A
1B 20 0C (Set character spacing as 12/203 inch)
43 43 43 43 43 0A
Results:

ESC ! n

[Function] Select print mode(s).


[Format] ASCII ESC ! n
Hex 1B 21 n
Decimal 27 33 n
[Range] 0 ≤ n ≤ 255
[Notes] • Select print mode(s) according to n as follow
Bit 1/0 HEX Decimal Function
0 00 0 Standard ASCII Font (12 × 24)
0
1 01 1 Compressd ASCII Font (9 × 17)
1,2 Undefined
0 00 0 Emphasized mode not selected
3
1 08 8 Emphasized mode selected
0 00 0 Double-height mode not selected
4
1 10 16 Double-height mode selected
0 00 0 Double-width mode not selected
5
1 20 32 Double-width mode selected
6 Undefined
0 00 0 Underline mode not selected
7
1 80 128 Underline mode selected
• When both double-height and double-width modes are selected, quadruple size characters are printed.
• The printer can underline all characters, but can not underline the space set by HT or 90° clockwise rotated
characters.
• The thickness of the underline is decided by ESC -, regardless of the character size.

- 17 -
• When some characters in a line are double or higher, all the characters in the line are aligned at the baseline.
• ESC E can also turn on or off emphasized mode. However, the setting of the last received command is effective.
• ESC – can also turn on or off underline mode. However, the setting of the last received command is effective.
• GS ! can also select character size. However, the setting of the last received command is effective.
[Default] n = 0
[Relative] ESC -, ESC E, GS !
[Example] 1B 40 (Initialize printer)
1B 21 00 (Select normal print mode)
48
1B 21 01 (Select compressed font mode)
48
1B 21 08 (Select emphasized mode)
48
1B 21 10 (Select double-height mode)
48
1B 21 20 (Select double-width mode)
48
1B 21 80 (Select underline mode)
48
1B 21 B9 (Select compressed, emphasized, double-width, double-height and underline mode)
48 0A
Results:

ESC % n

[Function] Select/cancel user-defined character set


[Format] ASCII ESC % n
Hex 1B 25 n
Decimal 27 37 n
[Range] 0 ≤ n ≤255
[Notes] When the LSB of n is 0, the user-defined character set is canceled.

- 18 -
When the LSB of n is 1, the user-defined character set is selected.
When the user-defined character set is canceled, the internal character set is automatically selected.
n is available only for the least significant bit.
[Default] n = 0
[Relative] ESC &, ESC ?

ESC & y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]

[Function] Define user-defined characters


[Format] ASCII ESC & y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
Hex 1B 26 y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
Decimal 27 38 y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
[Range] y = 3
32 ≤ c1 ≤ c2 ≤ 127
0 ≤ x ≤ 12 Standard ASCII font (12 × 24)
0 ≤ x ≤ 9 Compressed ASCII font (9 × 17)
0 ≤ d1 ... d (y × xk) ≤ 255
• y specifies the number of bytes in the vertical direction.
• c1 specifies the beginning character code for the definition, and c2 specifies the final code.
• x specifies the number of dots in the horizontal direction.
[Notes] • The allowable character code range is from ASCII code <20>H to <7F>H (96 characters).
• It is possible to define multiple characters for consecutive character codes. If only one character is desired, use c1
= c2.
• d is the data for downloaded characters. The dot pattern is in the horizontal direction from the left side.
• The data to define a user-defined character is (y × x) bytes.
• Set a corresponding bit to 1 to print a dot or 0 to not print a dot.
• The user-defined character definition is cleared when:
1) ESC ? is executed.
2) The power is turned off.
[Default] The internal character set.
[Relative] ESC %, ESC ?
[Example]

- 19 -
• When standard ASCII font (12 × 24) is selected

• When compressed ASCII font (9 × 17) is selected

- 20 -
ESC – n

[Function] Turn underline mode on/off


[Format] ASCII ESC - n
Hex 1B 2D n
Decimal 27 45 n
[Range] 0 ≤ n ≤2, 48 ≤n ≤ 50
[Notes] Turn underline mode on or off, based on the following values of n:
n Function
0, 48 Turn off underline mode
1, 49 Turn on underline mode (1-dot thick)
2, 50 Turn on underline mode (2-dots thick)
• The printer can underline all characters (including right-side character spacing), but cannot underline the space set
by HT.
• The printer cannot underline 90° clockwise rotated characters and white/black inverted characters.
• When underline mode is turned off, the following data is not underlined, and the underline thickness set before
the mode is turned off does not change. The default underline thickness is 1 dot.
• Changing the character size does not affect the current underline thickness.
• Underline mode can also be turned on or off by using ESC !. Note, however, that the last received command is
effective.
[Default] n=0
[Relative] ESC !
[Example] 1B 40
1B 2D 02 (2-dot thick underline)
41 41 41 41 41 41 0A
1B 2D 01 (1-dot thick underline)
42 42 42 42 42 42 0A
1B 2D 00(Turn off underline)
43 43 43 43 43 43 0A
Results:

ESC ? n

[Function] Cancel user-defined characters

- 21 -
[Format] ASCII ESC ? n
Hex 1B 3F n
Decimal 27 63 n
[Range] 32 ≤n ≤127
[Notes] This command cancels the pattern defined for the character code specified by n. After the user-defined
characters are canceled, the corresponding pattern for the internal character is printed.
If a user-defined character has not been defined for the specified character code, the printer ignores this command.
[Relative] ESC &, ESC %

ESC E n

[Function] Turn emphasized mode on/off


[Format] ASCII ESC E n
Hex 1B 45 n
Decimal 27 69 n
[Range] 0 ≤ n ≤ 255
[Notes] When the LSB of n is 0, emphasized mode is turned off.
When the LSB of n is 1, emphasized mode is turned on.
Only the least significant bit of n is enabled.
This command and ESC ! turn on and off emphasized mode in the same way. The last received command is effective.
[Default] n = 0
[Relative] ESC !
[Example] 1B 40
1B 45 01 (Emphasized mode is selected)
41 41 41 41 41 0A
1B 45 00 (Emphasized mode is not selected)
42 42 42 42 42 0A
Results:

ESC G n

[Function] Turn on/off double-strike mode


[Format] ASCII ESC G n
Hex 1B 47 n
Decimal 27 71 n
[Range] 0 ≤ n ≤ 255
[Notes] When the LSB of n is 0, double-strike mode is turned off.
When the LSB of n is 1, double-strike mode is turned on.

- 22 -
Only the lowest bit of n is enabled.
Printer output is the same in double-strike mode and in emphasized mode.
[Default] n = 0
[Relative] ESC E
[Example] See ESC E

ESC M n

[Function] Select character font


[Format] ASCII ESC M n
Hex 1B 4D n
Decimal 27 77 n
[Range] 0 ≤ n ≤3, 48 ≤n ≤ 51
n Function
0,48 Standard ASCII Font (12 × 24) selected
1,49 Compressed ASCII font (9 × 17) selected
2,50 User-defined character selected
3,51 Chinese font (24 × 24) selected
[Example] 1B 40
1B 4D 01 (Compressed font selected)
41 41 41 42 42 42 30 30 30 31 31 31 0A
1B 4D 00 (Standard font selected)
41 41 41 42 42 42 30 30 30 31 31 31 0A
Results:

ESC R n

[Function] Select an international character set


[Format] ASCII ESC R n
Hex 1B 52 n
Decimal 27 82 n
[Range] 0 ≤ n ≤ 13
[Notes] Select an international character set n from the following table:
n Character set

0 U.S.A

1 France

2 Germany

- 23 -
3 U.K
4 Denmark I

5 Sweden
6 Italy
7 Spain I

8 Japan

9 Norway

10 Denmark II

11 Spain II

12 Latin America

13 Korea

[Default] n=0

ESC V n

[Function] Turn 90° clockwise rotation mode on/off


[Format] ASCII ESC V n
Hex 1B 56 n
Decimal 27 86 n
[Range] 0 ≤ n ≤ 1, 48 ≤ n ≤ 49
[Notes] n is used as follows::
n Function
0,48 Turn off 90° clockwise rotation mode
1,49 Turn on 90° clockwise rotation mode
• This command is effective only in standard mode.
• When underline mode is turned on, the printer does not underline 90° clockwise-rotated characters.
• Double-width and double-height commands in 90° rotation mode enlarge characters in the opposite directions
from double-height and double- width commands in normal mode.
[Default] n = 0
[Relative] ESC !, ESC
[Example] 1B 40
1B 56 01 (Turn 90° clockwise rotation mode on)
41 41 41 42 42 42 0A
1B 56 00 (Turn 90° clockwise rotation mode off)
41 41 41 42 42 42 0A

- 24 -
Results:

ESC t n

[Function] Set code page


[Format] ASCII ESC t n
Hex 1B 74 n
Decimal 27 116 n
[Range] 0≤n≤5, 13≤n≤24,26≤n≤29, 45≤n≤51 64≤n≤81
n=11,33,34,36,37,38, 41,43,54,56
n Code page
0 PC437
1 Katakana
2 PC850
3 PC860
4 PC863
5 PC865
11 851[Greek]
13 PC857
14 737[Greek]
15 928[Greek]
16 WPC1252
17 PC866
18 PC852
19 PC858
20 Thai Tis42(Thai3)
21 Thai Tis11(Thai5)
22 Thai Tis(Thai2)
23 Thai Ku(Thai1)
24 Thai Tis14(Thai4)
26 Thai Tis18(Thai6)
27 Hebrew1
28 Hebrew2
29 Hebrew3
33 775[Baltic]

- 25 -
34 855[Cyrillic]
36 862[hebrew]
37 864[Arabic]
38 869[Greek]
41 Frasi
43 772[Lithuanian]
45 1250[Latin-2]
46 1251[Cyrillic]
47 1253[Greek]
48 1254[Turkish]
49 1255[Hebrew]
50 1256[Arabic]
51 1257[Baltic]
54 771
56 774[Lithuanian]
64 3840 (IBM-Russian)
65 3841 (Gost)
66 3843 (Polish)
67 3844 (CS2)
68 3845 (Hungarian)
69 3846 (Turkish)
70 3847 (Brazil-ABNT)
71 3848 (Brazil-ABICOMP)
72 1001
73 2001
74 3001 (Estonian-1)
75 3002 (Estonian-2)
76 3011 (Latvian-1)
77 3012 (Latvian-2)
78 3021 (Bulgarian)
79 3041 (Maltese)
80 8859
81 Persia
[Notes] This command is disabled in Chinese font.
[Default] PC437 code

ESC { n

[Function] Enables or disables upside-down printing mode

- 26 -
[Format] ASCII ESC { n
Hex 1B 7B n
Decimal 27 123 n
[Range] 0 ≤ n ≤ 255
[Notes] • When the LSB of n is 0, upside-down printing mode is turned off.
• When the LSB of n is 1, upside-down printing mode is turned on.
• Only the lowest bit of n is valid.
• This command is enabled only when processed at the beginning of the line in standard mode.
• When this command is input in page mode, the printer performs only internal flag operations.
• This command does not affect printing in page mode.
• In upside-down printing mode, the printer rotates the line to be printed by 180° and then prints it.
[Default] n = 0
[Example] 1B 40
1B 7B 01 (Turn on upside-down printing mode)
41 42 43 44 45 46 0A
30 31 32 33 34 35 0A
1B 7B 00 (Turn off upside-down printing mode)
41 42 43 44 45 46 0A
30 31 32 33 34 35 0A
[Results]:

GS ! n

[Function] Selects character size.


[Format] ASCII GS ! n
Hex 1D 21 n
Decimal 29 33 n
[Range] 0 ≤ n ≤ 255 (1 ≤ vertical number of times ≤ 6, 1 ≤ horizontal number of times ≤ 6)
[Notes] Select the character height using bits 0 to 3 and select the character width using bits 4 to 7 as follows:

Character Width Selection Character Height Selection

- 27 -
Hex Decimal Width Hex Decimal Height
00 00 1 (Normal) 00 0 1 (Normal)
10 16 2(Double width) 01 1 2(Double height)
20 32 3 02 2 3
30 48 4 03 3 4
40 64 5 04 4 5
50 80 6 05 5 6
• This command is effective to all characters (ASCII and Chinese characters) except for HRI characters.
• If n is outside of the defined range, this command will be ignored.
• In standard mode, the vertical direction is the paper feed direction, and the horizontal direction is perpendicular
to the paper feed direction. However, when character orientation changes in 90° clockwise-rotation, the relationship
between vertical and horizontal directions is reversed.
• In page mode, vertical and horizontal directions are based on the direction of print area.
• When characters in one line are enlarged to different sizes, all the characters are aligned at the baseline.
• The ESC ! command can also turn double-width and double-height modes on or off. However, the setting of the
last received command is effective.
[Default] n=0
[Relative] ESC !
[Example] Refer to ESC !

GS B n

[Function] Turn on/off white/black reverse printing mode


[Format] ASCII GS B n
Hex 1D 42 n
Decimal 29 66 n
[Range] 0 ≤ n ≤ 255
[Notes] • When the LSB of n is 0, white/black reverse mode is turned off.
• When the LSB of n is 1, white/black reverse mode is turned on.
[Notes] • Only the lowest bit of n is valid.
• This command is effective to all characters except for HRI characters..
• When white/black reverse printing mode is on, it also applies to character spacing set by ESC SP.
• This command does not affect bitmap, user-defined bitmap, barcode, HRI characters and spacing set by HT, ESC
$, and ESC \.
• This command does not affect the space between lines.
• White/black reverse mode has a higher priority than underline mode. Even if underline mode is on, it is disabled
(but not canceled) when white/black reverse mode is selected.
[Default] n=0
[Example] 1B 40
1D 42 01 (Turn white/black reverse mode on)

- 28 -
41 41 41 42 42 42 0A
1D 42 00 (Turn white/black reverse mode off)
41 41 41 42 42 42 0A
[Results]:

FS ! n

[Function] Set the print mode for Chinese characters.


[Format] ASCII FS ! n
Hex 1C 21 n
Decimal 28 33 n
[Range] 0 ≤n ≤ 255
[Description]Set the print mode forChinese characters, using n as follows:
Bit 0/1 Hex Decimal Function
0, 1 Undefined
0 00 0 Double-width mode is OFF
2
1 04 4 Double-width mode is ON
0 00 0 Double-height mode is OFF.
3
1 08 8 Double-height mode is ON
4-6 Undefined
0 00 0 Underline mode is OFF
7
1 80 128 Underline mode is ON
[Notes] • When both double-width and double-height modes are set (including right-side and left-side
character spacing), quadruple-size characters are printed.
• The printer can underline all characters (including right- and left-side character spacing), but cannot underline the
space set by HT and 90° clockwise-rotated characters.
• The thickness of the underline is specified by FS -, regardless of the character size.
• When some of the characters in one line are of different height, all the characters in the line are aligned at the
baseline.
• It is possible to emphasize the characters with FS W or GS ! and the setting of the last received command is effective.
• It is possible to turn underline mode on or off with FS -, and the setting of the last received command is effective.
[Default] n=0
[Relative] FS-, FS W, GS !
[Example] Refers to ESC !

- 29 -
FS &

[Function] Selects the Chinese character mode


[Format] ASCII FS &
Hex 1C 26
Decimal 28 38
[Notes] • When the Chinese character mode is selected, the printer checks whether the code is for Chinese or
not. If it is, the printer first processes the first byte and then checks whether the second byte is the code for Chinese.
• Chinese character mode is selected automatically when the power is turned on.
[Relative] FS, FS C

FS - n

[Function] Enables or disables underline mode for Chinese characters


[Format] ASCII FS - n
Hex 1C 2D n
Decimal 28 45 n
[Range] 0 ≤ n ≤ 2, 48 ≤ n ≤ 50
[Notes] Turn underline mode for Chinese characters on or off, based on the following values
of n.
n Function
0, 48 Turn off underline mode for Chinese characters.
1, 49 Turn on underline mode for Chinese characters (1-dot thick).
2, 50 Turn on underline mode for Chinese characters (2-dot thick).
• The printer can underline all characters (including right- and left-side character spacing), but cannot underline the
space set by HT and 90° clockwise-rotated characters.
• After the underline mode for Chinese characters is turned off, underline printing is no longer performed, but the
previously specified underline thickness is not changed. The default underline thickness is 1 dot.
• The specified underline thickness does not change even if the character size changes.
• It is possible to turn underline mode on or off by FS !, and the last received command is effective.
[Default] n=0
[Relative] FS !
[Example] Refer to ESC_

FS .

[Function] Cancel Chinese character mode


[Format] ASCII FS .
Hex 1C 2E
Decimal 28 46
[Notes] • When the Chinese character mode is not selected, all character codes are processed one byte at a
time as ASCII code.

- 30 -
• Chinese character mode is selected when the power is turned on.
[Relative] FS &, FS C

FS 2 c1 c2 d1...dk

[Function] Define user-defined Chinese characters


[Format] ASCII FS 2 c1 c2 d1...dk
Hex 1C 32 c1 c2 d1...dk
Decimal 28 50 c1 c2 d1...dk
[Range] c1 and c2 indicate character codes for the defined characters.
c1 = FEH,
A1H ≤ c2 ≤ FEH
0 ≤ d ≤ 255
k = 72
[Notes] • c1 and c2 indicate character codes for the user-defined Chinese characters. c1 specifies the first byte,
and c2 the second byte.
• d indicates the dot data. Set a corresponding bit to 1 to print a dot or to 0 to not print a dot.
[Default] No user-defined Chinese characters.
[Relative] FS C
The relationship between user-defined Chinese font and data:

FS C n

[Function] Selects the Japanese character mode.


[Format] ASCII FS C n
Hex 1C 43 n
Decimal 28 67 n
[Range] 0 ≤ n ≤ 1, 48 ≤ n ≤ 49
[Notes] Selects the Japanese character mode according to the values of n:
n Code mode
0,48 JIS code
- 31 -
1,49 SHIFT JIS code
• This command is enabled only in Japanese character mode.
• In JIS code mode, the following character codes are enabled:
First byte: <21>H to <7E>H
Second byte: <21>H to <7E>H
• In SHIFT JIS code mode, the following character codes are enabled:
First byte: <81>H to <9F>H and <E0>H to <EF>H
Second byte: <40>H to <7E>H and <80>H to <FC>H
[Default] n=0

FS S n1 n2

[Function] Set left-side and right-side Chinese character spacing


[Format] ASCII FS S n1 n2
Hex 1C 53 n1 n2
Decimal 28 83 n1 n2
[Range] 0 ≤ n1 ≤ 255
0 ≤ n2 ≤ 255
[Notes] Set left-side and right-side Chinese character spacing to n1 and n2 respectively.
• When the printer model used supports GS P, the left-side character spacing is [n1 × horizontal or vertical motion
unit] inches, and the right-side character spacing is [n2 × horizontal or vertical motion units] inches.
• When double-width mode is selected, the left- and right-side character spacing is twice the normal value.
• The horizontal and vertical motion units are set by GS P. The previously specified character spacing does not
change even if the horizontal or vertical motion unit is changed by GS P.
• In standard mode, the horizontal motion unit is used.
• In page mode, the horizontal or vertical motion unit differs, depending on the starting position of the printable area
as follows:
1) When the starting position is set to the upper left or lower right of the printable area, the
horizontal motion unit (x) is used.
2) When the starting position is set to the upper right or lower left of the printable area, the vertical
motion unit (y) is used.
• The maximum Chinese character spacing is approximately 36 mm. Any setting exceeding the maximum is
converted to the maximum automatically.
[Default] n1 = 0, n2 = 0
[Relative] GS P
[Example] Refer to ESC SP

FS W n

[Function] Turn quadruple-size mode on/off for Chinese characters


[Format] ASCII FS W n
Hex 1C 57 n

- 32 -
Decimal 28 87 n
[Range] 0 ≤ n ≤ 255
[Description] When the LSB of n is 0, quadruple-size mode for Chinese characters is turned off.
When the LSB of n is 1, quadruple-size mode for Chinese characters is turned on.
[Notes] • Only the lowest bit of n is enabled.
• In quadruple-size mode, the printer prints characters of the same size as when double-width and double-height
modes are both turned on.
• When quadruple-size mode is turned off by this command, the following Chinese characters are printed in normal
size.
• When some of the characters in one line are different in height, all the characters in the line are aligned at the
baseline.
• FS ! or GS ! can also select or cancel quadruple-size mode by selecting double-height and double-width modes,
and the setting of the last received command is effective.
[Default] n = 0
[Relative] FS !, GS !

2.4 Bitmap Command

ESC * m nL nH d1... dk

[Function] Select the bitmap mode.


[Format] ASCII ESC * m nL nH d1...dk
Hex 1B 2A m nL nH d1...dk
Decimal 27 42 m nL nH d1...dk
[Range] m = 0, 1, 32, 33
0 ≤ nL ≤ 255
0 ≤ nH ≤ 3
0 ≤ d ≤255
[Notes] Select a bitmap mode using m with the number of dots specified by nL and nH, as follows:
Vertical Direction Horizontal Direction
m Mode
Number of Dots Resolution Resolution Number of Data (K)
0 8-dot single-density 8 203/3 DPI 101 DPI nL + nH × 256
8-dot double-
1 8 230/3 DPI 203 DPI nL + nH × 256
density
24-dot single-
32 24 203 DPI 101 DPI (nL + nH × 256) × 3
density
24-dot double-
33 24 203 DPI 203 DPI (nL + nH × 256) × 3
density
• If the value of m is out of the specified range, nL and the following data are processed as normal data.

- 33 -
• The nL and nH indicate the number of dots of the bitmap in the horizontal direction. The number of dots is
calculated by nL + nH × 256.
• If the bitmap data input exceeds the number of dots to be printed in a line, the excess data is ignored.
• d indicates the bitmap data. Set a corresponding bit to 1 to print a dot or to 0 to not print a dot.
• After printing a bitmap, the printer returns to normal data processing mode.
• This command is not affected by print modes (emphasized, double-strike, underline, character size enlargement
or white/black reverse printing), except upside-down printing mode.
• The relationship between the image data and the dots to be printed is as follows:
When 8-dot bitmap is selected:

When 24-dot bitmap is selected:

GS # n

[Function] Specify a number for the bitmap to be downloaded. This number is to be used when downloading and
printing this bitmap.
[Format] ASCII GS # n
Hex 1D 23 n
Decimal 29 33 n
[Range] 0≤n≤7
[Notes] The command is only enabled for bitmaps in RAM and the settings are erased when the printer is turned
off.

- 34 -
The number does not apply to the bitmap to be downloaded in FLASH.

GS * x y d1...d(x × y × 8)

[Function] Defines the bitmap to be downloaded.


[Format] ASCII GS * x y d1...d(x × y × 8)
Hex 1D 2A x y d1...d(x × y × 8)
Decimal 29 42 x y d1...d(x × y × 8)
[Range] 1 ≤ x ≤ 255, 1 ≤ y ≤ 48
x × y ≤ 912
0 ≤ d ≤ 255
[Description]• x specifies the number of bytes in the horizontal direction.
• y specifies the number of bytes in the vertical direction.
• The number of dots in the horizontal direction is x × 8, in the vertical direction y × 8.
• If x × y is out of the specified range, this command is disabled.
• The d indicates bitmap data. Data (d) specifies a bit printed to 1 and not printed to 0.
• The downloaded bitmap is cleared when printer is powered off.
• The following figure shows the relationship between the downloaded bitmap and the printed data.

[Relative] GS /

GS / m

[Function] Prints the downloaded bitmap.


[Format] ASCII GS / m
Hex 1D 2F m
Decimal 29 47 m
[Range] 0 ≤ m ≤ 3, 48 ≤ m ≤ 51
[Description] Print a downloaded bitmap with the print mode specified by m.
m selects a mode from the table below:
m Mode Vertical Resolution (DPI) Horizontal Resolution (DPI)
0, 48 Normal 203 203
1, 49 Double-width 203 101
2, 50 Double- 101 203

- 35 -
height
3, 51 Quadruple 101 101
[Notes] • This command is ignored if a downloaded bitmap has not been defined.
• This command has no effect in the print modes (emphasized, double-strike, underline, character size enlargement,
or white/black reverse printing), except for upside-down printing mode.
• If the downloaded bitmap to be printed exceeds the printable area, the excess data is not printed.
• This command print bitmap in RAM but not in FLASH, the number of bitmap is defined by GS #.
[Relative] GS *, GS #

GS v 0 m xL xH yL yH d1....dk

[Function] Print raster bitmap


[Format] ASCII GS v 0 m xL xH yL yH d1...dk
Hex 1D 76 30 m xL xH yL yH d1...dk
Decimal 29 118 48 m xL xH yL yH d1...dk
[Range] 0 ≤ m ≤ 3, 48 ≤ m ≤ 51
0 ≤ xL ≤ 255
0 ≤ xH ≤ 255
0 ≤ yL ≤ 255
0 ≤ d ≤ 255
k = (xL + xH × 256) × (yL + yH × 256) (k ≠ 0)
[Notes] Prints a Raster bitmap. The value of m selects the mode, as follows:
m Mode Vertical Resolution (DPI) Horizontal Resolution (DPI)
0, 48 Normal 203 DPI 203 DPI
1, 49 Double-width 203 DPI 101 DPI
2, 50 Double-height 101 DPI 203 DPI
3, 51 Quadruple 101 DPI 101 DPI
• xL, xH indicate the number of data bytes (xL + xH × 256) in the horizontal direction of the bitmap.
• yL, yH indicate the number of data bytes (yL + yH × 256) in the vertical direction of the bitmap.
• In standard mode, this command is effective only when there is no data in the print buffer.
• This command has no effect in all print modes (character size enlargement, emphasized, double-strike, underline,
white/black reverse printing, etc.) for raster bitmap.
• Data outside the printing area is discarded.
• The ESC a (Select justification) setting is also effective on raster bitmaps.
• When this command is received during macro definition, the printer ends macro definition, and begins performing
this command. The definition of this command should be cleared.
• d indicates the bitmap data. Set a corresponding bit to 1 to print a dot or 0 to not print a dot.
[Example] When xL+ xH × 256 = 64

- 36 -
FS p n m

[Function] Print FLASH bitmap


[Format] ASCII FS p n m
Hex 1C 70 n m
Decimal 28 112 n m
[Range] 1 ≤ n ≤ 255
0 ≤ m ≤ 3, 48 ≤ m ≤51
[Notes] Prints a FLASH bitmap in the mode specified by m.
m Mode Vertical Resolution (DPI) Horizontal Resolution (DPI)
0.48 Normal 203 203
1.49 Double-width 203 101
2.50 Double-height 101 203
3.51 Quadruple 101 101
• n is the number of the NV bitmap (defined by the FS q command).
• m specifies the bitmap mode.
• NV bitmap refers to a bitmap which is defined by FS q, stored in a FLASH memory and printed by FS p.
• NV grayscale bitmap refers to a bitmap which is defined by FS r, stored in a FLASH memory and printed by FS p.
• This command is disabled when the specified NV bitmap has not been defined.
• This command is not affected by print modes (emphasized, double-strike, underline, character size enlargement,
white/black reverse printing or 90° rotated characters, etc.), except upside-down printing mode.
• If the downloaded bitmap to be printed exceeds the printable area, the excess data is not printed.
• After printing the bitmap, this command sets the print position to the beginning of the line and processes the data
that follows as normal data.
[Relatives] ESC *, FS q, GS /, GS v 0

FS q n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n

[Function] Define flash bitmap


[Format] ASCII FS q n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n
Hex 1C 71 n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n
Decimal 28 113 n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n
[Range] 1 ≤ n ≤ 255
0 ≤ xL ≤ 255
1 ≤ (xL + xH × 256) ≤ 1023
1 ≤ (yL + yH × 256) ≤ 8190
0 ≤ d ≤ 255
k = (xL + xH × 256) × (yL + yH × 256) × 8
[Notes] • The max capacity of Flash is decided by the configuration of the printer, which can be checked through
printing self-test page.
• n specifies the number of the defined flash bitmap.

- 37 -
• xL, xH specifies (xL + xH × 256) × 8 dots in the horizontal direction for the flash bitmap.
• yL, yH specifies (yL + yH × 256) × 8 dots in the vertical direction for the flash bitmap.
• Frequent execution of the command may damage the FLASH memory. Therefore, it is recommended to write the
FLASH memory 10 times or less a day.
• This command cancels all flash bitmaps that have already been defined by this command. The printer can not
redefine only one of several data definitions previously defined. In this case, all data needs to be sent again.
• During the processing of this command, it writes data in Flash and stops receiving other commands, so sending
other commands including real-time command to the printer are forbidden.
• Flash bitmap refers to a bitmap which is defined by FS q, stored in a FLASH memory and printed by FS p.
• In standard mode, this command is effective only when processed at the beginning of the line.
• The 7 bytes <from FS~yH> is command data but not data of image.
• When the amount of data exceeds the capacity left in the range defined by xL, xH, yL, yH, the printer only processes
xL, xH, yL, yH inside the defined range.
• In the first group of Flash bitmaps, when any of the parameters xL, xH, yL, yH is out of the defined range, this
command is disabled.
• When downloading more than one bitmap, if any of xL, xH, yL, yH is out of the defined range, it stops processing
this command. At this time, Flash bitmaps that haven’t been defined are disabled (undefined), but any Vbitmaps
before that are enabled.
• The d indicates the definition data. In data (d) a 1 bit specifies a dot to be printed and a 0 bit specifies a dot not to
be printed.
• This command defines n as the number of Flash bitmap. Numbers rise in order from Flash bitmap 1. Therefore,
the first data group [xL xH yL yH d1...dk] is Flash bitmap 1, and the last data group [xL xH yL yH d1...dk] is Flash
bitmap n. The total agrees with the number of Flash bitmaps specified by command FS p.
• A definition data of a Flash bitmap consists of [xL xH yL yH d1...dk]. Therefore, when there is only one Flash bitmap,
n=1. The number of bytes in Flash memory occupied by the printer is as follows:
• The printer uses ([data: (xL + xH × 256) × (yL + yH × 256) × 8] + [header:4]) bytes of FLASH memory.
[Example] When xL = 64, xH = 0, yL = 96, yH = 0

- 38 -
• The maximum flash downloading space in printer is 64K bits (8K bytes). This command can define several flash
bitmaps, but cannot define a bitmap data whose total capacity exceeds 64K bits (The download area is different
according to different configuration).
• When processing this command, the printer does not process other commands.
• When this command is received during macro definition, the printer ends macro definition, and begins performing
this command.
• After a Flash bitmap is defined, it is not erased by performing ESC @, resetting the device, or turning off the device.
• This command performs only definition of a Flash bitmap and does not perform printing. Printing of the Flash
bitmap is performed by the FS p command.
[Relative] FS p

2.5 Status command

DLE EOT n

[Function] Real-time status transmission


[Format] ASCII DLE EOT n
Hex 10 04 n
Decimal 16 4 n
[Range] 1 ≤ n ≤ 4
• n = 1: Transmit printer status
• n = 2: Transmit off-line status
• n = 3: Transmit error status
• n = 4: Transmit paper sensor status
[Notes] • When the printer receives the command, it returns relative status immediately.
• Even though the printer is not selected by ESC = (select peripheral device), this command is effective.
• The printer transmits the current status. Each status is represented by one-byte data.
• The printer transmits the status without confirming whether the host computer can receive data or not.
• The printer executes this command upon receiving it.
• This command is effective to serial, bi-direction parallel and USB interface printer.
• This command is executed immediately in any status.
n = 1: Printer status
Bit 0/1 Hex Decimal Function
0 0 00 0 Fixed to 0.
1 1 02 2 Fixed to 1.
0 00 0 1 or 2 drawers are open.
2
1 04 4 2 drawers are closed.
0 00 0 On-line.
3
1 08 8 Off-line.

- 39 -
Bit 0/1 Hex Decimal Function
4 1 10 16 Fixed to 1.
5,6 - - - Undefined.
7 0 00 00 Fixed to 0.
n = 2: Off-line status
Bit 0/1 Hex Decimal Function
0 0 00 0 Fixed to 0.
1 1 02 2 Fixed to 1.
0 00 0 Cover is closed.
2
1 04 4 Cover is open.
FEED button has not been
0 00 0
3 pushed.
1 08 8 FEED button has been pushed.
4 1 10 16 Fixed to 1.
0 00 0 Paper is not end.
5
1 20 32 Paper is end.
0 00 0 No error.
6
1 40 64 Error has occured.
7 0 00 0 Fixed to 0.
n = 3: Error status
Bit 0/1 Hex Decimal Function
0 0 00 0 Fixed to 0.
1 1 02 2 Fixed to 1.
2 - - - Undefined.
0 00 0 No auto-cutter error.
3
1 08 8 Auto-cutter error has occured.
4 1 10 16 Fixed to 1.
5 0 00 00 Fixed to 0.
0 00 0 Temperature of print head is normal.
6 Temperature of print head is
1 40 64
abnormal.
7 0 00 0 Fixed to 0.
n = 4: Paper feeding status
Bit 0/1 Hex Decimal Function
0 0 00 0 Fixed to 0.
1 1 02 2 Fixed to 1.
2,3 0 00 0 Non-paper near status.

- 40 -
1 0C 12 Paper near end status.
4 1 10 16 Fixed to 1.
0 00 0 Paper present.
5,6
1 60 96 Paper end.
7 0 00 0 Fixed to 0.
Please avoid inserting this command between 2 or more byte commands.
For example:
In the process of sending ESC 3 n to printer, DTR turns into MARK(DSR is used to host computer) before sending n
and DLE EOT 3 is interrupted before receiving n, then the printer take code<10>H of DLE EOT 3 as code <10>H of
ESC 3.
[Relative] DLE ENQ, GS a, GS r

GS a n

[Function] Enable/Disable Automatic Status Back (ASB)


[Format] ASCII GS a n
Hex 1D 61 n
Decimal 29 97 n
[Range] 0 ≤ n ≤ 255
[Notes] Decide the content of ASB. The meanings of parameter n are as follows:
• When n is not equal to 0, the printer automatically transmits the status whenever the enabled status item changes.
• When n is equal to 0, the ASB function is ineffective.
• The following four status bytes are transmitted without confirming whether the host is ready to receive data.
• This command is executed with other command in turn, so there will be some time delay between sending
command and setting ASB is available.
• Even if the printer is disabled by ESC =, the printer still performs ASB according to the configuration.
• Status information returned back is as following:
First byte (Printer information)
Bit Off/On Hex Decimal Printer status
0 Off 00 0 Not used. Fixed to 0.
1 Off 00 0 Not used. Fixed to 0.
Off 00 0 Drawer kick-out connector pin 3 is LOW.
2
On 04 4 Drawer kick-out connector pin 3 is HIGH.
Off 00 0 On-line.
3
On 08 8 Off-line.
4 On 10 16 Not used. Fixed to 1.
Off 00 0 Cover is closed.
5
On 20 32 Cover is open.
Paper is not being fed by using the PAPER FEED
6 Off 00 0
button.
- 41 -
Paper is being fed by using the PAPER FEED
On 40 64
button.
7 Off 00 0 Not used. Fixed to Off.
Second byte (printer information)
Bit Off/On Hex Decimal Printer Status
0 - - - Undefined.
1 - - - Undefined.
2 - - - Undefined.
Off 00 0 No auto cutter error.
3
On 08 8 Auto cutter error occurs.
4 Off 00 0 Not used. Fixed to 0.
Off 00 0 No recoverable error.
5
On 20 32 Recoverable error occurs.
Off 00 0 No automatically recoverable error.
6
On 40 64 Automatically recoverable error occurs.
7 Off 00 0 Not used. Fixed to 0.
Bit 5: Errors like paper jam are recoverable errors.These errors can be eliminated and the printer can return to normal
state by using DLE ENQ n (1 ≤ n ≤ 2). Errors like control board damage are irrecoverable errors.
Bit 6: Errors like high print head temperature are automatically recoverable errors. When printing is stopped due to
these errors, the printer can come back to normal state automatically.
Third byte (paper sensor information)
Bit Off/On Hex Decimal Printer Status
Off 00 0 Paper is not near end
0,1
On 03 3 Paper near end.
Off 00 0 Paper present
2,3
On 0C 12 Paper end
4 Off 00 0 Not used. Fixed to 0.
5,6 - - - Undefined.
7 Off 00 0 Not used. Fixed to 0.
Fourth byte (paper sensor information)
Bit Off/On Hex Decimal Status for ASB
0-3 - - - Undefined.
Not used. Fixed to
4 Off 00 0
0.
5,6 - - - Undefined.
Not used. Fixed to
7 Off 00 0
0.

- 42 -
GS r n

[Function] Status back


[Format] ASCII GS r n
Hex 1D 72 n
Decimal 29 114 n
[Range] 1 ≤ n≤ 2, 49 ≤ n ≤ 50
[Notes] Transmit the status specified by n as follows:
n Function
1, 49 Transmit paper sensor status.
2, 50 Transmit cash drawer status.
• This command is valid for serial, nibble-byte parallel and USB interface printer.
• This command is executed when the data in the receive buffer is processed. Therefore, there may be a time lag
between receiving this command and transmitting the status,
• The corresponding relationship between different bits of status bytes are shown as below:
Paper sensor status (n = 1, 49):
Bit 0/1 Hex Decimal Status for ASB
0 00 0 Paper near-end sensor: paper adequate.
0, 1
1 03 3 Paper near-end sensor: paper near end.
0 00 0 Paper end sensor: paper adequate.
2, 3
1 0c 12 Paper end sensor: paper end.
4 0 00 0 Not used. Fixed to 0.
5, 6 Undefined.
7 0 00 0 Not used. Fixed to 0.
Cash drawer status (n = 2, 50):
Bit 0/1 Hex Decimal Status for ASB
0 0 00 0 Cash drawer is open.
1 01 1 Cash drawer is closed.
1- 3 Undefined.
4 0 00 0 Not used. Fixed to 0.
5, 6 Undefined.
7 0 00 0 Not used. Fixed to 0.
[Relative] DLE EOT, GS a

2.6 Barcode command

GS H n

[Function] Select the printing position of HRI characters when printing a barcode.

- 43 -
[Format] ASCII GS H n
Hex 1D 48 n
Decimal 29 72 n
[Range] 0 ≤ n ≤ 3, 48 ≤ n ≤ 51
[Notes] n specifies the printing position for HRI as follows:
n Printing position
0, 48 Not printed.
1, 49 Above the barcode.
2, 50 Below the barcode.
3, 51 Both above and below the barcode.
• HRI refers ro the character which applies notes to barcodes.
• HRI character font is specified by GS f.
[Default] n=0
[Relative] GS f, GS k

GS f n

[Function] Select a font for the HRI characters when printing a barcode.
[Format] ASCII GS f n
Hex 1D 66 n
Decimal 29 102 n
[Range] n = 0, 1, 48, 49
[Notes] n selects a font as follows:
n Font
0,48 Standard ASCII character (12 × 24)
1,49 Compressed ASCII character (9 × 17)
• HRI refers to the character which applies notes to barcodes.
• HRI characters are printed at the position specified by GS H.
[Default] n=0
[Relative] GS H, GS k

GS h n

[Function] Select barcode height


[Format] ASCII GS h n
Hex 1D 68 n
Decimal 29 104 n
[Range] 1 ≤ n ≤ 255
[Notes] The height of the barcode is n dots.
[Default] n = 162
[Relative] GS k

- 44 -
① GS k m d1...dk NUL②GS k m n d1...dn

[Function] Select a barcode type and print barcode


[Format] ①ASCII GS k m d1...dk NUL
Hex 1D 6B m d1...dk 00
Decimal 29 107 m d1...dk 0
②ASCII GS k m n d1...dn
Hex 1D 6B m n d1...dn
Decimal 29 107 m n d1...dn
[Range] ①0 ≤ m ≤ 6 (The range of k and d depends on the barcode type used)
②65 ≤ m ≤ 73 (The range of n and d depends on the barcode type used)
[Range] m selects a bar code type as follows:
m Number of
Bar Code type d
Characters
① 0 UPC-A 11 ≤ k ≤ 12 48 ≤ d ≤ 57
1 UPC-E 11 ≤ k ≤ 12 48 ≤ d ≤ 57, d1 = 48
2 JAN13 (EAN13) 12 ≤ k ≤ 13 48 ≤ d ≤ 57
3 JAN 8 (EAN8) 7≤k≤8 48 ≤ d ≤ 57
45 ≤ d ≤ 57, 65 ≤ d ≤ 90,
4 CODE39 1 ≤ k ≤ 255
32, 36, 37,43
5 ITF 1 ≤ k ≤ 255 48 ≤ d ≤ 57
48 ≤ d ≤ 57, 65 ≤ d ≤ 68
6 CODABAR 1 ≤ k ≤ 255
, 36, 43, 45,46,47,58
10 PDF417 1 ≤ k ≤ 255 0 ≤ d ≤ 255
11 QRCODE 1 ≤ k ≤ 928 0 < d ≤ 255
48 ≤ d ≤ 57,65 ≤ d ≤ 90,
12 MAXICODE 1 ≤ k ≤ 84
97 ≤ d ≤ 122
13 GS1 No limit Decided by GS1
② 65 UPC-A 11 ≤ n ≤ 12 48 ≤ d ≤ 57
66 UPC-E 11 ≤ n ≤ 12 48 ≤ d ≤ 57, d1 = 48
67 JAN13 (EAN13) 12 ≤n ≤ 13 48 ≤ d ≤ 57
68 JAN 8 (EAN8) 7 ≤n ≤ 8 48 ≤ d ≤ 57
45 ≤ d ≤ 57, 65 ≤ d ≤ 90,
69 CODE39 1 ≤ n ≤ 255
32, 36, 37,43
70 ITF 1 ≤ n ≤255 48 ≤ d ≤ 57
48 ≤ d ≤ 57 65 ≤ d ≤ 68,
71 CODABAR 1 ≤ n ≤ 255
36, 43,45,46,47 58
72 CODE93 1 ≤ n ≤ 255 0 ≤ d ≤ 127
73 CODE128 2 ≤ n ≤ 255 0 ≤ d ≤ 127

- 45 -
75 PDF417 1 ≤ n ≤ 255 0 ≤ d ≤ 255
76 QRCODE 1 ≤ n ≤ 255 0 ≤ d ≤ 255
77 MAXICODE 1 ≤ n ≤ 84 48 ≤ d ≤ 57,65 ≤ d ≤ 90
78 GS1 1 ≤ n ≤255 Decided by GS1
[Notes ①]
• This command ends with a NULL code.
• When UPC-A or UPC-E is selected, the characters after the first 12 bytes will be processed as normal characters
after receiving 12 bytes of barcode data.
• When JAN13 (EAN13) is selected, the characters after the first 13 bytes will be processed as normal characters
after receiving 12 bytes of barcode data.
• When JAN8 (EAN8) is selected, the characters after the first 8 bytes will be processed as normal characters after
receiving 8 bytes of barcode data.
• The number of data for ITF bar code must be even numbers. When an odd number of data is input, the printer
ignores the last received data.
• The beginning code and the ending code of CODEBAR barcode must be one of A, B, C and D. The ending codes can
be replaced with T, E, * and N.
• When QRCODE is selected, d1...d k(d1…dn)consist of 5 parts and the format is shown as below:
(1) Daabbcc
D: Link structure mode, input specific mark symbol “D”. This mode is optional and the following three
paramaters and separator should be assigned if this mode is selected.
aa: The position of the specific symbol; input 2 bytes decimal data
bb: The total number of the symbols; input 2 bytes decimal data
cc: The even and odd data; input 2bytes hexadecimal data
,,: are fixed separator symbol
(2) E: Error correction grade Range: L,M,Q,H. The correction grade is increasing from L to H.
(3) M: Mask image reference. Range: Default as automatic mask.
(4) M: Data input mode Range: A or M, A means automatic mode (Recommended).M means manual input mode.
If A is selected, the character mode is not necessary to be assigned; If M selected, the character mode must be
assigned. The default is A mode.
(5) <Character mode><DATA1>,
< Character mode ><DATA2>,
< Character mode ><DATA3>,
……………………….
< Character mode ><DATAn>
Note: n>=200
Character input mode<N,A,B,K>
N: Numbers(0~9)
A: Mixed by alphabet and numbers(0~9)(A~Z)(SP,$,%,*,+,-,.,/,:)
Bxxxx: 8 Bit byte mode(0x00~0xFF)

- 46 -
K: JIS
The legal width of the bar: The ratio of the bar is not changeable.
Example:
1D 6B 0B 51 41 2C 30 31 32 33 34 35 36 37 38 39 41 42 43 44 20 32 44 20 63 6F 64 65 00(Automatic mode
is recommended and the character symbol A can be omitted)
1D 6B 4c 12 48 4D 2C 4E 31 32 33 34 35 36 37 38 39 31 32 33 34 35
1D 6B 0B 4D 4D 2C 41 41 43 2D 34 32 00
1D 6B 0B 4C 4D 2C 4E 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 2C 41 41 42 43 2C 42 30 30 30 36
71 72 63 6F 64 65 00
1D 6B 0B 46 2C 4C 4D 2C 4E 30 31 32 33 34 35 36 37 38 39 2C 41 31 32 41 41 42 42 2C 42 30 30 30 36 71
72 63 6F 64 65 00
• When MAXICODE is selected, the length of d1...d k(d1…dn)should be less than 84 characters and it consists of 5
parts. The format is shown as below:
(1) The basic postal code in 5 numbers;
(2) The second postal code in 4 numbers;
(3) The country code in 3 numbers;
(4) The service class in 3 numbers;
(5) The character strings
Legal character: alphabet and numbers;
Length of variable: changeble;
Legal length of the bar: The ratio of the bar is not changeable.
Example:
1D 6B 0C 33 32 37 38 39 35 35 35 35 38 34 30 36 36 36 54 48 49 53 20 50 41 43 4B 41 47 45 49 53 20 47
4F 49 4E 47 20 54 4F 20 44 41 54 41 4D 41 58 43 4F 52 50 2E 00
[Notes ②]
• n indicates the number of barcode data, and the printer processes n bytes from the next character data as barcode
data.
• If n is outside the specified range, the printer stops command processing and processes the following data as
normal data.
[Notes (standard mode)]
• If d is outside the specified range, the command is disabled.
• If the horizontal size of the barcode exceeds printing area, the command is disabled.
• This command feeds as much paper as is required to print the barcode, regardless of the line spacing specified by
ESC 2 or ESC 3.
• This command is enabled only when no data exists in the print buffer. When data exists in the print buffer, the
command is ignored.
• After printing a barcode, this command sets the print position to the beginning of the line.
• This command is not affected by print modes (emphasized, double-strike,underline, character size, white/black
reverse printing, or 90° clockwise rotated character, etc.), except for upside-down printing mode.

- 47 -
[Notes in page mode]
• This command develops bar code data in the print buffer, but does not print it. After processing barcode data, this
command moves the print position to the right-side dot of the barcode.
• If d is out of the specified range, this command is ignored.
• If barcode width exceeds the printing area, this command is ignored.
When CODE128 (m = 73) is used:
• Refer to Appendix A for the information of the CODE 128 barcode and ithe character set.
• When using the CODE 128 in this printer, take the following points into account for data transmission:
1) Character set must be selected before the barcode data (one of CODE A, CODE B or CODE C).
2) Special characters are defined by combining two characters "{" and one character. The ASCII
character "{" is defined by transmitting "{" twice consecutively.
Transmit data
Specific character set
ASCII Hex Decimal
SHIFT {S 7B, 53 123,83
CODE A {A 7B, 41 123, 65
CODE B {B 7B, 42 123, 66
CODE C {C 7B, 43 123, 67
FNC1 {1 7B, 31 123, 49
FNC2 {2 7B, 32 123, 50
FNC3 {3 7B, 33 123, 51
FNC4 {4 7B, 34 123, 52
"{" {{ 7B, 7B 123, 123
[Demo] Example data for printing "No. 123456"
In this example, the printer first prints "No." using CODE B, then prints the
following numbers using CODE C.
GS k 73 10 123 66 78 111 46 123 67 12 34 56

• If the top of the barcode data is not the code set selection character, the printer stops command processing and
processes the following data as normal data.
• If combination of "{" and the following character does not apply to any special character, the printer stops
command processing and processes the following data as normal data.
• If the printer receives characters that cannot be used in the special code set, the printer stops command
processing and processes the following data as normal data.
• The printer does not print HRI characters that correspond to the shift characters or code set selection characters.

- 48 -
• HRI characters for the function characters are not printed.
• HRI characters for the control characters (<00>H to <1F>H and <7F>H) are not printed.
• The left- and right-side spacing which varies from one barcode type to another rmust be assured.
[Relative] GS H, GS f, GS h, GS w, GS s Appendix A
[Notes] 1B 40(Initialize printer)
4A 41 4E 31 33 0A
1D 48 01 (Set the width of the barcode unit 1)
1D 66 01 (HRI characters use condensed character)
1D 77 01 (HRI characters print above the barcode)
1D 68 40 (Barcode height is 64/203 inch)
1D 6B 02 30 31 32 33 34 35 36 37 38 39 30 35 39 00 0A
1D 48 02 (Set the width of the barcode unit 2)
1D 66 01 (HRI characters use condensed character)
1D 77 02 (HRI characters print under the barcode)
1D 68 80 (Barcode height is 128/203 inch)
1D 6B 02 30 31 32 33 34 35 36 37 38 39 30 35 39 00 0A
1D 48 03 (Set the width of the barcode unit 3)
1D 66 00 (HRI characters use standard character)
1D 77 03 (HRI characters print both above and under the barcode)
1D 68 C8 (Barcode height is 162/203 inch)
1D 6B 02 30 31 32 33 34 35 36 37 38 39 30 35 39 00 0A
[Result]:

GS s n1 n2 n3 n4 n5 n6 n7 n8

[Function] Set parameters of GS1 barcode.


[Format] ASCII GS s n1...n8
Hex 1D 73 n1...n8
Decimal 29 115 n1...n8

- 49 -
[Range] 1 ≤ n1≤ 7
1 ≤ n2≤ 6
2 ≤ n3≤250
1 ≤ n4≤ 10
1 ≤ n5≤ 10
2 ≤ n6≤20 , 4 ≤ n6≤ 20
1 ≤ n7≤ 4
0≤ n8≤1
[Notes] • Whether GS1 barcode is separate or composite barcode is distinguished by data
separator”|” If there is “|” in the programmed data, it is a composite barcode; otherwise, it is a separate DataBar. The
part before | is DataBar of the composite barcode and the part after it is the data of 2D barcode.
• n1 indicates barcode type and character set as below:

Parameter Barcode type Character set Data length Coding range


14 bits, 13
0000000000000
GS1DataBar numbers + 1 bits
1 Number 0-9 ~
Omnidirectional of check
9999999999999
characters
14 bits, 13
0000000000000
GS1DataBar numbers + 1bits
2 Number 0-9 ~
Truncated of check
9999999999999
characters
14 bits, 13
0000000000000
GS1 DataBar numbers + 1 bits
3 Number 0-9 ~
Stacked of check
9999999999999
characters
14 bits, 13
GS1 DataBar 0000000000000
numbers + 1 bits
4 Stacked Number 0-9 ~
of check
Omnidirectional 9999999999999
characters
14 bits, 13
0000000000000
GS1 DataBar numbers + 1 bits
5 Number 0-9 ~
Limited of check
1999999999999
characters
0 ~ 9、A ~ Z、 a
GS1 DataBar ~z !"%&'()* Max 74 numbers
6
Expanded + , - ./ : ; < = > ? _ or 41 letters
space FNC1
7 GS1 DataBar 0 ~ 9、A ~ Z、 a Max 74 numbers

- 50 -
ExpandedStacked ~z !"%&'()* or 41 letters
+ , - ./ : ; < = > ? _
space FNC1
• If the length is 13 bits, it will append the check character from the calculation of the first 13 bits to the right of the
data; If the length is 14 bits, the check character from the calculation of the first 13 bits will replace the 14th
character(the printed 14th bit may be different from the inputted character); if the length is shorter than 13 bits, add
0 to the left of the data, and the bits after the first 14th bits will not be printed out.
• The character set of 2D barcode in composite barcode: 0 ~ 9, A ~ Z, a ~ z ! " % & ' ( ) * +, - ./ : ; < = > ? _ space
FNC1(FNC1 is indicated by “{1”}.
• n2 indicates width of basic element
• n3 indicates the height of the DataBar,. Stacked, stacked omnidirectional, expanded stacked barcode indicate the
height of each line of barcode.
• n4 indicates the basic element height of the 2D barcode in the composite barcode.
• n5 indicates the height of the separator. This parameter should be set in DataBar composite barcode or separate
stacked, stacked omnidirectional, expanded stacked barcodes.
• n6 indicates the number of segments of each line of barcode. Only in expanded stacked barcode should this
parameter be set.
• Range of separate expanded stacked barcodes 2 ~ 20; range of composite expanded stacked barcodes 4 ~ 20.
• n7 indicates the content of the note character
Parameter Note character
DataBar and 2D in composite barcode
1
DataBar only in separate barcode
2 Print DataBar in composite or separate barcode
3 Print 2D in composite barcode, no print in separate barcode
4 No note character
• n8 indicates whether to use AI(use identifier): 0 indicates to not use AI; 1 indicates to use AI.
[Reference] GS k

GS o n

[Function] Set parameters of QRCODE barcode


[Format] ASCII GS o m nA nB nC
Hex 1D 6F m nA nB nC
Decimal 29 111 m nA nB nC
[Range] m = 0 ,1≤ nA ≤255 ,0≤nB≤1,1≤nC ≤2
The meaning of parameter n is shown as below:
Parameter Meaning
nA Basic element width
Language mode
nB
0:Chinese 1:Japanese

- 51 -
Symbol type
nC
1:Original type 2:Enhanced type(Recommended)
[Notes] When the value of parameter is outside the specified range, the command is not valid.

GS p n

[Function] Set size parameters of barcode PDF417


[Format] ASCII GS p nA nB nC nD nE nF
Hex 1D 70 nA nB nC nD nE nF
Decimal 29 112 nA nB nC nD nE nF
[Range] 1≤ nA ≤10
1≤nB≤100
3≤nC ≤90
1≤nD ≤30
1≤nE ≤7
2≤nF ≤25
The meaning of parameter n is shown as below:
Parameter Meaning
nA Appearance to height
nB Appearance to width
nC Lines limit
nD Columns limit
nE X size
nF line height

GS q n

[Function] Set correction grade of barcode PDF417


[Format] ASCII GS q n
Hex 1D 71 n
Decimal 29 113 n
[Range] 0≤ n≤8
[Notes] Set correction grade of PDF417 code, the higher the correction grade is, the bigger the capacity of the
barcode is.

GS w n

[Function] Set barcode width


[Format] ASCII GS w n
Hex 1D 77 n
Decimal 29 119 n
[Range] 2≤n≤6
[Description] Sets the horizontal size of the barcode.

- 52 -
n specifies the barcode width as follows:
Module width (mm) for Module width (mm) for binary-level barcode
N
single-level barcode Thin basic module (mm) Thick basic module (mm)
2 0.25 0.25 0.625
3 0.375 0.375 1.0
4 0.5 0.5 1.25
5 0.625 0.625 1.625
6 0.75 0.75 1.875
• Single-level barcodes are as follows:
UPC-A, UPC-E, JAN13 (EAN13), JAN8 (EAN8), CODE93, CODE128
• Binary-level barcodes are as follows:
CODE39, ITF, CODABAR
[Default] n = 2
[Relative] GS k

2.7 Bi-color command

ESC r n

[Function] Enters or exits bi-color print mode.


[Format] ASCII ESC r n
Hex 1B 72 n
Decimal 27 114 n
[Range] 0 ≤n ≤ 1
[Notes] • n=0,exit bi-color mode.
• n=1,enter bi-color mode.
[Default] n = 1
[Reference] ESC C
[Example] 1B 40
1B 72 01 (enter bi-color print mode.)
1D 21 11 (set double-height, double-width)
1B 43 01 (select color 2)
41
1B 43 00 (select color 1)
41
1B 43 01 (select color 2)
41
1B 43 00 (select color 1)
41

- 53 -
0A (print)
1B 72 01 (exit bi-color print mode)
[Result]:

ESC C n

[Function] select print color.


[Format] ASCII ESC C n
Hex 1B 43 n
Decimal 27 67 n
[Range] 0 ≤n ≤ 1
[Notes] • n=0, select color one.
• n=1, select color two.
[Reference] ESC r

GS (N pL pH fn a

[Function] bi-color print setting command, set to enter/exit bi-color mode and print color
[Format] ASCII GS ( N pL pH fn a
Hex 1D 28 4E pL pH fn a
Decimal 27 67 n
[Range] pL = 2, pH = 0, fn = 48, a = 48, 49, 50
[Notes] • a=48, exit bi-color print mode.
• a=49, enter bi-color print mode and choose color one.
•a=50, enter bi-color print mode and choose color two.
[Reference] ESC r, ESC C

2.8 Upside-down print command

GS (z nL nH 0 S

[Function] Enter upside-down print mode, start incepting upside-down data.


[Format] ASCII GS ( z nL nH 0 S
Hex 1D 28 7ª nL nH 30 53
Decimal 29 40 122 nL nH 4 8 83
[Range] nL = 2 nH = 0
[Notes] • The difference between upside-down command and ESC { n upside-down printing: this upside-
down printing command can print the note upside down, while ESC { n can only print the character line upside down.

- 54 -
• This command is used at the beginning of the upside-down page. The part behind the command is to be printed.
It cannot be printed out immediately, but it is stored in the buffer. When the printer incepts the command to cut
paper (GS V) or to exit upside-down print mode, the printer print upside down.
• This command can only be used at the beginning of the line, otherwise it will be ignored.
• This command should cooperate with cut paper command or exit upside-down print mode command; otherwise
it will not be able to print upside down.
• The data to be printed in upside-down mode must be smaller than the command buffer (the capacity of buffer
can be checked by priting self-test pages), for pages larger than command buffer:
a) Printer ignores print data;
b) If ending with exiting upside-down printing mode, the printer will enter normal print mode with no action;
c) If ending with cut paper command, the printer will enter normal print mode after the action of cutting paper.
• Forbid command
The following commands are not supported under upside-down printing mode. If sending the following commands
under upside-down printing mode, the printer may not perform the expected result.
Command Function
GS : Start / end macro definition
GS ^ Perform macro definition
ESC D Set horizontal tab position
FS q Define NV bitmap
ESC = Select printer
GS ( A Perform testing print
ESC c 7 Greyscale print function
Note: Although FS q command is not supported under upside-down printing mode, FS p command is supported. If
NV bitmap is to be printed, enter upside-down printing mode by command. Before entering upside-down printing
mode, first send FS q command to define NV bitmap. Example is as follows:
1C 71 01 (defineNV bitmap,……..stand for bitmap data)
1D 28 7A 02 00 30 53 (enter upside-down printing mode)
1C 70 01 00 (print the bitmap downloaded in FLASH)
1D 28 7A 02 00 30 45 (print NV bitmap and exit upside-down printing mode)
• Perform the command immediately
In upside-down printing mode, this kind of command will be performed before printing. Details are as follows:
Command Function
GS a Automatically back to state
DLE ENQ n Real-time request
DLE DC4 Real-time cash drawer pulse
GS r Back to state
ESC p Produce cash drawer control pulse
Steps to enter upside-down printing mode through command:

- 55 -
a) Send command of entering upside-down printing mode;
b) Send page;
c) Send command of exiting upside-down printing mode or cutting paper and print sample page.
[Example] 1D 28 7A 02 00 30 53 (enter upside-down printing mode)
41 42 43 44 45 46 47 2E 2E 2E 0A 0A
31 32 33 34 35 36 37 38 2E 2E 2E 0A (print sample page)
1D 56 42 00 (cut paper and exit upside-down printing mode)
Normal print mode and upside-down print:

Normally printed note Upside-down printed note

GS (z nL nH 0 E

[Function] print page data and exit upside-down printing mode and enter normal print mode.
[Format] ASCII GS ( z nL nH 0 E
Hex 1D 28 7A nL nH 30 45
Decimal 29 40 122 nL nH 4 8 69
[Range] nL = 2
nH = 0
[Notes] • This command should be used at the end of the upside-down page. After receiving the command,
the page data will be printed upside down.
• This command can only be used at the beginning of each line, otherwise it will be ignored.
• This command should be used together with the command to enter upside-down printing mode, otherwise
upside-down printing will not be able to perform.

2.9 Water-based print command

GS { w f n1 n2 n3 n4 n5

[Function] Set water-based print bitmap parameters and enter water-based print mode.
[Format] ASCII GS { w f n1 n2 n3 n4 n5
Hex 1D 7B 77 02 n1 n2 n3 n4 n5
Decimal 29 123 119 02 n1 n2 n3 n4 n5
[Range] 0 ≤ n1 ≤ 1
0 ≤ n2 ≤ 2

- 56 -
1 ≤ n3≤ 255
0 ≤ n4 ≤ 255
1 ≤ n5 ≤ 255
[Notes] • n1 indicates water-based print mode:
n1 = 0: print water-based print bitmap when feeding paper
n1 = 1: print water-based print bitmap when printing
• n2 indicates water-based print justification mode
n2 = 0: left justification
n2 = 1: centering
n2 = 2: right justification
• n3 indicates water based print enlargement mode, 0-3 selects height, 4-7 selects width, values are as follows:
Width Height
Horizontal Vertical
Hex Decimal Hex Decimal
enlargement enlargement
10 16 1 (normal) 01 1 1 (normal)
20 32 2 (2double-width) 02 2 2 (2double-height)
30 48 3 03 3 3
40 64 4 04 4 4
50 80 5 05 5 5
60 96 6 06 6 6
• n4 indicates water-based print greyscale and luminosity adjustment, recommended value 0x20.
• n5 indicates the number of bitmap (defined by FS q command).
• This command should be used at the beginning of each line, otherwise it is dsabled.
• This command is valid only in line mode, not valid under page mode.
• Before using this command, use FS q to define NV bitmap.
[Example] 1D 7B 77 02 01 00 22 40 01
Explanation:
n1 = 0x01: Water-based print bitmap is only printed when there is a printing task.
n2 = 0x00: Water-based print bitmap left justification.
n3 = 0x22: Water-based print bitmap is enlarged twice horizontally and vertically respectively.
n4 = 0x40: Luminosity of water-based print is 0x40.
n1 = 0x01: regard number 1 NV bitmap as water-based print bitmap.

GS { w n

[Function] Starts or ends water-based print mode.


[Format] ASCII GS { w n
Hex 1D 7B 77 n
Decimal 29 123 119 n
[Range] 0≤n≤1

- 57 -
[Notes]
• n = 0:exit water-based print mode
• n = 1:enter water-based print mode
• This command is valid only at the beginning of each line.
• Before using this command, use water-based print setting command to set water based print parameters.
• After using this command to exit water-based print mode, the printer comes back to normal printing mode.

2.10 Greyscale printing commannd

FS r n xl xh yl yh zl zh d1 d2 d3...d(k)

[Function] Define FLASH grayscale bitmap download


[Format] ASCII FS r n xL xH yL yH zL zH
d1 d2 d3...d(k)
Hex 1C 72 n xL xH yL yH zL zH
d1 d2 d3...d(k)
Decimal 28 114 n xL xH yL yH zL zH
d1 d2 d3...d(k)
[Range] 1 ≤ n ≤ 255
xL = 1,xH = 0
1 ≤ (yL + yH × 256) ≤ 65536
1 ≤ (zL + zH × 256) ≤ 8190
0 ≤ d ≤ 255
k = (yL + yH × 256) × (zL + zH × 256) × 8
[Notes]
• The max capacity of Flash download is decided by the configuration of the printer, which can be checked through
printing a self-test page. The downloaded NV bitmap should be no larger than the Flash download capacity,
otherwise the download fails.
• n specifies the number of the defined NV bitmap
• yL、 yH specifies (yL + yH × 256) × 8 dots in the horizontal direction for the NV bitmap.
• zL、 zH specifies (zL + zH × 256) × 8 dots in the vertical direction for the NV bitmap.
• This command is disabled in upside-down printing mode.
• Frequent command execution may cause damage to the NV memory. Therefore, it is recommended to write the
NV memory 10 times or less per day.
• This command cancels all NV bitmaps that have already been defined by this command. The printer can not
redefine only one of several data definitions previously defined. In this case, all data needs to be sent again.
• In the process of processing this command, the printer writes data in Flash, and stops receiving other commands,
therefore sending other commands including real-time command to the printer is forbidden.
• NV grayscale bitmap refers to a bitmap which is defined in a non-volatile memory by FS r and printed by FS p.
• In standard mode, this command is effective only when processed at the beginning of the line.
- 58 -
• The 9 bytes <from FS~zH> is processed as command data but not data of image.
• In the first group of NV bitmaps, when any of the parameters yL,yH,zL,zH is out of the definition range, this
command is disabled.
• In groups of NV bitmaps, when the printer processes yL,yH,zL,zH out of the defined range, it stops processing this
command. At this time, NV bitmaps that haven’t been defined are disabled (undefined), but any NV bitmaps before
that are enabled.
• The d indicates the defined bitmap data. Set a corresponding bit to 1 to print the dot or 0 to not print the dot.
• This command defines n as the number of a NV bitmap. Numbers rise in order from NV bitmap 01H. Therefore,
the first data group[yL yH zL zH d1...dk] is NV bitmap 01H, and the last data group[yLyH zL zHd1...dk] is NV bitmap
n. The total agrees with the number of NV bitmaps specified by command FS p.
• A definition data of a NV bitmap consists of [yL yH zL zH d1...dk]. Therefore, when only one NV bitmap is defined,
n=1. The printer uses ([data: (yL + yH × 256)×(zL+ zH × 256)× 8] + [header:4]) bytes of NV memory.
• When processing this command, the printer does not process other commands.
• Once a NV bitmap is defined, it is not erased by performing ESC @, reseting the device, turning off the device.
• This command performs only definition of a NV bitmap and does not perform printing. Printing of the NV bitmap
is performed by the FS p command
• Format of the greyscale bitmap: every dot line of greyscale image is indicated by four dot lines of data. The four
dot lines of data form different rank correlation of the greyscale bitmap. The table below shows the greyscale rank
of a dot and the data of the four dot lines of data. The corresponding relation is as below:

Data of the first Data of the Data of the third Data of the fourth
Real greyscale rank
dot line second dot line dot line dot line
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

- 59 -
[Reference] FS p

ESC c 6 n yl yh zl zh d1 d2 d3 ...d(k)

[Function] Define RAM grayscale bitmap download


[Format] ASCII ESC c 6 n yl yh zl zh d1
d2 d3...d(k)
Hex 1B 63 36 n yl yh zl zh d1
d2 d3...d(k)
Decimal 27 99 54 n yl yh zl zh d1
d2 d3...d(k)
[Range] 0 ≤ n ≤ 7
0 ≤ d ≤ 255
(yL + yJ × 256) > 0
(zL+ zJ × 256) > 0
k = (yL + yH × 256) × (zL+ zH × 256) × 8
k>0
[Notes]
• n specifies the number of the defined RAM grayscale bitmap.
• yL、 yH specifies (yL + yH × 256) × 8 dots in the horizontal direction for the NV bitmap.
• zL、 zH specifies (zL + zH × 256) × 8 dots in the vertical direction for the NV bitmap.
• This command is disabled in upside-down printing mode.
• If any of the related parameters is out of the specified range, this command is disabled.
• If the defined RAM grayscale bitmap is beyond the max capacity of RAM128kB, this command is disabled.
• The downloaded RAM grayscale bitmap is cleared when printer is powered off.
• Format of the greyscale bitmap: every dot line of greyscale image is indicated by four dot lines of data. The four
dot lines of data form different rank correlation of the greyscale bitmap. The table below shows the greyscale rank
of a dot and the data of the four dot lines of data. The corresponding relation is as below:

Data of the first Data of the Data of the third Data of the fourth
Real greyscale rank
dot line second dot line dot line dot line
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0

- 60 -
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

ESC c 7 n RAM

[Function] Print downloaded RAM greyscale bitmap and set print mode.
[Format] ASCII ESC c 7 n
Hex 1B 63 37 n
Decimal 27 99 55 n
[Range] 0 ≤ n ≤ 255
(0 ≤ print mode ≤3, 0 ≤ bitmap number ≤ 7)
[Notes] • If the downloaded bitmap is not defined, the command will be ignored.
• If the downloaded bitmap is not defined, the command will be ignored.
• The command is disabled in upside-down mode.
• If the downloaded bit-image to be printed exceeds the printable area, the excess data is not printed.
• This command print bitmap in RAM but not in FLASH, the number of bitmap is defined by ESC c.
Choose print mode Choose bitmap number
Hex Decimal mode Hex Decimal 位图号
00 0 Normal
10 16 Double-width
00~07 00~07 00~07
20 32 Double-height
30 48 Quadruple
[Example] 1B 63 37 01 (choose bitmap one, normal mode)
1B 63 37 02 (choose bitmap two, normal mode)
1B 63 37 11 (choose bitmap one, double-width mode)
1B 63 37 21 (choose bitmap one, double-height)
1B 63 37 31 (choose bitmap one, choose quadruple mode)

2.11 Control command

ESC c : n

[Function] Choose paper-saving mode and reduce ticket length.


[Format] ASCII ESC c : n
Hex 1B 63 3A n

- 61 -
Decimal 27 99 58 n
[Range] 0 ≤ n ≤ 4
[Notes] • Paper-saving function refers to vertical compression according to a proportionality factor set by user
to reach the goal of saving paper.
• The command only refers to vertical compression.
• The command only works on compressible space. Compressible space includes: space between print data (except
space caused by space characters); 1D barcode (The minimal height 1D barcode can be compressed is 30 dots).
• The command compresses compressible space according to a certain proportionality factor, which is set as follows:
m Proportionality factor setting
0 No compression
1 Compress 25%
2 Compress 50%
3 Compress 75%
4 Compress 100%
• The command only works on the ticket sending this command.
• This command is enabled only in standard mode.
[Default] n=0

2.12 Other commands

DLE ENQ n

[Function] Sends a real-time request to printer.


[Format] ASCII DLE ENQ n
Hex 10 05 n
Decimal 16 5 n
[Range] 1 ≤n ≤ 2
[Notes] n specifies the requests as follows:
n Request
Recover from an error and restart printing from the line where the error
1
occurred.
2 Recover from an error after clearing the receive and print buffers.
• This command is effective only when an auto-cutter error occurs or printer can not find
marked error.
• The printer starts processing data upon receiving this command under serial mode.
• Under parallel mode, this command can not be executed when the printer is busy.
• When the printer is disabled by ESC = (Select peripheral device), the command is still available.
• Do not insert the command into the data sequence of 2 or more bytes.
[Relative] DLE EOT

- 62 -
DLE DC4 n m t

[Function] Generate pulse at real-time to open cash drawer


[Format] ASCII DLE DC4 n m t
Hex 10 14 n m t
Decimal 16 20 n m t
[Range] n = 1
m = 0, 1
1 ≤ t≤ 6
[Notes] Outputs the pulse specified by the connector pin m as follows:
m Connector pin
0 Drawer kick-out connector pin 2
1 Drawer kick-out connector pin 5
• The pulse ON time is [t × 100 ms] and the OFF time is [t × 100ms].
• When the printer is executing the command to open the cash drawer (ESC p or DEL DC4), this command is ignored.
• The printer executes this command upon receiving it in serial interface mode.
• This command cannot be executed when the printer is busy in parallel interface mode.
• If print data includes the same character strings as this command, the printer performs the same operation
specified by this command. The user must consider this.
• This command is effective even when the printer is disabled with ESC = (Select peripheral device).
• Do not insert the command into the data sequence of 2 or more bytes.
[Relative] ESC p

ESC 2

[Function] Select default line spacing to 1/6 inch (about 4.23 mm)
[Format] ASCII ESC 2
Hex 1B 32
Decimal 27 50
[Notes] The line spacing can be set independently in standard mode and in page mode.
[Relative] ESC 3

ESC 3 n

[Function] Set line spacing


[Format] ASCII ESC 3 n
Hex 1B 33 n
Decimal 27 51 n
[Range] 0 ≤ n ≤ 255
[Notes] • The line spacing can be set independently in standard mode and in page mode.
• The horizontal and vertical motion units are specified by GS P. Changing the horizontal or vertical motion unit does
not affect the current line spacing.

- 63 -
• In standard mode, the vertical motion unit (y) is used.
• In page mode, this command functions as follows, depending on the direction and starting position of the printable
area:
1) When the starting position is set to the upper left or lower right of the printable area by ESC T,
the vertical motion unit (y) is used.
2) When the starting position is set to the upper right or lower left of the printable area by ESC T,
the horizontal motion unit (x) is used.
• The maximum paper feed amount is 1016 mm (40 inches). Even if a paper feed amount of more than 1016 mm
(40 inches) is set, the printer feeds the paper only 1016 mm (40 inches).
[Default] The default line spacing is approximately 4.23 mm (1/6 inches).
[Relative] ESC 2, GS P

ESC = n

[Function] Select printer to which host computer sends data


[Format] ASCII ESC = n
Hex 1B 3D n
Decimal 27 61 n
[Range] 0 ≤ n ≤ 1
[Description] The meaning of n is as follows:
Bit 1/0 Hex Decimal Function
0 00 0 Printer disabled.
0
1 01 1 Printer enabled.
1-
Undefined.
7
[Notes] When the printer is disabled, it ignores all commands except for real-time commands (DLE EOT, DLE ENQ,
DLE DC4) until it is enabled by this command.
[Default] n=1

ESC @

[Function] Initialize printer, clear data in print buffer and set print mode to the default mode when powered on.
[Format] ASCII ESC @
Hex 1B 40
Decimal 27 64
[Notes] • The data in the receive buffer is not cleared.
• The macro definition is not cleared.
• The NV bitmap data is not cleared.

ESC L

[Function] Transform to page mode from standard mode.


[Format] ASCII ESC L

- 64 -
Hex 1B 4C
Decimal 27 76
[Notes] • This command is enabled only when processed at the beginning of a line in standard mode.
• This command has no effect in page mode.
• After executing FF or ESC S, the printer returns to standard mode.
• This command sets the position where data is buffered to the position specified by ESC T within the printing area
defined by ESC W.
• This command switches the settings for the following commands to those for page mode:
1) Set right-side character spacing: ESC SP, FS S
2) Set line spacing: ESC 2, ESC 3
• This command can only change the indication bit and perform after switching to standard mode.
1) Turn 90° clockwise rotation mode on/off: ESC V
2) Select justification: ESC a
3) Turn upside-down printing mode on/off: ESC {
4) Set left margin: GS L
5) Set printable area width: GS W
• The printer returns to standard mode when power is turned on, the printer is reset, or ESC @ is used.
[Relative] FF, CAN, ESC FF, ESC S, ESC T, ESC W, GS $, GS \

ESC S

[Function] Select standard mode


[Format] ASCII ESC S
Hex 1B 53
Decimal 27 83
[Notes] • This command is effective only in page mode.
• Data buffered in page mode are cleared.
• This command sets the print position to the beginning of the line.
• The page area is initialized as default data.
• This command switches the settings for the following commands to those for standard mode:
1) Set right-side character spacing: ESC SP, FS S
2) Select default line spacing: ESC 2, ESC 3
• The following commands are enabled only to set in standard mode.
1) Set printing area in page mode: ESC W
2) Select print direction in page mode: ESC T
• The following commands are ignored in standard mode:
1) Set absolute vertical print position in page mode: GS $
2) Set relative vertical print position in page mode: GS \
• Standard mode is selected automatically when power is turned on, the printer is reset, or command ESC @ is used.
[Relative] FF, ESC FF, ESC L

- 65 -
ESC c 0 n

[Function] Select the paper type


[Format] ASCII ESC c 0 n
Hex 1B 63 30 n
Decimal 27 99 40 n
[Range] 0 ≤ n ≤ 2
[Notes] n = 0, set paper type as continuous paper.
n = 1, set paper type as marked paper.
Marked paper refers to paper with white/black marks.
Never use continuous paper when paper type is set to marked paper, otherwise GS FF command will cause the printer
feeding too long. Never use marked paper when paper type is set to continuous paper, otherwise printer will alarm
paper end.
[Default] n=0
[Relative] GS FF

ESC c 3 n

[Function] Select paper sensor(s) to output paper end signals


[Format] ASCII ESC c 3 n
Hex 1B 63 33 n
Decimal 27 99 51 n
[Range] 0 ≤ n ≤ 255
[Notes] • Each bit of n is used as follows:
Bit 0/1 Hex Decimal Function
0 00 0 Paper near end sensor is disabled
0
1 01 1 Paper near end sensor is enabled
0 00 0 Paper near end sensor is disabled
1
1 02 2 Paper near end sensor is enabled
0 00 00 Paper end sensor is disabled
2
1 04 4 Paper end sensor is enabled
0 00 00 Paper end sensor is disabled
3
1 08 8 Paper end sensor is enabled
4-7 Undefined
• It is possible to select two sensors to output signals. Then, if any of the sensors detects paper end, the paper end
signal can output.
• The command is available only with a parallel interface and is ignored with a serial interface.
• If either bit 0 or bit 1 is on (value is 1), the paper near end sensor is used to output paper end signal.
• If either bit 2 or bit 3 is on (value is 1), the paper end sensor is used to output paper end signal
• When two sensors are disabled, the paper end sensor is used to output paper end signal.
[Default] n = 12
- 66 -
ESC c 4 n

[Function] Select paper sensor(s) to stop printing


[Format] ASCII ESC c 4 n
Hex 1B 63 34 n
Decimal 27 99 52 n
[Range] 0 ≤ n ≤ 255
[Notes] n is defined as below:
Bit 0/1 Hex Decimal Function
0 00 0 Paper near end sensor disabled
0
1 01 1 Paper near end sensor enabled
0 00 0 Paper near end sensor disabled
1
1 02 2 Paper near end sensor enabled
2-7 Undefined
When either bit 0 or 1 is on (value is 1), paper near-end sensor is enabled, and when the printer detects paper
near end, it stops printing after completing the current task.
[Default] n=0

ESC c 5 n

[Function] Enables or disables panel buttons


[Format] ASCII ESC c 5 n
Hex 1B 63 35 n
Decimal 27 99 53 n
[Range] 0 ≤ n ≤ 255
[Notes] • When the lowest bit of n is 0, the panel buttons are enabled.
• When the lowest bit of n is 1, the panel buttons are disabled.
• Only the lowest bit of n is valid.
• When the panel buttons are disabled, none of them are usable when pressed.
• When executing macro commands, the panel buttons are always enabled.
[Default] n=0

ESC p m t1 t2

[Function] Output the cash drawer control pulse to specified connector pin.
[Format] ASCII ESC p m t1 t2
Hex 1B 70 m t1 t2
Decimal 27 112 m t1 t2
[Range] 0 ≤ m ≤ 1, 48≤m ≤ 49
0 ≤ t1 ≤ 255, 0≤ t2 ≤ 255
[Notes] M selects drawer kick-out connector pin as follows:
m Connector pin

- 67 -
0, 48 Drawer kick-out connector pin 2
1, 49 Drawer kick-out connector pin 5
• The pulse ON time is [t1 × 2 ms] and the OFF time is [t2 × 2 ms].
• If t2 < t1, the OFF time is [t1 × 2 ms].
[Relative] DLE DC4

GS (A pL pH n m

[Function] Execute test printing.


[Format] ASCII GS ( A pL pH n m
Hex 1D 28 41 pL pH n m
Decimal 29 40 65 pL pH n m
[Range] (pL+(pH × 56))=2 (pL=2, pH=0)
0 ≤n ≤ 2, 48 ≤ n ≤ 50
1 ≤ m≤ 4, 49 ≤ m ≤ 52
[Notes] m decides printing data:
m Data
1, 49 Hex unloading printing
2, 50 Configuration information printing
3, 51 Cyclic character printing
Printer page check (enabled in label
4, 52
paper mode)
• This command is enabled only when processed at the beginning of the line in standard mode.
• This command is disabled in page mode.
• If this command is received in the process of macro definition, the printer will stop macro definition and execute
this command.
• The printer resets automatically after performing this command.
• The printer cuts paper after executing this command.
• When performing this command, the printer is busy, so it does not receive other commands.
• When m = 4, the printer executes this command. After feeding a certain amount of paper, a diagnostic is calculated,
which is used for functions like page orientation.

GS

[Function] Start/end macro definition.


[Format] ASCII GS :
Hex 1D 3ª
Decimal 29 58
[Notes] • The printer starts macro definition after receiving this command in normal mode. It ends macro
definition after receiving this command in macro definition mode.
• If the printer receives GS ^ in macro definition mode, the printer will end macro definition and clear it.

- 68 -
• Macro definition is off when powered on.
• ESC @ cannot clear macro definition, so it can be included in macro definition.
• The data of macro definition can be 2048 bytes. Data out of 2048 bytes will be processed as normal data.
[Relative] GS ^

①GS V m ②GS V m n

[Function] Select cut paper mode and cut paper.


[Format] ①ASCII GS V m
Hex 1D 56 m
Decimal 29 86 m
②ASCII GS V m n
Hex 1D 56 m n
Decimal 29 86 m n
[Range] ①0 ≤ m ≤ 1, 48≤m ≤ 49
② m = 66, 0 ≤n ≤255
[Notes] m selects cut paper mode as follows:
m Cut paper mode
0,48 Full cut
1,49 Half cut
66 Feed([n ×(vertical motion unit)inches] (feed paper)and half cut
[Notes①] • This command is enabled only when processed at the beginning of the line.
[Notes②] • This command is enabled only when processed at the beginning of the line.
• m = 0, 48, 1, 49, printer cuts paper directly.
• When n = 66, the printer feeds [the distance between print position and cutter + n ×(vertical motion unit)] and cut
paper.
• The horizontal and vertical motion units are specified by GS P.
• Paper feed amount is calculated by vertical motion unit.

GS ^ r t m

[Function] Execute macro definition.


[Format] ASCII GS ^ r t m
Hex 1D 5E r t m
Decimal 29 94 r t m
[Range] 0 ≤ r ≤ 255
0 ≤ t ≤ 255
0 ≤ m ≤ 1,
[Notes] • r specifies times of macro definition.
• t specifies waiting time of macro execution.
• m specifies the mode of macro execution.
• When the LSB of m is 0, the interval time of macro is t × 100 ms, and the macro can be executed r times.
- 69 -
• When the LSB of m is 1, the printer waits for t × 100 ms and does not execute macro definition until user presses
the Feed button with LED flashing. The process can continue r times.
• The waiting time is t × 100 ms.
• If receiving this command during macro definition, the printer will stop macro definition and the macro which is
defined will be cleared.
• If the macro is undefined or r is 0, the command is disabled.
• In the process of macro execution (m = 1), the printer cannot feed by Feed button.
[Relative] GS :

- 70 -
3 Programming Process Guide
Because the different printing status and error can be transmitted by Auto Status Back (ASB) command, it is
recommended that you can use ASB command to inquiry status. ASB command is effective when the printer is
powered on and can be directly sent to inquiry the status.
The recommended programming process is as follows:
1) Verify the printer status.
Make sure that the printer status is normal before sending data to print.
2) Start the printer.
Make sure that the previous setting does not affect the current printing.
3) Set the print content.
Set the print content such as character property, bitmap property, barcode property, and so on for the needed
printing effect.
4) Send the data for printing, including the setup command before printing.
If the printing data is bitmap data, please do not send the status inquiry command before sending printing data.
5) Verify the printer status after printing.
If ASB is enabled, the printer returns the printer status automatically.

- 71 -
Appendix

Appendix A: Code128

A.1 Description of the CODE128

In CODE128 bar code system, it is possible to represent 128 ASCII characters, the one hundred numbers from 00 to
99 and some special characters with three code sets: A, B and C. Each code set is used for representing the following
characters:
• Code set A: ASCII characters 00H to 5FH
• Code set B: ASCII characters 20H to 7FH
• Code set C: 100 numerals from 00 to 99
The following special characters are also available in CODE128:
• SHIFT characters
In code set A, the character just after SHIFT is processed as a character for code set B. In code set B, the character
just after SHIFT is processed as a character for code set A. SHIFT characters cannot be used in code set C.
• Code set selection character (CODE A, CODE B, CODE C).
This character switches the following code set to code set A, B, or C.
• Function character (FNC1, FNC2, FNC3, FNC4)
The usage of function characters depends on the application software. In code set C, only FNC1 is available.

- 72 -
A.2 Code Tables

Characters in CODE A
Transmit Data Transmit Data Transmit Data
Character Character Character
Hex Decimal Hex Decimal Hex Decimal
NULL 00 0 ( 28 40 P 50 80
SOH 01 1 ) 29 41 Q 51 81
STX 02 2 * 2A 42 R 52 82
ETX 03 3 + 2B 43 S 53 83
EOT 04 4 , 2C 44 T 54 84
ENQ 05 5 - 2D 45 U 55 85
ACK 06 6 . 2E 46 V 56 86
BEL 07 7 / 2F 47 W 57 87
BS 08 8 0 30 48 X 58 88
HT 09 9 1 31 49 Y 59 89
LF 0A 10 2 32 50 Z 5A 90
VT 0B 11 3 33 51 [ 5B 91
FF 0C 12 4 34 52 \ 5C 92
CR 0D 13 5 35 53 ] 5D 93
SO 0E 14 6 36 54 ^ 5E 94
SI 0F 15 7 37 55 _ 5F 95
DLE 10 16 8 38 56 FNC1 7B,31 123,49
HC1 11 17 9 39 57 FNC2 7B,32 123,50
HC2 12 18 : 3A 58 FNC3 7B,33 123,51
HC3 13 19 ; 3B 59 FNC4 7B,34 123,52
HC4 14 20 < 3C 60 SHIFT 7B,53 123,83
NAK 15 21 = 3D 61 CODEB 7B,42 123,66
SYN 16 22 > 3E 62 CODEC 7B,43 123,67
ETB 17 23 ? 3F 63
CAN 18 24 @ 40 64
EM 19 25 A 41 65
SUB 1A 26 B 42 66
ESC 1B 27 C 43 67
FS 1C 28 D 44 68
GS 1D 29 E 45 69
RS 1E 30 F 46 70
US 1F 31 G 47 71
SP 20 32 H 48 72

- 73 -
! 21 33 I 49 73
" 22 34 J 4A 74
# 23 35 K 4B 75
$ 24 36 L 4C 76
% 25 37 M 4D 77
& 26 38 N 4E 78
' 27 39 O 4F 79

- 74 -
Characters in CODE B
Transmit Data Transmit Data Transmit Data
Character Character Character
Hex Decimal Hex Decimal Hex Decimal
SP 20 32 H 48 72 p 70 112
! 21 33 I 49 73 q 71 113
" 22 34 J 4A 74 r 72 114
# 23 35 K 4B 75 s 73 115
$ 24 36 L 4C 76 t 74 116
% 25 37 M 4D 77 u 75 117
& 26 38 N 4E 78 v 76 118
' 27 39 O 4F 79 w 77 119
( 28 40 P 50 80 x 78 120
) 29 41 Q 51 81 y 79 121
* 2A 42 R 52 82 z 7A 122
+ 2B 43 S 53 83 { 7B,7B 123,123
, 2C 44 T 54 84 | 7C 124
- 2D 45 U 55 85 } 7D 125
. 2E 46 V 56 86 — 7E 126
/ 2F 47 W 57 87 DEL 7F 127
0 30 48 X 58 88 FNC1 7B,31 123,49
1 31 49 Y 59 89 FNC2 7B,32 123,50
2 32 50 Z 5A 90 FNC3 7B,33 123,51
3 33 51 [ 5B 91 FNC4 7B,34 123,52
4 34 52 \ 5C 92 SHIFT 7B,53 123,83
5 35 53 ] 5D 93 CODEA 7B,41 123,65
6 36 54 ^ 5E 94 CODEC 7B,43 123,67
7 37 55 _ 5F 95
8 38 56 ` 60 96
9 39 57 a 61 97
: 3A 58 b 62 98
; 3B 59 c 63 99
< 3C 60 d 64 100
= 3D 61 e 65 101
> 3E 62 f 66 102
? 3F 63 g 67 103
@ 40 64 H 68 104
A 41 65 i 69 105
B 42 66 j 6A 106
C 43 67 k 6B 107

- 75 -
D 44 68 l 6C 108
E 45 69 m 6D 109
F 46 70 n 6E 110
G 47 71 o 6F 111
Characters in CODE C
Transmit Data Transmit Data Transmit Data
Character Character Character
Hex Decimal Hex Decimal Hex Decimal
00 00 0 40 28 40 80 50 80
01 01 1 41 29 41 81 51 81
02 02 2 42 2A 42 82 52 82
03 03 3 43 2B 43 83 53 83
04 04 4 44 2C 44 84 54 84
05 05 5 45 2D 45 85 55 85
06 06 6 46 2E 46 86 56 86
07 07 7 47 2F 47 87 57 87
08 08 8 48 30 48 88 58 88
09 09 9 49 31 49 89 59 89
10 0A 10 50 32 50 90 5A 90
11 0B 11 51 33 51 91 5B 91
12 0C 12 52 34 52 92 5C 92
13 0D 13 53 35 53 93 5D 93
14 0E 14 54 36 54 94 5E 94
15 0F 15 55 37 55 95 5F 95
16 10 16 56 38 56 96 60 96
17 11 17 57 39 57 97 61 97
18 12 18 58 3A 58 98 62 98
19 13 19 59 3B 59 99 63 99
20 14 20 60 3C 60 FNC1 7B,31 123,49
21 15 21 61 3D 61 CODEA 7B,41 123,65
22 16 22 62 3E 62 CODEB 7B,42 123,66
23 17 23 63 3F 63
24 18 24 64 40 64
25 19 25 65 41 65
26 1A 26 66 42 66
27 1B 27 67 43 67
28 1C 28 68 44 68
29 1D 29 69 45 69
30 1E 30 70 46 70
31 1F 31 71 47 71

- 76 -
32 20 32 72 48 72
33 21 33 73 49 73
34 22 34 74 4A 74
35 23 35 75 4B 75
36 24 36 76 4C 76
37 25 37 77 4D 77
38 26 38 78 4E 78
39 27 39 79 4F 79

Appendix B: Print mode and its change

B.1 General description

The printer operates in two print modes: standard mode and page mode. In standard mode, the printer prints and
feeds paper each time it receives print data or paper feed commands. In page mode, all the received print data and
paper feed commands are processed in the specified memory, and the printer executes no operation. All the data in
the memory is then printed when an ESC FF or FF command is received.
For example, when the printer receives the data "ABCDEF" <LF> in standard mode, it prints "ABCDEF" and feeds the
paper by one line. In page mode, "ABCDEF" is written to the specified printing area in memory, and the position in
memory for the next print data is shifted by one line.
The ESC L command puts the printer into page mode, and all commands received thereafter are processed in page
mode. Executing an ESC FF command prints the received data collectively, and executing an FF command restores
the printer to standard mode after the received data is printed collectively. Executing an ESC S command restores
the printer to standard mode without printing the received data in page mode; the received data is cleared from
memory instead.

Figure B.1 Shifting Between Standard Mode and Page Mode

B.2 Setting values in standard and page modes

The available commands and parameters are the same for both standard and page modes. However, these values
can be set independently in each mode for the ESC SP, ESC 2, ESC 3, and FS S commands. For these commands,
different settings can be stored for each mode.
B.3 Formatting of Print Data in the Printable Area
1) The printable area is set by ESC W. If all printing and feeding operations are complete before the printer receives
the ESC W command, the left side (as you face the printer) is taken as the origin (x0, y0) of the printable area.
The printable rectangular area is defined by the length (dx dots) extending from and including the origin (x0, y0)
in the x direction (perpendicular to the paper feed direction), and by the length (dy dots) in the y direction (paper

- 77 -
feed direction). (If the ESC W command is not used, the printable area remains the default value.)
2) When the printer receives print data after ESC W sets the printable area and ESC T sets the printing direction,
the print data is formatted within the printable area so that point A in Figure B.2 is at the beginning of the
printable area as a default value. (When a character is printed, point A is the baseline.) Print data containing
downloaded bit images or bar codes is formatted so that the bottom point of the left side of the image data
(point B in Figure B.3) is aligned with the baseline.
3) If the print data (including character spacing) exceeds the printable area before the printer receives a command
(e.g., LF or ESC J) that includes line feeding, a line feed is executed automatically within the printable area. The
print position, therefore, moves to the beginning of the next line. The line feed amount depends on the values
set by commands (such as ESC 2 and ESC 3).
4) The default value of the line spacing is set to 1/6 inch and corresponds to 31 dots in the vertical direction. If
print data for the next line contains extended characters that are higher than double-height characters, bit
images taking up two or more lines, or bar codes higher than normal characters, the amount of line feeding
may be insufficient, resulting in overlapping of the characters' higher-order dots with the previous line. To avoid
this, increase the amount of line spacing.
Example
When printing a downloaded bit image of six bytes in the vertical direction, use the following formula:
{number of vertical dots (8×6) - number of dots for feeding at the beginning of the printable area (24)} × vertical
motion unit (203/203) = 24
Therefore, 24 dots are required for feeding.
Use the following commands:
ESC W xL, xH, yL, yH, dxL, dxH, dyL, dyH
ESC T n
ESC 3 24  Set line spacing to be added.
LF
GS / 1
ESC 2 Reset the line spacing to 1/6 inch.

Figure B.2 Character Data Developing Position

Figure B.3 Print Data Developing Position

Figure B.4 Downloaded Bitmap Developing Position

Appendix C: Command index

Command Function
HT Horizontal tab
LF Print and line feed

- 78 -
FF Print and paper feed
CR Print and carriage return
CAN In page mode, delete all the print data in buffer area.
DLE EOT Real-time status transmission
DLE ENQ Real-time request
ESC FF Print data in page mode
ESC SP Set right-side character spacing
ESC ! Select print mode
ESC $ Set horizontal absolute print position.
ESC % Select/cancel user-defined character set
ESC & Define user-defined characters
ESC * Select bitmap mode
ESC - Select/cancel underline mode
ESC 2 Select default line spacing
ESC 3 n Select line spacing
ESC ? Cancel user-defined characters
ESC @ Initialize printer
ESC D Set horizontal tab positions
ESC E Select/cancel emphasized mode
ESC G Select/cancel double-strike printing mode
ESC J Print and feed paper
ESC L Select page mode
ESC M Select character font
ESC R Select an international character set
ESC S Select standard mode
ESC T Select the print direction in page mode.
ESC V Turn 90° clockwise rotation mode on/off
ESC W Set printing areain page mode
ESC \ Set relative horizontal printing area
ESC a Select justification
ESC c 5 Enable/disable panel buttons
ESC d Print and feed n lines
ESC t Select the code page
ESC { Turn on/off upside-down printing mode
GS FF Position the marked paper
GS ! Select character size
GS $ Set the absolute vertical position in page mode

- 79 -
GS * Define the bitmap to be downloaded
GS / Print downloaded bitmap
GS : Turn on/off micro definition
GS B Turn on/off white/black reverse printing mode
GS H Select the printing position of HRI characters
GS L Set left margin
GS V Select cut paper mode
GS W Set printable area width
GS \ Set relative vertical position in page mode
GS ^ Execute macro definition
GS a Enable/Disable Automatic Status Back (ASB)
GS f Select a font for the HRI characters
GS h Select barcode height
GS k Print barcode
GS r Status back
GS v 0 Print raster bitmap
GS w Set barcode width
FS ! Set the print mode for Chinese characters
FS & Select Chinese character mode
FS - Turn underline mode on/off for Chinese characters
FS . Cancel Chinese character mode
FS 2 Define user-defined Chinese characters
FS S Set left-side and right-side Chinese character spacing
FS W Turn quadruple-size mode on/off for Chinese characters
FS p Print NV bitmap
FS q Define NV bitmap
GS s Set parameters of GS1 barcode
ESC r Enter\Exit double color mode
ESC C Select print color
ESC c : Choose paper-saving mode
GS ( Upside-downmode command
GS { Watermark mode command
FS r NV grayscale bitmap download
ESC c RAM grayscale bitmap command

- 80 -

You might also like