IntelliTech IntelliBar Mi Series Manual

Programmer’s Guide
IntelliTech International, Inc.
43 Broad Street
Section B404
Hudson, MA 01749
TEL: (978) 212-7200
FAX: (978) 562-5678
www.intellitech-intl.com
sales@intellitech-intl.com
MiSeries
IntelliTech International, Inc.


Thermal Printer Programmer’s Guide
IntelliTech International, Inc.
Copyright
Copyright ©2012. All rights reserved.
No part of this document may be reproduced or utilized in any form or by any means
electronic or mechanical, including photocopying, recording or by any information
storage and retrieval system, without permission in writing from IntelliTech International.
Published in the United States of America by:
IntelliTech International, Inc.
43 Broad Street
Section B404
Hudson, MA 01749
Notice
To the best of our knowledge, the information in this publication is accurate: however,
IntelliTech International does not assume any responsibility or liability for the accuracy or
completeness of, or consequences arising from, such information. This document is
intended for informational purposes only. Mention of trade names or commercial
products does not constitute endorsement or recommendation for use by IntelliTech
International. Final determination of the suitability of any information or product for use
contemplated by any user, and the manner of that use is the sole responsibility of the
user. We recommend that anyone intending to rely on any recommendation of materials
or procedures mentioned in this publication should satisfy himself as to such suitability,
and that he can meet all applicable safety and health standards.
All trademarks and registered trademarks appearing in this document are the property of
their respective owners.
Document Number: OE1000PG
Revision: A


Thermal Printer Programmer’s Guide
Table of Contents
IntelliTech International, Inc.
Table of Contents
1. Programmer’s Guide
Overview ............................................................................................................1
Scope .................................................................................................................1
Referenced Documents ...................................................................................1
Trademark References .....................................................................................1
IntelliTech Commands .....................................................................................3
PCL Language ..................................................................................................3
PCL Command Structure ..............................................................................3
Fonts and Symbol Sets Supported ...............................................................6
IntelliTech Mi Series Barcode Command Structure ....................................11
PJL (Printer Job Language) Commands ......................................................18
Standard PJL Commands ...........................................................................18
PJL File System Commands .......................................................................20
PJL FSINIT Command ................................................................................20
PJL INFO Read-Back Command ................................................................21
PJL JOB Command ....................................................................................23
PJL PERFORM Command .........................................................................23
PJL Head Cleaning Procedure/Command ..................................................24
PJL Cutter, Rewinder, and Ribbon Assembly Self-Test Commands ..........25
PJL GPIO Self Test ....................................................................................26
PJL GPIO Wrap Test .................................................................................26
PJL GPIO Read Test .................................................................................26
PJL GPIO Write Test ..................................................................................27
PJL CONFIG Command .............................................................................27
PJL UPGRADE Command ..........................................................................28
PJL Variables ..............................................................................................29
PJL Internal Variables .................................................................................35
Defining Internal Variables ..........................................................................35
PJL Increment Command ...........................................................................36
PJL Date/Time Command ...........................................................................36
Command Pass-Through for Windows Barcode Printing ..........................41
How it Works ...............................................................................................41
General Pass-Through Format ...................................................................41
..........................................................................................................................43
2. Appendix A
Printer Model Printable Print Widths ........................................................... 45
3. Appendix B

1 Thermal Printer Programmer’s Guide
IntelliTech International, Inc. Programmer’s Guide | 1
1 Programmer’s Guide
Overview
This Programmer’s Guide provides information about printer specific commands that are
supported by the following printer(s):
•Mi46
• Mi48E
• Mi410
• Mi46A
• Mi610
The IntelliTech International, Inc. (IntelliTech) Mi Series Thermal Printer barcode label
printer page description language is based on Hewlett Packard®PCL 5e. Because this
language does not have native support for barcode printing, IntelliTech has extended the
language by adding barcode specific commands. Methods exist to print barcodes in a
Windows®environment without using these new commands. Examples include using
commercially available barcode fonts or label design packages.
There are many ways to print barcodes from Windows applications, including the popular
authoring software Microsoft Word. This document describes a basic method for adding
barcodes to Windows applications when using the IntelliTech Thermal Printer Windows
Print Driver.
Scope
This document describes IntelliTech PCL barcode commands, internal variable
commands and various commands specific to thermal print devices. Additionally, a
method for embedding these commands in Windows applications is presented, allowing
the user to include barcodes in their documents directly. Knowledge of PCL is helpful but
not required. A full explanation of PCL is beyond the scope of this guide but many PCL
reference manuals may be found online.
Referenced Documents
The following documents referenced herein shall apply unless otherwise superseded by
requirements specified elsewhere in this document.
• Hewlett Packard Corporation, "PCL 5 Printer Technical Reference Manual"
• Hewlett Packard Corporation, "HP PCL/PJL Technical Reference Manual"
Trademark References
Intellifont and Garth Graphic are U.S. registered trademarks of Agfa Division, Miles Inc.

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 2
CG Triumvirate and Shannon are trademarks of Agfa Division, Miles Inc.
CG Bodoni, CG Century Schoolbook, CG Goudy Old Style, CG Melliza, Microstyle, CG
Omega, CG Palacio,
CG Times and CG Trump Mediaeval are products of Agfa Division, Miles Inc.
CG Times, a product of Agfa Division, Miles Inc., is based on Times New Roman, a U.S.
registered trademark of Monotype Corporation plc.
PCL and Vectra are U.S. registered trademarks of Hewlett-Packard Company.
Resolution Enhancement is a trademark of Hewlett-Packard Company.
IBM is a registered trademark of International Business Machines Corporation.
Microsoft, Windows, and MS-DOS are U.S. registered trademarks of Microsoft
Corporation.
TrueType and Macintosh are registered trademarks of Apple Computer, Inc.
PostScript is a registered trademark of Adobe Systems, Inc.
Centronics is a U.S. registered trademark of Centronics Corporation.
ITC Avant Garde Gothic, ITC Benguiat, ITC Bookman, ITC Cheltenham, ITC Galliard,
ITC Korinna, ITC Lubalin Graph, ITC Souvenir, ITC Zapf Chancery and ITC Zapf
Dingbats are U.S. registered trademarks of International Typeface Corporation.
ITC Tiffany is a trademark of International Typeface Corporation.
Futura is a U.S. registered trademark of Fundicion Tipografica Neufville, S.A.
Serifa is a trademark of Fundicion Tipografica Neufville,
S.A. Letraset is a registered trademark of Esselte Pendaflex Corporation.
Revue and University Roman are trademarks of Esselte Pendaflex Corporation.
Helvetica and Times Roman are trademarks of Linotype AG and its subsidiaries.
Univers is a U.S. registered trademark of Linotype AG and its subsidiaries.
Antique Olive is a trademark of Monsieur Marcel OLIVE.
Arial and Gill Sans are registered trademarks of The Monotype Corporation plc.

IntelliTech International, Inc. Programmer’s Guide | 1
3 Thermal Printer Programmer’s Guide
IntelliTech Commands
There are frequent references to Hewlett Packard’s (HP) PCL Technical Reference
Manual (TRM). This document can be found on HP’s website listed in the Referenced
Documents above. IntelliTech provides unique commands not within the command set
found in the HP’s PCL TRM. No command defined within this document supersedes or
negates any commands found within the PCL TRM. This does not imply that all
commands defined within the PCL TRM are implemented by the IntelliTech Mi Series
Barcode Label Printers. Many commands found within the PCL TRM are irrelevant within
the context of the IntelliTech Mi Series Barcode Label Printer. Examples of these are
commands for selecting discrete pages sizes such as Letter, Legal, A4, and Executive.
Features such as duplexing and stapling do not currently exist in IntelliTech Mi Series
Barcode Printers and these commands, if found within the data stream, are silently
ignored without error.
PCL Language
PCL Command Structure
General Information
As per Hewlett Packard’s specification on the syntax of escape sequences, there are two
forms of PCL escape sequences: two-character escape sequences and parameterized
escape sequences.
Two character escape sequences have the following form:
<ESC>X
“X” is a character that defines the operation to be performed. Two examples of two-
character escape sequences are <ESC>E and <ESC>9. The first example resets the
printer to default conditions and the second resets the left and right margins to their
default value. The value of “X” may be any character within the range 0x30 – 0x7E.
Parameterized escape sequences have the following form:
<ESC>X y z1 [+|-]#[.#] z2 [+|-]#[.#] z3 … [+|-]#[.#] Zn[data]
The following characters y, #, zi and data may be optional. The parameterized character
X is within the range of 0x21 – 0x2F. The group character “y” is within the range of 0x60
– 0x7E. Group characters specify the type of control being performed.
Table 1: Parameterized Character <ESC> X...
Character (X) Symbol Purpose
0x21 ! Reserved for debug firmware
0x22 “ Not Used
0x23 # Not Used
0x24 $ IntelliBar Mi Series Barcode Parameter

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 4
The value field ‘#’ is a group of characters specifying a numeric value. The value is an
ASCII string of characters within the range 0x30 – 0x39. The string may be preceded
with an optional ‘+’ or ‘-‘ sign and may contain a decimal portion separated by the
decimal point. Consider the following example:
<ESC>&l5.81C
This command will set the printer to print 33 lines per label on a 4 inch high label. The
value specified is the number of 1/48 inch increments between rows (5.81 = 4/33 x 48).
The parameter character is any character from the ASCII table within the range of 0x60 –
0x7E. This character specifies the parameter to which the previous value field applies.
This character is used when combining escape sequences as described below in the
section titled “Combining Escape Sequences.”
The Termination Character is any character from the ASCII table within the range 0x40 –
0x5E. This character specifies the parameter to which the previous value field applies.
This character terminates the escape sequence.
The Binary Data is eight-bit data (for example, graphics data, downloaded fonts, etc.).
The number of bytes of binary data is specified by the value field of the escape
sequence. Binary data immediately follows the terminating character of the escape
sequence. Data that is to be encoded into barcode images will be considered as binary
data.
Combining Escape Sequences
All escape sequences that have the same first two characters AFTER the “<ESC>” (the
parameterized and group character) can be combined into a single escape sequence.
For example, the three commands (each begins with the <ESC> character) are of the
type “EC&l”.
0x25 % PCL Language Parameter
0x26 & PCL Cursor Parameter
0x27 ‘ Not Used
0x28 ( PCL Font Parameter
0x29 ) PCL Font Parameter
0x2A * PCL Graphic Parameter
0x2B + Not Used
0x2C , Not Used
0x2D - Not Used
0x2E . Not Used
0x2F / Not USed
Character (X) Symbol Purpose

IntelliTech International, Inc. Programmer’s Guide | 1
5 Thermal Printer Programmer’s Guide
The following:
<ESC>&l1O<ESC>&l2A <ESC>&l5.81C
can be combined into the following single escape sequence:
<ESC>&l1o2a5.81C
In the example above, the capital ‘O’ becomes a lower case ‘o’, the ‘A’ of the second
command becomes an ‘a’ and the ‘EC&l’ are dropped from the second and third
commands. The printer commands are performed in the order they are combined, from
left to right.
Barcode Clipping
PCL normally clips print objects at the dot level on the logical page boundary. Barcodes
clipped in this manner can easily go undetected. Because of this, any portion of a
barcode that falls beyond the boundaries of the logical print area will be dropped and a
shaded rectangle will be printed, inscribing the area within the logical print page where
the barcode would have been. This will provide visual evidence to the user the barcode
has been clipped and is therefore invalid.
Barcodes that are not generated internally by the printer will not be clipped in this
manner and may not be readable by scanning devices.
Cursor Positioning Commands
The PCL cursor refers to the Current Active Position (CAP) which identifies the current
position on the label where a print command begins laying out page data. The cursor can
be moved anywhere within the logical page using a combination of the horizontal and
vertical cursor position commands and control codes. Although there are many different
ways to move the cursor, there are three types of cursor positioning units. These include
PCL Units, Decipoints, and Row/Column units.
The size of a PCL unit is determined by the value specified by the Unit of Measure
command. The format of this command is <ESC>&u#D where # is the number of units
per inch. The “units per inch” value is a discrete value from the following set of values:
{96, 100, 120, 144, 150, 160, 180, 200, 225, 240, 288, 300, 360, 400, 450, 480, 600,
720, 800, 900, 1200, 1440, 1800, 2400, 3600, and 7200}. If the Unit of Measure is not
set, the default value is 300.
A decipoint, in PCL terminology, is 1/720 inch or one-tenth of a PCL point. A PCL point is
exactly 1/72 inch as opposed to a typographic point which is approximately 1/72 inch.
Decipoints are resolution independent. Labels that are designed using units of decipoints
will be resolution independent and are therefore easily portable across PCL printers of
different resolutions. This is the preferred unit of measure in label design.
Cursor Positioning after Printing Barcode
PCL has a procedure for cursor positioning after printing a text character. Set the Current
Active Position (CAP) to the right at a distance equal to the width of that character, ready

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 6
for the next character to be rendered. With raster images, the CAP is moved vertically to
the next dot row below the raster image previously rendered and then returned to the
horizontal start position of the raster image. The terminus CAP of the barcode is
selectable with the commands described below.
Set the Current Active Position (CAP) to the right of the last printed text character at a
distance equal to the width of that character so the next character can be rendered. With
raster images, the CAP is moved vertically to the next dot row below the previously
rendered raster image and returned to the horizontal start position of the raster image.
The terminus CAP of the barcode is selectable with the commands described below.
Orientation and the Influence on Label Dimensions
HP PCL defines the portrait orientation to be the page configuration where the X
dimension moves to the left along the short edge of the paper and the Y dimension
moves downward along the long edge of the paper. This seems perfectly reasonable
until both the label stock and the arbitrary dimensions a label may have on a given roll of
media are considered. As an example, for the common label stock size of 4” by 6”, it is
obvious the label is in the portrait orientation. For 4” by 3” label stock, HP PCL regards
this label as being in the landscape orientation and will automatically rotate the text,
images, rules, and coordinates by 90 degrees to maintain the portrait orientation with
respect to the shorter distance on the side. This may not be what an experienced user of
thermal printers would expect to see. In order for the same image to be produced on a
shorter label, the printer must be programed to produce the image in the landscape
orientation. Orientation takes precedence over label dimensions. If the printer is in the
portrait orientation, HP PCL will rotate the image to align it to the short edge of the label.
This subtle design characteristic may cause problems with users of legacy label printers
therefore we have chosen to modify this behavior to be more in-line with thermal printers.
Fonts and Symbol Sets Supported
Resident Scalable Fonts
The table below provides a list of the 53 resident scalable fonts and the escape
sequence needed to select that font as the current primary font. The <ESC> tag
represents the escape character 0x1B. The <symset> tag represents the symbol set to
use with the selected font (see section 13 below). The <ptsize> tag represents the
requested point size of the font, up to two decimal places. The <pitch> tag represents
horizontal spacing of a fixed pitch font in characters per inch.
Refer to the Symbol Set Mapping Table resident symbol sets. The tags must be replaced
with their appropriate values. Developers may choose to define their own symbol sets.
Note: The resident fonts for your printer may vary in number from those listed in this
table.

IntelliTech International, Inc. Programmer’s Guide | 1
7 Thermal Printer Programmer’s Guide
Table 2: Fonts and Escape Sequences
Font Name Escape Sequence
Albertus Medium <ESC>(<symset><ESC>(s1p<ptsize>v0s1b4362T
Albertus Extra Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s4b4362T
Antique Olive <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4168T
Antique Olive Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4168T
Antique Olive Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b4168T
Arial <ESC>(<symset><ESC>(s1p<ptsize>v0s0b16602T
Arial Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b16602T
Arial Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b16602T
Arial Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s3b16602T
Clarendon Condensed Bold <ESC>(<symset><ESC>(s1p<ptsize>v4s3b4140T
Coronet <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4116T
Courier <ESC>(<symset><ESC>(s0p<pitch>h0s0b4099T
Courier Italic <ESC>(<symset><ESC>(s0p<pitch>h1s0b4099T
Courier Bold <ESC>(<symset><ESC>(s0p<pitch>h0s3b4099T
Courier Bold Italic <ESC>(<symset><ESC>(s0p<pitch>h1s3b4099T
Garamond Antiqua <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4197T
Garamond Kursiv <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4197T
Garamond Halbfett <ESC>(<symset><ESC>(s1p<ptsize>v0s3b4197T
Garamond Kursiv Halbfett <ESC>(<symset><ESC>(s1p<ptsize>v1s3b4197T
Letter Gothic <ESC>(<symset><ESC>(s0p<pitch>h0s0b4102T
Letter Gothic Italic <ESC>(<symset><ESC>(s0p<pitch>h1s0b4102T
Letter Gothic Bold <ESC>(<symset><ESC>(s0p<pitch>h0s3b4102T
Marigold <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4297T
CG Omega <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4113T
CG Omega Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4113T
CG Omega Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b4113T
CG Omega Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s3b4113T
CG Times <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4101T
CG Times Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4101T
CG Times Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b4101T
CG Times Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s3b4101T
Times New Roman <ESC>(<symset><ESC>(s1p<ptsize>v0s0b16901T
Times New Roman Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b16901T
Times New Roman Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b16901T

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 8
Symbol Sets
Symbol sets are used to map character codes to the associated character image. The
most familiar symbol set is the ASCII character mapping for characters occupying the
character codes ranging from 0x20, which is the space character, through 0x7E, which is
the tilde ‘~’ character. These symbol sets are used to support the internationalization of
labels.
Table 3: Symbol Sets
Times New Roman Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s3b16901T
Univers Medium <ESC>(<symset><ESC>(s1p<ptsize>v0s0b4148T
Univers Medium Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s0b4148T
Univers Bold <ESC>(<symset><ESC>(s1p<ptsize>v0s3b4148T
Univers Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v1s3b4148T
Univers Condensed Medium <ESC>(<symset><ESC>(s1p<ptsize>v4s0b4148T
Univers Condensed Medium Italic <ESC>(<symset><ESC>(s1p<ptsize>v5s0b4148T
Univers Condensed Bold <ESC>(<symset><ESC>(s1p<ptsize>v4s3b4148T
Univers Condensed Bold Italic <ESC>(<symset><ESC>(s1p<ptsize>v5s3b4148T
Symbol <ESC>(19M<ESC>(s1p<ptsize>v0s0b16686T
Wingdings <ESC>(579L<ESC>(s1p<ptsize>v0s0b31402T
OCR A <ESC>(<symset><ESC>(s1p<pitch>h0s0b23584T
OCR A Fixed <ESC>(<symset><ESC>(s0p<pitch>h0s0b23584T
OCR B <ESC>(<symset><ESC>(s1p<pitch>h0s0b23590T
OCR B Fixed <ESC>(<symset><ESC>(s0p<pitch>h0s0b23590T
VeraMono <ESC>(<symset><ESC>(s1p<ptsize>v3s0b23410T
CG Triumvirate <ESC>(<symset><ESC>(s1p<ptsize>v0s0b26708T
CG Triumvirate Bold Condensed <ESC>(<symset><ESC>(s1p<ptsize>v0s0b26714T
PCL
Symbol Set
PJL Symbol
Name
Control
Panel Name
Symbol Set Description
10U PC8 PC-8 PC-8
8U ROMAN8 Roman-8 Roman-8
4U ROMAN9 Roman-9 Roman-9
0N ISOL1 ISO-L1 ISO 8859-1 Latin 1
2N ISOL2 ISO-L2 ISO 8859-2 Latin 2
4N ISOL4 ISO-L4 ISO 8859-4 Latin 4
5N ISOL5 ISO-L5 ISO 8859-9 Latin 5
Font Name Escape Sequence

IntelliTech International, Inc. Programmer’s Guide | 1
9 Thermal Printer Programmer’s Guide
6N ISOL6 ISO-L6 ISO 8859-10 Latin 6
9N ISOL9 ISO-L9 ISO 8859-15 Latin 9
26U PC775 PC-775 PC-775
5M PSMATH PS MATH PS-Math
8M MATH8 MATH-8 Math-8
15U PIFONT IP FONT Pi Font
6J MSPUBL MS PUBL Microsoft Publishing
11U PC8DN PC-8 DN PC-8 Danish/Norwegian
12U PC850 PC-850 PC-850 Multilingual
17U PC852 PC-852 PC-852
13U PC858 PC-858 PC-858 Multilingual
9T PC8TK PC-8 TK PC-Turkish
9J PC1004 PC-1004 PC-1004
19U WINL1 WIN L1 WIndows CP1252 Latin 1
9E WINL2 WIN L2 Windows CP1250 Latin 2
5T WINL5 WIN L5 Windows CP1254 Latin 5
19L WINBALT WINBALT Windows CP1257 Baltic
7J DESKTOP DESKTOP Desktop
10J PSTEXT PS TEXT PS Text
1U LEGAL LEGAL Legal
1E ISO4 ISO-4 United Kingdom Code Set
0U ISO6 ISO-6 7 Bit ASCII Code Set
0S ISO11 ISO-11 7 Bit Western Europe (Swedish)
0I ISO15 ISO-15 7 Bit Western Europe (Italian)
2S ISO17 ISO-17 7 Bit Western Europe (Spanish)
1G ISO21 ISO-21 7 Bit Western (German)
0D ISO60 ISO-60 7 Bit Western Europe (Norwegian)
1F ISO69 ISO-69 7 Bit Western Europe (French)
9U WIN30 WIN 3.0 Windows CP1252 (obsolete)
12J MCTEXT MC TEXT MC Text
18N UCS2 UCS-2 Unicode 2 Byte Encoding
0E ROMANEXT RomanExt Roman Extensions
579L WINGDINGS WindDings Wingdings Font
14L ZAPDINGBATS ZapDingBats Windows Dingbats Font
PCL
Symbol Set
PJL Symbol
Name
Control
Panel Name
Symbol Set Description

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 10
The table below (PC-850 Symbol Set) is an example of character code mapping and the
character image associated with that code.
Figure: 1 - 1 PC-850 Symbol Set
19M SYMBOL Symbol Symbol Font
PCL
Symbol Set
PJL Symbol
Name
Control
Panel Name
Symbol Set Description
12U PC85

IntelliTech International, Inc. Programmer’s Guide | 1
11 Thermal Printer Programmer’s Guide
IntelliTech Mi Series Barcode Command Structure
Command Structure Syntax
As stated earlier, printer commands are performed in the order that they are combined,
from left to right. There are several barcode parameters that are only relevant to a subset
of the total number of barcodes provided.
All IntelliTech Mi Series barcodes and their support parameters will begin with the
following sequence:
<ESC>$b... 0x1b 0x24 0x62
There are several escape commands associated with barcodes. Any escape command
that modifies a property of a barcode will only affect the currently selected barcode. For a
label design with multiple barcode types, modification of one or more barcode properties
does not affect the properties of any other barcode type.
The following commands illustrate how one might handle modifying the default
parameters for multiple barcode types on a single label. Note that the examples below
have line numbers. For ease of reading each line is separated by a carriage return and
line feed. When sending this data to the printer, all the lines in the examples should NOT
have a carriage return and line feed except where you see the symbol “CRLF”. The
“CRLF” symbol indicates a carriage return/line feed combination should be inserted into
the data stream. The “<ESC>” symbol indicates the escape character (hex value 0x1B)
should be inserted into the data stream.
Table 4: Example of Printing Barcodes (Compressed Commands)
Commands Description
<ESC>%-12345X@PJL SET RESOLUTION =
300CRLF
Reset the printer and enter into PJL mode, Set the
resolution to 300 DPI
@PJL SET PAPERWIDTH=2880CRLFSet the label width to 2880 decipoints (4 inches)
@PJL SET PAPERLENGTH=2880CRLFSet the label length to 2880 decipoints (4 inches)
@PJL ENTER LANGUAGE = PCLCRLFSelect the PCL emulation
<ESC>&a2160h720v270P Set the horizontal cursor position at 2160
decipoints (3 inches) and the vertical cursor
position at 720 decipoints (1 inch) and set the
writing direction at 270 degrees counter clockwise
from horizontal (down the label).
<ESC>$b1030c360h2a10W9876543210 Select barcode 1030 (Code 128 w/ Auto select).
Set the barcode height of this barcode to 360
decipoints and enable autoprint w/ checksum
(human readable). With the currently selected
barcode (1030), print the data 9876543210 (10
bytes of data)

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 12
Table 5: Example of printing Barcodes (Uncompressed Commands
<ESC>&a0p720h540V Set the writing direction to 0 degrees, the horizontal
cursor position at 720 decipoints horizontally (1
inch) and 540 decipoints vertically (¾ inch).
<ESC>$b1061c360h0a10W1234567890 Select barcode 1061 (Interleave 2 of 5 w/ Bearer
Bars), the height of the barcode to 360 decipoints
(1/2 inch), no autoprint and print the following 10
bytes: 1234567890
<ESC>E Reset PCL (this causes any imaged data to be
printed)
<ESC>%-12345X Reset the printer and wait for more PJL commands
Commands Descriptions
<ESC>%-12345X@PJL SET RESOLUTION =
300CRLF
Reset the printer and enter PJL mode
@PJL SET PAPERWIDTH=2880CRLFSet the label width to 2880 decipoints (4 inches)
@PJL SET PAPERLENGTH=2880CRLFSet the label length to 2880 decipoints (4 inches)
@PJL ENTER LANGUAGE = PCLCRLFSelect the PCL emulation
<ESC>&a2160H Set the horizontal cursor position to 2160
decipoints
<ESC>&720V Set the vertical cursor position to 720 decipoints
<ESC>&a270P Set the writing direction to 270 degrees counter
clockwise from horizontal
<ESC>$b1030C Select barcode number 1030 (Code 128 /w Auto
select)
<ESC>$b360H Set the barcode height to 360 decipoints (½ inch)
<ESC>$b2A Enable barcode autoprint with checksum
<ESC>$b10W9876543210 With the current barcode (1030) print the 10 bytes
of data: 9876543210
<ESC>&0P Set the writing direction at 0 degrees.
<ESC>&a720H Set the horizontal cursor position to 720 decipoints
<ESC>&a540V Set the vertical cursor position to 1440 decipoints
<ESC>$b1061C Select barcode number 1061 (Interleave 2 of 5)
<ESC>$b360H Set the barcode height to 180 decipoints (¼ inch)
<ESC>$b0A Disable barcode autoprint for this barcode
<ESC>$b10W0123456789 With the current barcode type (1061) print data
0123456789
Commands Description

IntelliTech International, Inc. Programmer’s Guide | 1
13 Thermal Printer Programmer’s Guide
Comparing the two tables above there is a noticeable difference in the amount of data
saved by compressing the commands. In general, three bytes for each combined
command will be saved. This becomes significant with larger, more complex labels,
especially if the labels will be stored in the printer as macros.
Enable/Disable Barcode Autoprint
The following command will enable or disable human readable autoprint of the barcode
data:
<ESC>$b#A 0x1b 0x24 0x62 <0|1|2> 0x41
The command will affect only those barcodes with a human readable component. The
following arguments are valid:
0 – Disable human readable text
1 – Enable human readable text
2 – Enable human readable with checksum information
Note: The autoprint field is considered part of the barcode object. It is implied that when
the height of the barcode is specified, the height of the autoprint is included in that
barcode height. For example, if a Code 3 of 9 barcode is selected with autoprint in the
normal orientation and has a height of 1 inch, the height is measured from the top of the
barcode to the baseline of the autoprint text.
Select Barcode Type
The following will select the current barcode type:
<ESC>$b#C 0x1b 0x24 0x62 <value> 0x43
Note that all barcode commands below operate on the currently selected barcode. The
table below contains the list of barcodes and their numerical values.
Set Barcode Data Delimiter
The following will select the data delimiter for the currently selected barcode:
<ESC>$b#D 0x1b 0x24 0x62 <value> 0x44
The value parameter is the ASCII value of the character to be used as a delimiter. Refer
to the print barcode data below for a description of the “Print Barcode Data” command
and note how this command extends the capabilities of the “Print Barcode Data”
command. The following combined1command will select the Code 39 barcode, set the
Data Delimiter to the tilde character ‘~’ (ASCII 127) and print the barcode with the data
‘0123456789’.
<ESC>E Reset PCL (print the imaged data)
<ESC>%-12345X Reset the printer and wait for more PJL commands
1. See Section on Combined Escape Sequences.
Commands Descriptions

1 | Programmer’s Guide IntelliTech International, Inc.
Thermal Printer Programmer’s Guide 14
<ESC>$b1000c126d0W0123456789~
In this example the value of the width command is set to zero. This will instruct the printer
to read data after the ‘W’ command until the data delimiter (~) is found. The delimiter is
discarded and not printed. The default value for the data delimiter is the carriage return
(ASCII 13). The delimiter value must be a value not found in the data set being encoded
in the barcode.
Select Error Correction Capacity
The following will set the ECC for 2D barcodes - Datamatrix, PDF417, QR and Aztec.
<ESC>$b#E 0x1b 0x24 0x62 <value> 0x45
Select Barcode Terminating Current Active Position
The following will place the cursor position at the location depicted in the diagram below.
This escape sequence must be sent prior to sending any data that is to appear in the
barcode.
<ESC>$b#F 0x1b 0x24 0x62 <value> 0x46
Figure: 1 - 2 Terminating Current Active Position (CAP)
Select Barcode Height (Decipoints)
The following will set the barcode height in decipoints with 1 decimal.
<ESC>$b#H 0x1b 0x24 0x62 <value> 0x48
If the barcode auto print is enabled prior to sending the barcode data, the height of the
barcode will include the height of any human readable text if enabled. The number of
pixels used in the barcode height will always be rounded. As an example, if the barcode
height is specified to be 97 decipoints, the number of dots used on a 300 DPI printer is
[(97 x 300)/720 = 40.417] and will round down to 40 dots. If the height is specified to be
98 [(98 x 300)/720 = 40.833] the number of dots will be 41. The default barcode height is
720 decipoints (1 inch) for linear barcodes.
Select Barcode Height (PCL Units)
The following will set the barcode height in decipoints with 1 decimal.
This manual suits for next models
5
Table of contents