The default character set of all POS printers is assumed to
support at least the ASCII characters 0x20 through 0x7F, which include spaces,
digits, uppercase, lowercase, and some special characters. If the printer does
not support lowercase characters, then the Service may translate them to
uppercase.
Every escape sequence begins with the escape character ESC, whose value is 27
decimal, followed by a vertical bar ( | ). This is followed by zero or more
digits and/or lowercase alphabetic characters. The escape sequence is terminated
by an uppercase alphabetic character.
If a sequence does not begin with ESC "|", or it begins with ESC "|" but is not
a valid UnifiedPOS escape sequence, the Service will make a reasonable effort to
pass it through to the printer. However, not all such sequences can be
distinguished from printable data, so unexpected results may occur.
Starting with Release 1.11, the application can use the ESC|#E escape
sequence to ensure more reliable handling of the amount of data to be passed
through to the printer. Use of this escape sequence will make an application
non-portable. The application may, however, maintain portability by performing
Embedded Data Escape sequence calls within conditional code. This code may be
based upon the value of the DeviceServiceDescription, the
PhysicalDeviceDescription, or the PhysicalDeviceName property.
NOTE: This command sequence definition and the corresponding definition
in the Point Card Reader Writer Chapter, are the only known deviations from
preserving the interchangeability of devices defined in this specification. If
an application finds it necessary to utilize this command sequence, please
inform the UnifiedPOS Committee (www.nrfarts. org) with the details of its
usage, so that a possible standard/generic Application Interface may be
incorporated into a future release of the UnifiedPOS Standard. In order to
preserve peripheral independence and interoperability at the Application level,
it is the Committee's position that this command sequence should be used only as
a "last resort".
The following
escape sequences are recognized. If an escape sequence specifies an operation
that is not supported by the printer station, then it is ignored.
Commands - Perform indicated action.
Name
Data
Remarks
Paper Cut
ESC |#P
Cuts receipt paper. The character # is replaced by an ASCII
decimal string telling the percentage cut desired. If # is
omitted, then a full cut is performed. For example: The C string
"\x1B|75P" requests a 75% partial cut.
Feed and Paper cut
ESC |#fp
Cuts receipt paper, after feeding the paper by the
RecLinesToPaperCut lines. The character # is defined by
the "Paper cut" escape sequence.
Print bitmap
ESC |#B
Prints the pre-stored bitmap. The character # is replaced by
the bitmap number. See setBitmap method.
Print top logo
ESC |tL
Prints the pre-stored top logo.
Print bottom logo
ESC |bL
Prints the pre-stored bottom logo.
Feed lines
ESC |#lF
Feed the paper forward by lines. The character # is replaced by
an ASCII decimal string telling the number of lines to be fed. If #
is omitted, then one line is fed.
Feed units
ESC |#uF
Feed the paper forward by mapping mode units. The character #
is replaced by an ASCII decimal string telling the number of
units to be fed. If # is omitted, then one unit is fed.
Pass through embedded data (See ESC |#E
Send the following # characters of data through to the hardware
"a" below) without modifying it. The character '#' is replaced by an ASCII
decimal string telling the number of bytes following the escape
sequence that should be passed through as-is to the hardware.
Restriction:
Due to implementation details the amount of data passed to the
printer through this escape sequence is limited to 3.5K. In order
to reach this maximum, this escape sequence must be the only
command in the print request. If the amount of data exceeds
3.5K, then the data maybe corrupted by the JavaPOS Service Object
inserting a buffered status request into the data stream.
a. This escape sequence is only available in version 1.7 and later.
Print Mode - Characteristics that are remembered until explicitly
changed.
Name
Data
Remarks
Font typeface selection
ESC |#fT
Selects a new typeface for the following data. Values for the
character # are:
0 = Default typeface.
1 = Select first typeface from the FontTypefaceList property.
2 = Select second typeface from the FontTypefaceList property. And so on.
Print Line - Characteristics that are reset at the end of each print
method or by a "Normal" sequence.
Name
Data
Remarks
Bold
ESC |bC
Prints in bold or double-strike.
Underline
ESC |#uC
Prints with underline. The character # is replaced by an ASCII
decimal string telling the thickness of the
underline in printer dot units. If # is omitted, then a
printer-specific default thickness is used.
Italic
ESC |iC
Prints in italics.
Alternate Color (Custom)
ESC |#rC
Prints using an alternate custom color. The character # is
replaced by an ASCII decimal string indicating the desired color.
The value of the decimal string is equal to the value of the
cartridge constant used in the printer device properties. If # is
omitted, then the secondary color (Custom Color 1) is selected.
Custom Color 1 is usually red.
Reverse Video
ESC |rvC
Prints in a reverse video format.
Single high & wide ESC |1C Prints normal size.
Double wide
ESC |2C
Prints double-wide characters.
Double high
ESC |3C
Prints double-high characters.
Double high & wide
ESC |4C
Prints double-high/double-wide characters.
Scale horizontally
ESC |#hC
Prints with the width scaled # times the normal size,
where # is replaced by an ASCII decimal string.
Scale vertically
ESC |#vC
Prints with the height scaled # times the normal size, where #
is replaced by an ASCII decimal string.
Center
ESC |cA
Aligns following text in the center.
Right Justify
ESC |rA
Aligns following text at the right.
Normal
ESC |N
Restores printer characteristics to normal condition.
a. These escape sequence are only available in version 1.5 and later.
Escape Sequences to Control the Two-Sided Functionality within a Mode
The following escape sequences are used to control the two-sided functionality
through JavaPOS. These escape sequences take advantage of the JavaPOS "Pass through
embedded data" escape sequence. All of these escape sequences must be wrapped by
this "Pass through embedded data ESC|#E" to be recognized.
The values set by these escape sequences are only valid for the current instance
of the JavaPOS service. If the device is set to disabled, then the configured
settings are restored on the next enable.
The functionality provided by these escape sequences depends on the current
TST2SideMode configuration setting. For some settings, they may be ignored
and have no effect. All numeric parameters are ASCII characters for numeric
values.
Escape Sequence
Functionality
Possible Values
ESC [2ST; 1; 1; n !v
Sets the front side print
n = 0 : No rotation of printing
orientation = 1 : 180-degree rotation (upside down)
ESC [2ST; 1; 2; n !v
Sets the back side print
n = 0 : No rotation of printing
orientation = 1 : 180-degree rotation (upside down)
ESC [2ST; 1; 3; n !v
Switches Front / Back
n = 0 : Normal (front side faces toward front of the printer)
printing = 1 : Swapped (front side faces away from the front of the printer)
ESC [2ST; 1; 4; n !v
Enables / disables predefined
n = 0 : Disable
Reprint on Error message = 1 : Enable
ESC [2ST; 2; 1; n !v
Enables / disables predefined
n = 0 : Disable
Bottom Front message = 1 : Enable
ESC [2ST; 2; 2; n !v
Enables / disables predefined
n = 0 : Disable
Top Back message = 1 : Enable
ESC [2ST; 2; 3; x; y; z !v
Sets attributes for a
x = 0 : Front
predefined Bottom Front / = 1 : Back
Top Back / Reprint message = 2 : Reprint
y = 1 : First Line
= 2 : Second Line
z = 0x1 : Double High
0x4 : Double Wide
0x10 : Emphasize Mode
0x40 : 1 Dot Underline Mode
0x100 : Inverse Video
0x400 : Italic
0x1000 : 2 Dot Underline Mode
0x4000 : Alternate Color
Adding all attribute values together would equal to
0x5555.
NOTE: Parameter z is coded as ASCII characters, but
they represent a Hex-based number.
ESC [2ST; 2; 4; x; y !v [text]
Sets the string for a
x = 0 : Front
predefined Bottom Front / = 1 : Back
Top Back / Reprint message = 2 : Reprint
y = 1 : First Line
= 2 : Second Line
text = ASCII character to define pre-defined lines.
ESC [2ST; 3; n !v [
Download a specified image
n = 0, and the directory/filename is NULL, Clear
directory/filename] to back side the back side image.
n = 0, and the directory/filename is a existed image,
download it to the back side.
ESC [2ST; 4; n !v [text]
Defines variable print data.
n = 1-50 : Corresponds to the variable to define
it allows a dynamic text = ASCII string to assign to the variable. It only
definition of predefined allows a maximum of 57 characters. Characters
variables embedded in static beyond 57 are ignored.
images.
The escape sequences defined above that set the 2ST modes and change the
pre-defined text values must be sent in their own Transaction print. They should
be sent either before any Receipt is printed or between Receipt Transaction
prints. They should not be sent as part of a Receipt. This is because they do
not take effect until the next Transaction print.
The only exception is the ESC [2ST; 4; n !v [text] which defines the dynamic
data for pre-defined variables in reverse side images. This escape sequence is
intended to define text to be printed as part of the current Receipt.
Special Escape Sequences to Switch between Modes
The following escape sequence is used to dynamically change the way JavaPOS handles
two-sided printing. Because this sequence is changing the mode of operation, it
is only valid under certain conditions. It sets the mode in the same manner as
if the Claim had been performed with this mode configured in the
TST2SideMode option.
Escape Sequence
Functionality
Possible Values
ESC [2ST; 5; n !v
Sets the printer's mode of
n = 0 : Single Sided Mode
operation This parameter is only valid immediately after a knife cut,
before any other print orientation is sent to the
printer. It is ignored if the printer is already processing
data.
= 1 : Double Sided Mode with Single Side Command
If in mode 0, this is valid only if there are no
outstanding print operations. If in a two-sided mode,
the same restrictions as listed in mode 0 apply.
= 2 : Double Sided Mode with Double Side
Command
If in mode 0, this is valid only if there are no
outstanding operations. If in a two-sided mode, the
same restrictions in mode 0 apply.
= 3 : Double Sided Mode with Predefined Data
If in mode 0, this is valid only if there are no
outstanding operations. If in a two-sided mode, the
same restrictions in mode 0 apply.
Select Print Side Sequence
This special sequence is only valid when mode 2 (Double Sided Mode with Double Side Command) is selected. If any other mode is selected, it is ignored.
This escape sequence is used within a transactionPrint to designate which
side of the thermal paper subsequent print operations are performed.
Escape
Sequence
Functionality Possible Values
ESC [2ST; 6; n !v
Selects the side to print data on
n = 0 : Send data to front side of paper
= 1 : Send data to back side of paper
Once this command is issued, all print operations continue to be sent to that
side of the paper until the sequence is sent again to change it, or until a
transactionPrint(PTR_TP_NORMAL) is issued.
After transaction printing has completed, the current side is always reset to
the front side of the paper.