Corporate Headquarters
6001 36th Ave. W.
Everett, WA 98203
U.S.A.
www.intermec.com
The information contained herein is proprietary and is provided solely for the purpose of allowing customers
to operate and service Intermec-manufactured equipment and is not to be released, reproduced, or used for
any other purpose without written permission of Intermec.
Information and specifications contained in this document are subject to change without prior notice and do
not represent a commitment on the part of Intermec Technologies Corporation.
2003 by Intermec Technologies Corporation. All rights reserved.
The word Intermec, the Intermec logo, Norand, ArciTech, CrossBar, Data Collection Browser, dcBrowser,
Duratherm, EasyCoder, EasyLAN, Enterprise Wireless LAN, EZBuilder, Fingerprint, i-gistics, INCA (under
license), InterDriver, Intermec Printer Network Manager, IRL, JANUS, LabelShop, Mobile Framework,
MobileLAN, Nor*Ware, Pen*Key, Precision Print, PrintSet, RoutePower, TE 2000, Trakker Antares, UAP,
Universal Access Point, and Virtual Wedge are either trademarks or registered trademarks of Intermec
Technologies Corporation.
Throughout this manual, trademarked names may be used. Rather than put a trademark ( or ) symbol in
every occurrence of a trademarked name, we state that we are using the names only in an editorial fashion,
and to the benefit of the trademark owner, with no intention of infringement.
There are U.S. and foreign patents pending.
Bluetooth is a trademark of Bluetooth SIG, Inc., U.S.A.
ii EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 3
Document Change Record
This page records changes to this document. The document was originally released as version 001.
Version Date Description of Change
002 6/03 Changed Bluetooth information in Chapter 13.
EasyCoder PL-Series Printer Programmer’s Reference Manual iii
Page 4
iv EasyCoder PL-Series Printer Programmer’s Reference Manual
This section provides you with safety information, technical support
information, and sources for additional product information.
Safety Summary
Your safety is extremely important. Read and follow all warnings and
cautions in this document before handling and operating Intermec
equipment. You can be seriously injured, and equipment and data can be
damaged if you do not follow the safety warnings and cautions.
Do not repair or adjust alone
Do not repair or adjust energized equipment alone under any
circumstances. Someone capable of providing first aid must always be
present for your safety.
First aid
Always obtain first aid or medical attention immediately after an injury.
Never neglect an injury, no matter how slight it seems.
Before You Begin
Resuscitation
Begin resuscitation immediately if someone is injured and stops breathing.
Any delay could result in death. To work on or near high voltage, you
should be familiar with approved industrial first aid methods.
Energized equipment
Never work on energized equipment unless authorized by a responsible
authority. Energized electrical equipment is dangerous. Electrical shock
from energized equipment can cause death. If you must perform
authorized emergency work on energized equipment, be sure that you
comply strictly with approved safety regulations.
This section explains how to identify and understand dangers, warnings,
cautions, and notes that are in this document. You may also see icons that
tell you when to follow ESD procedures and when to take special
precautions for handling optical parts.
A warning alerts you of an operating procedure, practice, condition,
or statement that must be strictly observed to avoid death or serious
injury to the persons working on the equipment.
Avertissement: Un avertissement vous avertit d’une procédure de
fonctionnement, d’une méthode, d’un état ou d’un rapport qui doit
être strictement respecté pour éviter l’occurrence de mort ou de
blessures graves aux personnes manupulant l’équipement.
A caution alerts you to an operating procedure, practice, condition, or
statement that must be strictly observed to prevent equipment damage
or destruction, or corruption or loss of data.
Attention: Une précaution vous avertit d’une procédure de
fonctionnement, d’une méthode, d’un état ou d’un rapport qui doit
être strictement respecté pour empêcher l’endommagement ou la
destruction de l’équipement, ou l’altération ou la perte de données.
Note: Notes either provide extra information about a topic or contain
special instructions for handling a particular condition or set of
circumstances.
Global Services and Support
Warranty Information
To understand the warranty for your Intermec product, visit the Intermec
web site at http://www.intermec.com, click Support, and then click
Warranty.
Disclaimer of warranties: The sample code included in this document is
presented for reference only. The code does not necessarily represent
complete, tested programs. The code is provided “as is with all faults.” All
warranties are expressly disclaimed, including the implied warranties of
merchantability and fitness for a particular purpose.
Web Support
Visit the Intermec web site at http://www.intermec.com to download
many of our current manuals in PDF format. To order printed versions of
the Intermec manuals, contact your local Intermec representative or
distributor.
Visit the Intermec technical knowledge base (Knowledge Central) at
http://intermec.custhelp.com to review technical information or to request
technical support for your Intermec product.
Telephone Support
These services are available from Intermec Technologies Corporation.
Service
Factory Repair and
On-site Repair
Technical Support Get technical support on your
Service Contract
Status
Schedule Site Surveys
or Installations
Ordering Products Talk to sales administration, place
Who Should Read This Document?
This manual details the various commands in the CPL language that allow
you to use the built in text, graphics, bar code printing and
communications capabilities of PL-Series printers.
Description
Request a return authorization
number for authorized service
center repair, or request an on-site
repair technician.
Intermec product.
Inquire about an existing
contract, renew a contract, or ask
invoicing questions.
Schedule a site survey, or request
a product or system installation.
an order, or check the status of
your order.
Call 1-800-755-5505
and choose this option
1
2
3
4
5
This manual was written for users who want to write applications for and
program the PL-Series printers. A basic understanding of programming,
data communications, and networks is necessary.
Related Documents
The Intermec web site at http://www.intermec.com contains many of our
documents that you can download in PDF format.
To order printed versions of the Intermec manuals, contact your local
Intermec representative or distributor.
This manual details the various commands in the Comtec Printer
Language (CPL) that allow the programmer to use the built in text,
graphics, bar code printing, and communications capabilities of Intermec
portable printers. The following notation conventions are used throughout
this manual:
{ } Required item
[ ] Optional item
( ) Abbreviated command
< > Literal item
A space character is used to delimit each field in a command line.
Many commands are accompanied by examples of the command in use.
After the word “Input” in each example, the file name of that example
appears in parentheses. Many of these files can be found in the samples
section of the PL-Series Companion CD that came with your printer.
Getting Printer Information
The printer can produce a report containing information about the
application resident in printer memory. A report similar to the example
printouts shown on the following pages can be obtained from your printer
by doing a two-key reset.
To do a two-key reset
1 Turn the printer off.
2 While holding the Feed button down, turn the printer on.
3 When printing begins, release the Feed button.
The printer prints a line of interlocking x characters and then produces
two reports. The first report indicates the printer model, ROM version,
serial number, baud rate, and other printer information.
The second report contains a print quality test and application
information. The last digits in the application number indicate the
software version (for example, “Software: HTLK40d” indicates a software
version of 40). If no second report appears, there is no application loaded.
The Wireless Communications section appears if the printer has a
Bluetooth or 802.11b wireless option installed. If no wireless options are
installed, the Wireless Communications Section consists of a blank line.
The Label section shown in the second report reports the maximum size
label that can be printed, based on a printer resolution of 8 dots per mm
(203 dots per inch or dpi).
Spectrum24 802.11b
MAC Adress: 00:a0:f8:a3:50:99
Operating Mode: infrastructure
Preamble Length: long
Power Save: best
Encryption: 128-bit
Authentication: open system
Kerberos: off
Stored ESSID: TJX_2100
Associated ESSID: TJX_2100
Wireless Communications section with 802.11b wireless option installed
Wireless Communications:
Bluetooth:
.version 1.2.0
.date 08/01/02
.baud 9600
.device printer
.mode slave
.local_name ?
.authentication off
.discoverable on
.encryption off
.address 00:80:37:17:1E:B0
Debug Mode: Disabled
Wireless Communications section with Bluetooth wireless option installed
Files loaded in printer memory
(includes pre-scaled or
scalable fonts)
Amount of memory available
End of report.
Continuation of second report
Communications Diagnostic Mode
To help you diagnose communications problems, the printer features a
Communications Diagnostics mode (Dump mode). In the Dump mode,
the printer prints the ASCII hex codes of the data sent to it and their text
representation (or the period [.], if not a printable character). As a test of
the printer, you can send the “ALL CHRS.LBL” file, which is on the
PL-Series Companion CD.
4 Release the Feed button when the printer starts printing the reports.
5 At the end of second report, the printer prints “Press Feed button to
enter Dump mode.”
6 Now press the Feed button. The printer prints “Entering Dump mode.”
If you do not press the Feed button within 3 seconds, the printer prints
“Dump mode not entered” and resumes normal operation.
At this point, the printer is in Dump mode and prints the ASCII hex
codes of the data sent to it and their text representation (or “.” if not a
printable character).
Additionally, a file with a “.DMP” extension containing the ASCII
information is created and stored in the printer’s memory. You can view,
clone, or delete the file using the Intermec PLUS application. For help, see
the online help for the Intermec PLUS application.
To cancel Dump mode
1 Turn the printer off.
2 Wait 5 seconds.
3 Turn the printer on.
Label Coordinate System
The x and y coordinates in the next illustration are in terms of dots. On
200 dpi printers, 8 dots (either horizontally or vertically) equal 1 mm and
203 dots approximately equal 1 inch.
Note: Coordinates refer to the actual printing area of the printer with “y”
=the available label height, which varies with the resident application. For
help, see “Getting Printer Information” earlier in this chapter.
(831, 0)
4 inch Printer
(831, y)
Intermec PLUS
Intermec PLUS is a stand-alone program running in Windows™
95/98/2000/NT/XP that allows users with little or no programming
background to design labels that can be printed on certain model Intermec
portable printers. It combines an intuitive graphically based user
environment with powerful, but easily mastered, editing tools. You can
load Intermec PLUS from the CD that came with your printer or from
www.intermec.com.
Intermec PLUS allows the creation of printable, fixed-size (pre-scaled)
fonts of TrueType™ fonts, which greatly enhances the versatility of this
program.
In addition, Intermec PLUS allows the easy creation of format files that
can remain resident in the printer and be merged with variable data files
sent from the host. This provides a very efficient method of printing labels
that have a mixture of data fields that change from label to label and
elements that remain constant. For more information on format files, see
Chapter 8, “Advanced Commands.”
Intermec PLUS also provides a powerful set of diagnostics tools. It is
recommended that the Intermec PLUS documentation package be
consulted for a more detailed description of the printer diagnostics
available in this program.
Intermec PLUS requires an IBM compatible personal computer, running
Windows 95 or later. A PC with the minimum configuration to run
Windows 95 has sufficient memory to run Intermec PLUS.
Note: Intermec PLUS has proven to be compatible with Windows XP in
informal testing; however, compatibility problems with certain unusual
combinations of hardware and software may arise.
A label file always begins with the “!” character followed by an “x” offset
parameter, “x” and “y” axis resolutions, a label length, and finally a
quantity of labels to print. The line containing these parameters is referred
to as the command start line.
A label file always begins with the command start line and ends with the
Print command. The commands that build specific labels are placed
between the command start line and the Print command.
A space character is used to delimit each field in a command line.
Note: Every line in the command session must be terminated with both
carriage-return and line-feed characters. All Printer commands must be in
uppercase characters only.
Printer Commands
Format: <!> {offset} <200> <200> {height} {qty}
where:
<!>: Use “!” to begin a control session.
{offset}:The horizontal offset for the entire label. This value causes all
fields to be offset horizontally by the specified number of
units. For information on setting units, see “Units
Commands” later in this chapter.
<200>: Horizontal resolution (in dots-per-inch).
<200>: Vertical resolution (in dots-per-inch).
{height}:The maximum height of the label.
The maximum label height is calculated by measuring from
the bottom of the first black bar (or label gap) to the top of
the next black bar (or label gap). Then 1.5 mm (0.0625 inch)
is subtracted from this distance to obtain the maximum
height. (In dots, subtract 12 dots on 203 dpi printers.)
{qty}:Quantity of labels to be printed. Maximum = 1,024.
Example Input: Input (HELLO.LBL):
! 0 200 200 210 1
TEXT 4 0 30 40 Hello World
FORM
PRINT
Chapter 2— Printer Commands
d
Example Output:
Print Command
Purpose: The Print command terminates and prints the file. This command must
always be the last command (except when in Line Print mode). Upon
execution of the Print command, the printer exits from a control session.
Be sure to terminate this and all commands with both carriage-return and
line-feed characters.
Format: {command}
where:
{command}: PRINT
Form Command
Purpose: The Form command instructs the printer to feed to top-of-form after
Example: In the following example, the printer executes a form feed after the label is
printed. For information on setting printer behavior when the Form
command is executed, see “SETFF Command” in Chapter 9.
Input: FORM.LBL
! 0 200 200 3 1
IN-CENTIMETERS
CENTER
TEXT 4 1 0 .5 Form Command
FORM
PRINT
Journal Command
Purpose: By default, the printer checks for correct media alignment if it encounters
the eye-sense mark (black horizontal bars on back of media) during a print
cycle (Label mode). If necessary, you can use the Journal command to
disable this automatic correction feature. Your program is responsible for
checking and ensuring the presence of paper in Journal mode. For details
on checking for the out-of-paper condition, see “Status/Information” in
Chapter 11.
Format: {command}
where:{command}: JOURNAL
Units Commands
Purpose: You use the Units commands to specify a measurement system for all
subsequent command fields in a control session. You can enter
coordinates, widths, and heights for all control commands with precision
to four decimal places. By placing a Units command immediately after the
first line in a control session, the specified measurement system also applies
to the offset and height fields. The printer measurement system defaults to
dots until a Units command is issued.
! 0.3937 200 200 1 1
IN-INCHES
T 4 0 0 0 1 cm = 0.3937"
IN-DOTS
T 4 0 0 48 1 mm = 8 dots
B 128 1 1 48 16 112 UNITS
T 4 0 48 160 UNITS
FORM
PRINT
Example Output 1:
Example Input 2: Input 2 (UNITS2.LBL):
! 0 200 200 2.54 1
IN-CENTIMETERS
T 4 0 1 0 1" = 2.54 cm
IN-MILLIMETERS
T 4 0 0 6 203 dots = 25.4 mm
B 128 0.125 1 6 12 14 UNITS
T 4 0 16 20 UNITS
FORM
PRINT
Chapter 2— Printer Commands
Example Output 2:
Using Comments
Purpose: You can add comments between the first line of a command session and
the Print command.
A comment is placed in the file by starting a line with the “;” character in
the first column. Any remaining text to the end of the line is ignored.
Comments are illegal between the Concat and Endconcat commands.
Purpose: You use the Text command to place text on a label. This command and its
variants control the specific font number and size used, the location of the
text on the label, and the orientation of this text. Standard resident fonts
can be rotated to 90.5 increments as shown in the example.
Format: {command} {font} {size} {x} {y} {data}
where:
{command}: Choose from the following:
TEXT Prints text horizontally.
(or T)
VTEXT Prints text (vertically) rotated 90
(or VT) degrees counterclockwise.
Purpose: The Font-Group (FG) command gives you the ability to group up to 10
pre-scaled font files into a single group. You can later specify the font
group in a Text command. If a font group is used in a Text command, the
printer uses the largest font specified in the font group that produces the
required text data and still remain within the available width of the label
for the text. When specified in the Text command, the {font} parameter is
specified as FG, and the {size} parameter is specified as {fg}. Note that you
can also specify an FG command within a Concat and Endconcat
command.
{fg}: Font group number. Up to 10 font groups can be specified.
Valid font groups range from 0 to 9.
{fn}:Name or number of the font. For help, see “Resident Font
Samples” earlier in this chapter.
{fs}:Size identifier for the font. For help, see “Resident Font
Samples” earlier in this chapter.
Note: Up to ten font number/font size pairs can be assigned to a font
group.
In the example, the descriptions are printed with the largest font in the
specified font group that is capable of fitting the requested text in a
250-dot label field.
Example Input: Input (FG.LBL):
! 0 200 200 250 1
; Specify fonts 0-0, 7-0, 5-0, 4-0 as members
; of font group 3.
FG 3 0 0 7 0 5 0 4 0
VT FG 3 10 250 Ketchup
VT FG 3 70 250 Fancy Ketchup
VT FG 3 120 250 Extra Fancy Ketchup
VT FG 3 180 250 Large Size Extra Fancy Ketchup
FORM
PRINT
Example Output:
Text Concatenation Commands
Purpose: Text concatenation allows you to assign different character styles to strings,
printing them with uniform spacing on the same text line. You can use this
command in combination with scalable fonts. For information on scalable
fonts, see “Scalable Concatenation Commands” in Chapter 4.
Purpose: You use the Count command for printing multiple labels where a numeric
text field or numeric data encoded in a bar code is to be incremented or
decremented for each label. The Text or Bar Code command string must
contain this numeric data as the last characters of the string. The numeric
data portion can be up to 20 characters and can be preceded by the “-”
sign. Incrementing or decrementing the numeric data through 0 is not
allowed. Leading zeros are retained. You can use up to three Count
commands in a label file.
The numeric data incremented or decremented is contained in the Text or
Bar Code command that immediately preceded the Count command.
Format: {command} {numeric value}
where:
{command}: COUNT
{numeric value}: Any integer value up to 20 characters. The value can be
preceded by a “-” sign if you want to decrement the
Text or Bar Code value. Leading zeros are retained in
the output.
Example Input: Input (COUNT.LBL):
! 0 200 200 210 3
; Print 3 labels
CENTER
TEXT 4 0 0 50 TESTING 001
COUNT 1
TEXT 7 0 0 100 Barcode Value is 123456789
COUNT -10
BARCODE 128 1 1 50 0 130 123456789
COUNT -10
FORM
PRINT
Purpose: The Setmag command magnifies a resident font to the magnification
factor specified.
Format: {command} {w} {h}
where:
{command}: SETMAG
{w}: Width magnification of the font. Valid magnifications are 1
thru 16.
{h}:Height magnification of the font. Valid magnifications are 1
thru 16.
Note: The Setmag command stays in effect after printing a label. This
functionality means that the next label printed uses the most recently set
Setmag values. To cancel any Setmag values and allow the printer to use its
default font sizes, use the Setmag command with magnifications of 0,0.
Example Input: Input (SETMAG.LBL):
! 0 200 200 210 1
CENTER
SETMAG 1 1
TEXT 0 0 0 10 Font 0-0 at SETMAG 1 1
SETMAG 1 2
TEXT 0 0 0 40 Font 0-0 at SETMAG 1 2
SETMAG 2 1
TEXT 0 0 0 80 Font 0-0 at SETMAG 2 1
SETMAG 2 2
Scalable text allows you to print text at any point size. You can specify the
point size for both the x and y directions to produce characters that are
“stretched” in either their width or height. Point sizes specified and text
produced prints at 72 points equating to 25.4 mm (1 inch).
The printer can contain scalable font files as part of the application, or you
can download scalable font files to the printer using the Intermec PLUS
application. A scalable text file must be present in your printer’s memory
in order to use scalable text features.
Scale-Text Commands
Purpose: The Scale-Text commands allow you to specify the point size of both the
VSCALE-TEXT: Prints scaled text vertically.
(or VST)
{name}:Font name. For help, see “Resident Font Samples” in
Chapter 3.
{width}:Font width (point size). For help, see Appendix D, “Font
Information.”
{height}:Font height (point size). For help, see Appendix D, “Font
Information.”
{x}: Horizontal starting position. For help, see “Label Coordinate
System” in Chapter 1.
{y}:Vertical starting position. For help, see “Label Coordinate
System” in Chapter 1.
{data}:Text to be printed.
Example Input: Input (SCALE.LBL):
! 0 200 200 300 1
CENTER
; Print using x and y scales of 10 points
SCALE-TEXT PLL_LAT.CSF 10 10 0 10 10 POINT FONT
; Print using x scale of 20 points and y scale
; of 10 points
SCALE-TEXT PLL_LAT.CSF 20 10 0 80 WIDER FONT
; Fit a text string into an area 40mm wide by 10mm ; high
SCALE-TO-FIT PLL_LAT.CSF 40 10 0 10 SALE
; Fit a longer text string into the same 40mm wide ; by 10mm
high area
SCALE-TO-FIT PLL_LAT.CSF 40 10 0 20 SALE PRICE
; Fit “SALE” text into a 40mm wide by 20mm high ; area
SCALE-TO-FIT PLL_LAT.CSF 40 20 0 30 SALE
FORM
PRINT
Scalable Concatenation Commands
Purpose: Scalable concatenation allows you to assign different character styles to
strings, printing them with uniform spacing on the same text line. You can
combine both scalable and bitmap text between a Concat and Endconcat
command. For more information, see “Text Concatenation Commands”
in Chapter 3.
{height}: Font height point size. For help, see Appendix D,
{offset}: Unit-value to offset text from the starting position.
{data}: Text to be printed.
<ENDCONCAT>: Terminates concatenation.
Example Input: Input (STC.LBL):
! 0 200 200 210 1
CENTER
; Concatenate 3 scalable font strings and 1 ; Resident
font string
CONCAT 0 20
4 1 0 2/
ST PLL_LAT.CSF 20 20 15 $
ST PLL_LAT.CSF 40 40 0 22
ST PLL_LAT.CSF 20 20 0 99
ENDCONCAT
FORM
PRINT
Chapter 4— Scalable Text
“Font Information.”
Used to align individual text strings or create
superscript/subscript characters. Range is 0 to 255.
Example Output:
Rotate Commands
Purpose: You use rotate commands to rotate all subsequent scalable text fields at a
specified angle. Rotation direction is counter-clockwise about the center
point of the text. This rotation remains in effect until another Rotate
command is issued. Default angle is zero degrees.
Format: {command} {angle}
where:
{command}: Choose from the following:
ROTATE Rotates scalable fonts.
(or R)
{angle}:Degree of rotation (counter-clockwise).
Example Input: Input (ROTATE.LBL):
! 0 200 200 440 1
CENTER
TEXT 4 1 0 50 Rotate Strings
ROTATE 45
CONCAT 50 300
Bar codes allow easy implementation of automated identification,
cataloging, and processing of almost any object. They have been
successfully used on items ranging in size from boxcars to bumblebees.
This overview of bar code symbologies helps when programming Intermec
PL-Series printers and/or designing labels with Intermec PLUS software.
All of the information in this chapter is derived from the bar code
standards established by AIM and the Uniform Code Council (UCC) as of
November 1997. If you plan to create software using these bar codes, we
recommend ordering the uniform symbology specification from AIM or
the UCC to determine the uses and limitations pertaining to that type of
bar code. The information in this document is in no way complete.
The following discussions contain basic information and some suggested
applications for each type of bar code. The quick reference table in
Appendix E lists specific data for each bar code in one location. All the
information on ideal widths and ratios comes directly from the uniform
symbology specification. Please note that all measurements contained in
this document are in printer dots. On 200 dots per inch (dpi) printers, one
dot is equal to 0.13 mm or 0.005 inch.
UPC and EAN/JAN bar codes are typically used for marking products
with a unique code used to look up prices and to track inventories of
goods sold. They are also used for store coupons, periodicals, and
paperback books. UPC and EAN/JAN bar codes are generally rectangular,
contain a fixed amount of data, and in most cases are accompanied by
human readable text printed below them. For best results, this text should
be an OCR-A (resident font 2), a sans serif font (resident font 7), or an
OCR-B font.
The first number in the UPC/EAN bar code is the number system
character. The specification lists use of characters 0 through 9 as follows.
0 Regular UPC codes (UPC-A and UPC-E)
1 Reserved
2 Random weight items, like store packaged meat (UPC-A only)
3 National Drug Code and National Health Related Items Code in
current 10-digit code length (UPC-A only)*
4 In-store marking of non-food items without code format restriction
and with check digit protection (UPC-A only)
5 Coupons (UPC-A only)
6 Regular UPC codes (UPC-A only)
7 Regular UPC codes (UPC-A only)
8 Reserved
9 Reserved
* Number system 3 has the following note in the specification: “…the
symbol is not affected by the various internal structures possible with
the NDC or HRI codes.” The users should determine what effect this
statement may have on their program. It will not change how bar
codes are printed.
The checksum is the last number in the bar code and can be used to make
certain that the bar code is decoded properly. This digit is automatically
calculated by the printer. The UPC bar code specification has the full
instructions for calculating this checksum. The methodology for a bar code
of 01234567890 is as follows:
Step 1: Starting at the left, including the number system character, add up
all the numbers in the odd positions (0 + 2 + 4 + 6 + 8 + 0 = 20).
Step 2: Multiply this sum by 3 (20 x 3 = 60).
Step 3: Starting at the left again, add up all the numbers in the even
positions (1 + 3 + 5 + 7 + 9 = 25).
Step 4: Add the results from Step 2 and Step 3 (60 + 25 = 85).
Step 5: The checksum is the smallest number that when added to the
number in Step 4 equals a multiple of ten. In our example, 85 + 5 = 90,
which is a multiple of 10. Therefore, the checksum digit is 5. It is called a
modulo checksum because you take the modulo, or remainder, of the sum.
For the programmers, it is:
10 - (85 mod 10) = the checksum.
You can create UPC-A and EAN13 bar codes with and without a
checksum supplied. If the programmer supplies a checksum digit, the
printer creates the bar code with that checksum digit, even if it is incorrect.
Most laser scanning devices are not able to decode the bar code if the
checksum digit is incorrect.
UPC-E bar codes, useful for small items like candy and gum, are created
through the method of “zero suppression.” For example, if you were to
encode 01000000567, the resulting bar code would be a compressed bar
code that only contains the data, the compression scheme, and the
checksum without all the extra zeros. For our example, the bar code would
decode to 1056707. Please refer to the UPC Symbol Specification Manual
from the Uniform Code Council for more information on zero
suppression.
UPC-E and EAN8 bar codes have a few restrictions. First, the number
system character must be set to 0. Number systems 1 through 9 do not
support UPC-E and EAN8 bar codes and may not be decoded by a laser
scanning device. In case your application requires it, the number system
may be set to something other than 0. Second, if the programmer supplies
a checksum digit, the printer creates the bar code with that checksum
digit, even if it is incorrect. If the checksum digit is incorrect, most laser
scanning devices are not able to decode the bar code. Therefore, the
programmer may send six digits (no number system, no checksum), seven
digits (number system, no checksum), or eight digits (number system and
checksum) and create a bar code.
You only use plus 2 and plus 5 bar code extensions for periodicals and
paperback books. Specifically, the bar code specification states that the
plus 2 extension should only be used for a periodical issue number. The
plus 2 and plus 5 extensions do not contain any checksum according to
the bar code specification.
To create an extended bar code, place a space between the data that should
go into the UPC/EAN bar code and the data that should go into the
extension. You can also use the PLUS2 and PLUS5 bar code types to
create the extension separately. Remember to leave ample space (about
nine times the ratio) between the UPC/EAN bar code and the extension.
UPC-A plus 2 UPCA2 13 digits 0-9 only 2:1 2 mod 10
UPC-A plus 5 UPCA5 16 digits 0-9 only 2:1 2 mod 10
UPC-E UPCE 6, 7, or 11 digits 0-9 only 2:1 2 mod 10
UPC-E plus 2 UPCE2 8 or 13 digits 0-9 only 2:1 2 mod 10
UPC-E plus 5 UPCE5 11 or 16 digits 0-9 only 2:1 2 mod 10
EAN/JAN-13 EAN13 12 or 13 digits 0-9 only 2:1 2 mod 10
EAN/JAN-13
plus 2
EAN/JAN-13
plus 5
EAN/JAN-8 EAN8 6, 7, or 8 digits 0-9 only 2:1 2 mod 10
EAN/JAN-8
plus 2
EAN/JAN-8
plus 5
Bar Code
Type
EAN132 14 digits 0-9 only 2:1 2 mod 10
EAN135 17 digits 0-9 only 2:1 2 mod 10
EAN82 9 digits 0-9 only 2:1 2 mod 10
EAN85 12 digits 0-9 only 2:1 2 mod 10
Input Length
Characters
Ideal
Wide/Narrow
Ratio
Ideal
Narrow Dot
Width
Checksum
Calculation
(UPC-A)
(UPC-A)
(UPC-E)
(UPC-E)
(EAN13)
(EAN13)
(EAN8)
(EAN8)
Code 39 or Code 3 of 9 Bar Codes
You use the Code 39 bar code for many applications including inventories,
hospital applications, or any other place where the code length may change
between items being scanned (e.g., a bar code stating there were 420 pieces
in one box and 20,004 pieces in another box would have a different
physical length). This bar code can use the characters 0 through 9, A
through Z, - (dash), . (period), space, $ (dollar sign), /(forward slash), +
(plus), and % (percent). There is also a special character called S/S used as
a start/stop character. The F39 and F39C types allow the use of carriage
return, line feed, and null characters.
The checksum for this bar code is located as the last (or least significant)
digit of the decoded bar code. To ensure data integrity in your application,
use a bar code with a checksum. The printer automatically supplies this
digit if the user selects a 39C or a F39C bar code.
Refer to the full bar code symbology specification for complete
information on checksum calculation. For a short example, take an
example bar code with the data CODE 39.
Step 1: Assign a value to each character per the Character Numerical
Value Table above (C = 12, O = 24, D = 13, E = 14, space = 38, 3 = 3,
9 = 9).
Step 3: Divide this number by 43. The remainder or modulo, 27, is the
checksum.
Step 4: Referring to the table, 27 is the character R. Therefore, the
checksum in the bar code should be R. The final code reads CODE 39R
when it is decoded.
You use the Code 93 bar code for applications that require heavy error
checking capabilities. To accomplish this, the Code 93 bar code contains
two separate error checking checksums that are automatically calculated
and placed into the bar code. This bar code is used for inventories, hospital
applications, or any other place where the length may change between
items being scanned. This bar code type can use the entire ASCII 128
character set. It is useful for encoding data and phrases like “Code 93.”
The two checksums in this bar code are located as the last and second to
the last characters in the decoded bar code. Code 93 has a complex
checksum calculation. Please see the bar code symbology specification for
information on how to create and decode this checksum. Please also note
that the bar code symbology specification does not state any ideal values
for the ratio and the width of the narrow bar.
Interleaved 2 of 5 Bar Codes
You use the Interleaved 2 of 5 (or ITF) bar code for applications that have
a fixed data length for all items scanned. A date, telephone number, or a
SKU of fixed length is a good application for this bar code. The symbology
specification states that an ITF bar code may be partially decoded without
any recognizable difference. Therefore, to prevent this problem, you must
keep the length of data to a constant and perform an error checking
routine on the decoding program to determine if the data is correct.
Only the digits 0 through 9 can be encoded, and there should be an even
number of digits in the data. If there is an odd number of digits, the
printer automatically inserts a zero (0) at the beginning of the bar code.
There is no checksum automatically added to the bar code. You can,
however, manually calculate a checksum and append it as the last digit (or
least significant digit) in the bar code.
Step 1: To calculate the checksum, first ensure that you are starting with
an odd number of digits in the data. If not, add a zero (0) to the beginning
of the data.
Step 2: Multiply every other digit by 3, and add up the numbers including
the skipped bar code digits. So, if your data was 43827, your calculation
should be (4 x 3) + 3 + (8 x 3) + 2 + (7 x 3) = 62.
Step 3: Divide this number by 10, resulting in 6 with a remainder of 2.
Subtract the remainder from 10. In our example, 10 - 2 = 8. The
checksum is this final number, 8. Append this to the end of your data.
Note that if the remainder was a zero, your checksum should be zero.
Interleaved 2 of 5 I2OF5 Varies 0-9 only 2.5:1 2 See text
Bar Code
Type
Input
Length
Characters
Ideal
Wide/Narrow
Ratio
Ideal
Narrow Dot
Width
Checksum
Calculation
Code 128 and the UCC-128 Shipping Standard
You use Code 128 for applications that need to contain a large amount of
data such as shipping applications, marking blood donations, and any
other application that can vary in length between bar codes being scanned.
The bar code also contains a checksum as the last character in the code
that ensures that data remains intact.
Code 128 can use the entire ASCII 128 character set as well as other
subsets available in the universal symbology specification. The three start
and stop characters determine which character set to use. The checksum
for this bar code is located immediately before the stop character. The bar
code symbology specification contains all the information on calculating
this checksum. For a short example, we desire to encode BAR128 in a bar
code. In this example, you use A as your start and stop character.
Step 1: The symbology specification assigns a numerical value for each
character. Find the values of all the characters in the data.
Step 2: Add the value of the start character and all the data characters
multiplied by its position in the bar code. For our example, the calculation
would be 103 + (34 x 1) + (32 x 2) + (50 x 3) + (17 x 4) + (18 x 5) + (24 x
6) = 672.
Step 3: Divide this number by 103. The remainder or modulo, 54, is the
checksum. The character that is assigned to 54 in the specification is V.
Our final code looks like ABAR128V where A is the start character;
BAR128 is the data, and V is the checksum.
The UCC-128 Shipping Standard is part of a document called Application Standard for Shipping Container Codes available from the Uniform Code
Council. This 90-page guide contains the entire specification on marking
any shipment sent anywhere in the U.S.A. Seventeen pages are dedicated
to the technical considerations of using, placing, and printing these bar
codes. We highly recommend getting this information if your application
involves shipping.
UCC-128Std. UCCEAN 16 Refer to text Refer to text 3:1 3 mod 103
Bar Code
Type
128 Variable Refer to text 1.5:1 1 mod 103
Input
Length
Characters
Ideal
Wide/Narrow
Ratio
Ideal
Narrow Dot
Width
Checksum
Calculation
Codabar
Codabar is ideal for applications that contain mostly numeric symbols that
may vary in length from bar code to bar code. It can encode the digits
from 0 to 9, the characters “-”(dash), “$”(dollar sign), “:” (colon), “/”
(forward slash), “.” (period), and “+” (plus) as well as start and stop
characters A through D.
One optional checksum is automatically appended as the least significant
digit in the bar code data directly before the stop character. The bar code
symbology specification contains all the information on calculating the
checksum. As a short example, our data is A37859B where A and B are
start and stop characters. The characters 0 through 9 are assigned the
numerical values 0 through 9 respectively. The “-” character is 10; “$” is
11; “:”is 12; “/” is 13; “.” is 14; “+” is 15, and start and stop characters A,
B, C, and D are 16, 17, 18, and 19 respectively.
Step 1: Add the numerical value of all the characters (16 + 3 + 7 + 8 + 5 +
9 + 17 = 65).
Step 2: Divide this number by 16 and use the remainder or modulo. In
our example, the modulo is 1.
Step 3: Subtract the modulo from 16. This is the smallest number that
can be added to the sum in Step 1 to make a multiple of 16 (65 + 15 = 80.
80/16= 5). Therefore, the checksum for our example is 15.
Step 4: The character that corresponds to 15 is “+” and is added in before
the stop character. Our final bar code looks like A37859+B.
The bar code type NW7 is for reverse compatibility only. We do not
recommend using this command for new systems. There is no difference
between Codabar and NW7.
The MSI Plessey bar code is a fixed length code that uses only numerical
characters. It is primarily used for grocery applications. Three different
types of encoding exist with different levels of data protection. Please see
the bar code symbology specification for more information on how to
calculate these checksums.
You use Plessey for reverse compatibility only. We do not recommend
using this command for new systems. Plessey forces a 2:1 ratio of the wide
to narrow bar width.
MSI Plessey Specifications
Bar Code
Symbology
MSI Plessey MSI 13 digits max 0-9 only 2:1 2 none
MSI10 13 digits max 0-9 only 2:1 2 mod 10
MSI1010 13 digits max 0-9 only 2:1 2 two mod 10
MSI1110 13 digits max 0-9 only 2:1 2 mod 11 mod 10
Bar Code
Type
Input Length
Characters
Ideal
Wide/Narrow
Ratio
Ideal
Narrow
Dot Width
Checksum
Calculation
Postnet and Facing Identification Marks
You only use the US Postnet bar code to help automate mail delivery. To
comply with postal regulations, set the height of the bar code to 30 dots,
the wide/narrow bar ratio at 3.5:1, and the width of the narrow bar to
3 dots on a 200 dpi printer. The data sent to the bar code can be 5, 9, or
11 digits long. For example, to send mail to 6001 36th Avenue West,
Everett, WA 98203-9280, the data would be
• 5 digits- ZIP Code only: 98203
• 9 digits - ZIP + 4 Code: 982039280
• 11 digits - ZIP + 4 Code and last two digits in address: 98203928001
The Postnet bar code also contains an automatically calculated checksum
as the last character in the decoded bar code. As a short example, our data
is 98203928001.
Step 1: Add the numerical value of all the characters (9 + 8 + 2 + 0 + 3 + 9
+ 2 + 8 + 0 + 0 + 1 = 42).
Step 2: Divide this number by 10 and use the remainder or modulo. In
our example, the modulo is 2 (42/10 = 4.2).
Step 3: Subtract the modulo from 10 to get the checksum. The checksum
for our example is 8 (10 - 42 mod 10 for programmers).
A Facing Identification Mark (FIM) is the bar code in the upper right
corner of an envelope near the stamp. To comply with postal regulations,
set the height of the bar code to 125 dots, the ratio to 1.5:1 dots, and the
width of the narrow bar to 6 dots. There are three different characters you
can send as data: A, B, and C.
• FIM A: Courtesy Reply Mail with Postnet bar code
• FIM B: Business Reply Mail, Penalty Mail, or Franked Mail without
Postnet bar code
• FIM C: Business Reply Mail, Penalty Mail, or Franked Mail with
Postnet bar code.
For more information, please see Publication 25 from the USPS Postal
Business Center. If you are making a label with an address, try using
resident font 7 or font 4 for best results with the optical character
recognition software used by the post office.
Postnet and FIM Specifications
Bar Code
Symbology
Postnet POSTNET 5, 9, 11 digits 0-9 only 3.5:1 3 mod 10
Facing Ident
Mark
Bar Code
Type
FIM A, B, or C
Input
Length
only
Characters
A, B, or C 1.5:1 6 N/A
Ideal
Wide/Narrow
Ratio
Ideal
Narrow Dot
Width
Checksum
Calculation
Bar Code Commands
You use the following commands to create and format bar codes on labels.
Ensure that the bar code symbology chosen agrees with its intended use
and that it conforms to the guidelines in the previous section.
You can find a quick reference guide for the linear bar code symbologies
discussed in this manual in Appendix E, “Bar Code Quick Reference.”
Note that the Count command is also discussed in Chapter 3, “Text.”
Purpose: You use the Bar Code Text command to label bar codes with the same
data used to create the bar code. The command eliminates the need to
annotate the bar code using separate text commands. The text is centered
below the bar code.
{offset}: Unit distance to offset text away from the bar code. For
help, see “Units Commands” in Chapter 2.
Example Input: Input (BARTEXT.LBL):
! 0 200 200 400 1
JOURNAL
CENTER
; Annotate bar codes using font 7 size 0
; and offset 5 dots from the bar code.
BARCODE-TEXT 7 0 5
BARCODE 128 1 1 50 0 20 123456789
VBARCODE 128 1 1 50 40 400 112233445
BARCODE-TEXT OFF
FORM
PRINT
Example Output:
Chapter 5— Linear Bar Codes
Count Command
Purpose: You use the Count command for printing multiple labels where you want
a numeric text field or numeric data encoded in a bar code incremented or
decremented for each label. The Text or Bar Code command string must
contain this numeric data as the last characters of the string. The numeric
data portion can be up to 20 characters and can be preceded by the “-”
sign. Counts of 9 to 0 wrap to 9. Counts of 00 to 9 wrap to 00. Leading
zeros are retained. You can use up to three Count commands in a label file.
The numeric data incremented or decremented is contained in the Text or
Bar Code command that immediately preceded the Count command.
Format: {command} {numeric value}
where:
{command}: COUNT
{numeric value}: Any integer value up to 20 characters. The value can be
preceded by a “-” sign if decrementing of the Text or Bar
Code value is desired. Leading zeros are retained in the
output.
A two-dimensional (2D) bar code is like a portable database. For example,
if a package has a serial number encoded with a linear bar code, you could
scan the serial number, look up the number in a computer system, and
gather the information about that package. If the computer system was
unavailable for any reason, the information you were looking for would
also be unavailable. A 2D bar code, however, can contain several different
fields of information in them; essentially a database attached to a package.
The first 2D bar code was just an extension of a one-dimensional bar code.
The user could stack several Code 39 bar codes on top of another. These
types of codes are called stacked symbology or multi-row codes.
Development of scanners capable of 2D scanning allowed use of more
compact and useful symbologies like PDF417 and MaxiCode.
Intermec PL-series printers have capabilities to print PDF417 and
MaxiCode symbols. If your application requires the use of PDF417 or
MaxiCode symbols, we highly recommend acquiring the universal symbol
specification to assist your programming. The specifications include
suggestions on how to structure your data in the code to make it easier to
use.
PDF417
MaxiCode
Please note that you must load a special application before using PDF417
or MaxiCode on your Intermec PL-Series printer. The standard
application loaded in your printer does not support the ability to print
these bar codes.
The PDF417 bar code is a 2D bar code that can contain a very large
amount of data in a small space. If you look at a PDF417 bar code
carefully, it is actually a stack of smaller bar codes. The number and height
of the stacks are controllable by the user. The bar code can contain the
entire ASCII 255 set of characters and has the capability to use different
encoding schemes and different levels of security to correct errors. The
largest amount of data that can be encoded is 2725 characters.
MaxiCode was originally designed by the United Parcel Service (UPS) to
help them automate package delivery and sort packages coming down a
quick conveyor belt. It consists of a bulls eye to help the imaging system
target the bar code and an array of hexagons to represent the data stored in
the bar code. It can contain a maximum of 93 alphanumeric characters or
138 numeric characters. MaxiCode has two different error correction
modes, seven different storage modes, the capability to use character sets
other than ASCII, and the capability to link several MaxiCodes together.
Since there are so many different modes, it is suggested that you contact
AIM for the symbol specification. If you are developing software to be
used with the UPS MaxiCode shipping system, contact UPS for
information on how to order the information on the MaxiCode shipping
system.
Two-Dimensional Bar Code Commands
You use the following commands to create and format 2D bar codes.
Ensure that the bar code symbology chosen agrees with its intended use.
We recommend acquiring the specification for the desired code to
supplement the discussions in this manual.
Note that Codablock A and F are not fully supported in this release of the
manual.
start and stop characters and left and right indicators.
Range is 1 to 30. Default is 3.
detected or corrected. Range is 0 to 8. Default is 1.
Page 70
Chapter 6— Two-Dimensional Bar Codes
<ENDPDF>: Terminates PDF417.
Note: The Bar Code Text command does not work with the PDF417 bar
code type. You must enter any desired human readable text separately with
the Text command as in the next example.
Example Input: Input (PDF.LBL):
! 0 200 200 210 1
B PDF-417 10 20 XD 3 YD 12 C 3 S 2
PDF Data
ABCDE12345
ENDPDF
T 4 0 10 120 PDF Data
T 4 0 10 170 ABCDE12345
FORM
PRINT
Example Output:
MaxiCode
Purpose: The MaxiCode bar code now handles all the symbols defined by the
United Parcel Service as well as the basic fields supported in the standard
bar code. MaxiCode supports all standard printable characters with
automatic conversion of all lowercase letters in the secondary message to
uppercase. This revision supports only Mode 2 bar codes.
Format: {command} {type} {x} {y}
{tag} {options}
…
{tag} {options}
<ENDMAXICODE>
where:
{command}: BAR CODE or B
{type}: MAXICODE
{x}: Horizontal starting position. For help, see “Label
{y}: Vertical starting position. For help, see “Label
For more information on creating labels for the UPS shipping system, see
the document Guide to Bar Coding with UPS OnLine: for Customers Generating Bar Code Labels, Version 5 available from the United Parcel
Service.
Example 1 Input: ! 0 200 200 600 1
JOURNAL
B MAXICODE 20 20
CC 12345
MSG This is a MAXICODE low priority message.
SC 12345
POST 02886
ENDMAXICODE
PRINT
Example 1 Output:
Example 1 decodes to: 028860000[GS]057[GS]057[GS]This is a MAXICODE low priority
message.
Example 2 Input: ! 0 200 200 600 1
JOURNAL
B MAXICODE 20 20
CC 12345
MSG This is a MAXICODE low priority message.
SC 12345
POST 02886
ZIPPER 1
ENDMAXICODE
PRINT
JOURNAL
B MAXICODE 20 20
VAL Y
STADDR 30 PLAN WAY
WEIGH 210
SHIPID 42
PICKDAY 193
SHIPPER 12345
TN 1Z12345675
CC 860
SC 1
POST 02886
ZIPPER 1
SHIPPER 12345E
NX 1/2
UPS5 1
CITY WARWICK
ST RI
ENDMAXICODE
PRINT
Note: Text coordinates (in output) are shown for illustration purposes
only.
Inverse-Line Commands
Purpose: The Inverse-Line command has the same syntax as the Line command.
Previously created objects that lie within the area defined by the
Inverse-Line command have their black areas re-drawn white and white
areas re-drawn black. These objects can include text, bar codes, and
graphics, including downloaded .PCX files. Inverse-Line has no effect on
objects created after its location even if they fall within its covered area. In
example INVERSE2.LBL, portions of the text field created after the
Inverse-Line command remain black, hence invisible, even though placed
within the Inverse-Line area.
Format: {command} {x
0
} {y
} {x1} {y1} {width}
0
where:
{command}: Choose from the following:
INVERSE-LINE Prints a line over an existing
(or IL) field to invert the image.
{x
}: x-coordinate of the top-left corner. For help, see “Label
0
Coordinate System” in Chapter 1.
{y
}: y-coordinate of the top-left corner. For help, see “Label
0
Coordinate System” in Chapter 1.
{x1}:x-coordinate of top right corner for horizontal and bottom
left corner for vertical. For help, see “Label Coordinate
System” in Chapter 1.
{y1}:y-coordinate of top right corner for horizontal and bottom
left corner for vertical. For help, see “Label Coordinate
System” in Chapter 1.
{width}:Unit-width (or thickness) of the inverse-line. For help, see
“Units Commands” in Chapter 2.
Example Input 1: Input 1 (INVERSE1.LBL):
! 0 200 200 210 1
CENTER
TEXT 4 0 0 45 SAVE
TEXT 4 0 0 95 MORE
INVERSE-LINE 0 45 145 45 45
INVERSE-LINE 0 95 145 95 45
FORM
PRINT
! 0 200 200 700 1
; Draw horizontal and vertical patterns
PATTERN 101
LINE 10 10 160 10 42
PATTERN 102
LINE 170 10 350 10 42
; Draw left and right diagonal patterns
PATTERN 103
LINE 10 65 160 65 40
PATTERN 104
LINE 170 65 350 65 40
; Draw square and cross hatch patterns
PATTERN 105
LINE 10 115 160 115 40
PATTERN 106
LINE 170 115 350 115 40
; Draw a scalable text character with cross ; hatch
pattern
PATTERN 106
ST PLB_LAT.CSF 40 40 20 180 HELLO
FORM
PRINT
Example Output:
Graphics Commands
Purpose: You can print bit-mapped graphics by using graphics commands. The
command uses ASCII hex (hexadecimal) for expanded graphics data (see
example). You can reduce the data size to one-half by using the
Compressed-Graphics commands with the equivalent binary character(s)
of the hex data.
Format: {command} {width} {height} {x} {y} {data}
where:
{command}: Choose from the following:
EXPANDED-GRAPHICS Prints expanded
(or EG) graphics horizontally.
{y}: y-coordinate of the top-left corner. For help, see “Label
Coordinate System” in Chapter 1.
{data}: PCX image data.
Example 1: In the example below, the image is sent in three steps. First, the printer
receives commands to expect a .PCX formatted file. The second input to
the printer is the .PCX image. This image must be a two color (black and
white) image. The last step is to tell the printer to print the label.
Input 1 (STARTPCX.LBL):
! 0 200 200 500 1
PCX 0 30
Input 2 (IMAGE.PCX)
Input 3 (ENDPCX.LBL)
FORM
PRINT
Output:
Example 2: In this example, the .PCX image has been loaded into the printer’s flash
file system and given the name IMAGE.PCX. The “!<“ operator can now
be used to instruct the printer to get the data stored in the file
IMAGE.PCX and use it for building the image.
Purpose: You use the Contrast command to specify the print darkness for the entire
label. The lightest printout is at contrast level 0. The darkest contrast level
is 3. The printer defaults to contrast level 0 on power up. You must specify
the contrast level for each label file.
In order to maximize printing efficiency, always use the lowest contrast
level possible.
Format: {command} {level}
where:
{command}: CONTRAST
{level}: Contrast level.
0 = Default
1 = Medium
2 = Dark
3 = Very Dark
Tone Command
Purpose: You can use the Tone command instead of the Contrast command to
specify the print darkness for all labels. The lightest printout is at tone level
-99. The darkest tone level is 200. The printer defaults to tone level 0 on
power up. Tone level settings remain in effect for all printing tasks until
changed. You cannot use the Tone and Contrast commands in
combination with one another.
Purpose: You can control alignment of fields by using the Justification commands.
By default, the printer left justifies all fields. A Justification command
remains in effect for all subsequent fields until you specify another
justification command.
Format:{command} [end]
where:
{command}: Choose from the following:
CENTER Center justifies all subsequent fields.
LEFT Left justifies all subsequent fields.
RIGHT Right justifies all subsequent fields.
[end]:End point of justification. If no parameter is entered,
justification commands use the print head’s width for
horizontal printing or zero (top of form) for vertical printing.
Example Input: Input (JUSTIFY.LBL):
! 0 200 200 210 1
CENTER 383
TEXT 4 0 0 75 C
LEFT
TEXT 4 0 0 75 L
RIGHT 383
TEXT 4 0 0 75 R
FORM
PRINT
Example Output:
Page-Width Command
Purpose: The printer assumes that the page width is the full width of the printer.
The maximum height of a print session is determined by the page width
and the available print memory. If the page width is less than the full
width of the printer, you can increase the maximum page height by
specifying the page width.
Note: You should issue this command at the beginning of a print session.
Example: In the following example, the command file shown was sent to the printer
once. The two additional printouts were produced by pressing the Feed
button once for each additional printout.
Input (PACE.LBL):
! 0 200 200 210 3
; Tell printer to print a label
; after each 'FEED' key press
; until all 3 labels are printed
PACE
; Printer holds journal stock
JOURNAL
; Center the text
CENTER
TEXT 4 1 0 10 Print 3 labels
TEXT 4 1 0 90 Using PACE
PRINT
Output:
Auto-Pace Command
Purpose: You can use this command to instruct a printer equipped with a label
presentation sensor to delay printing until the previously printed label is
removed.
Example: This example instructs the printer to print ten labels. The printer prints a
label and waits for that label to be removed before printing the next label.
Input (APACE.LBL):
! 0 200 200 250 10
CENTER
TEXT 7 0 0 10 AUTO-PACE EXAMPLE
AUTO-PACE
FORM
PRINT
No-Pace Command
Purpose: This command cancels the Pace and Auto-Pace mode if the printer is
already in Pace or Auto-Pace mode. The printer defaults to No-Pace mode
on power up.
Format: {command}
where:
{command}: NO-PACE
Example: This example instructs the printer to print ten labels. The printer prints a
label and waits for the label to be removed before printing the next label.
The second set of ten labels is printed in batch mode, and the printer does
not wait for the operator to remove the labels.
Input (NO-PACE.LBL):
! 0 200 200 250 10
TEXT 7 0 0 10 AUTO-PACE EXAMPLE
AUTO-PACE
FORM
PRINT
! 0 200 200 250 10
TEXT 7 0 0 10 NO-PACE EXAMPLE
NO-PACE
FORM
PRINT
Wait Command
Purpose: You use this command to introduce a delay after a label is printed.
Example: In the example below, the printer pauses 10 seconds (10 x 8 = 80) after
printing each label.
Input (WAIT.LBL):
! 0 200 200 150 5
WAIT 80
TEXT 5 0 0 20 DELAY 10 SECONDS
FORM
PRINT
Speed Command
Purpose: You use this command to set the highest motor speed level. Each printer
model is programmed with a minimum and maximum attainable speed.
The Speed command selects a speed level on a scale of 0 to 5, level 0 being
the slowest within this range. The maximum speed programmed into each
printer model is attainable under ideal conditions. The battery or powersupply voltage, stock thickness, print darkness, applicator usage, self-strip
usage, and label length can limit the maximum attainable print speed.
By exercising this command, you override the factory programmed speed
for the label being printed.
Format: {command} {speed level}
where:
{command}: SPEED
{speed level}: A number between 0 and 5, 0 being the slowest speed.
Example: Input (SPEED.LBL):
! 0 200 200 150 1
SPEED 4
TEXT 5 0 0 20 PRINTS AT SPEED 4
FORM
PRINT
SETSP Command
Purpose: You use the SETSP command to change spacing between text characters.
Format: {command} {spacing}
where:
{command}: SETSP
{spacing}: Unit measurement between characters. The default for
Purpose: The Postfeed command instructs the printer to advance the media a
specified amount after printing.
Format: {command} {length}
where:
{command}: POSTFEED
{length}: Unit length the printer advances media after printing. Range
is 0 to 64.
Example: The following example sets up the printer for post-feeding 40 dot-lines
after printing.
Input (POSTFEED.LBL):
! 0 200 200 210 1
TEXT 7 0 0 20 POSTFEED EXAMPLE
FORM
POSTFEED 40
PRINT
Present-At Command
Purpose: You can use the Present-At command to position the media at the tear bar
of the printer or at a location where you can easily remove the printed
label. When a Present-At command is issued, the printer prints a label and
then, after a delay period, advances the media a specified distance. It then
retracts the media the same distance before starting a new print job.
You use the delay parameter to avoid unnecessary advance and retract
operations when printing a batch of print jobs. You can issue the
Present-At command in a label file or in a utilities command session
(!UTILITIES…PRINT).
Format: {command} {length} {delay}
where:
{command}: PRESENT-AT
{length}: Unit length in dot-lines the media is advanced after printing
and retracted before printing the next label.
{delay}:The interval after printing the label the printer waits prior to
advancing the media. Increments are in 1/8 of a second. A
delay of “1” is equivalent to 1/8 second. A delay of “4” is
equivalent to 1/2 second, etc.
Example: The following example instructs the printer to wait 1/4 second and if there
is no printer activity within this interval to then advance the media 80
dot-lines. The printer will retract the media by the same amount before
printing the next label.
Input (PRESENT-AT.LBL):
! 0 200 200 250 1
TEXT 7 0 0 10 PRESENT-AT EXAMPLE
PRESENT-AT 80 2
FORM
PRINT
Country/Code Page Command
Purpose: The Country/Code Page command substitutes the appropriate character
set for the specified country.
Format: {command} {name}
where:
{command}: COUNTRY
{name}: Choose from the following:
USA
GERMANY
FRANCE
SWEDEN
SPAIN
NORWAY
CHINA
ITALY
CP850
UK
Example Input: Input (COUNTRY.LBL):
! 0 200 200 80 1
IN-MILLIMETERS
JOURNAL
CENTER
; Set the country as USA
COUNTRY USA
; Now Print Text From ISO substitution Table
TEXT 4 0 0 8 COUNTRY IS USA
TEXT 4 0 0 15 #$@[\]^‘{|}~
; Set country for France and print the same text
COUNTRY FRANCE
TEXT 4 0 0 28 COUNTRY IS FRANCE
TEXT 4 0 0 35 #$@[\]^‘{|}~
PRINT
Example Output:
Using Format Files
You use the Define-Format and Use-Format commands to identify format
and data respectively.
Chapter 8— Advanced Commands
Format files eliminate having to re-send the same format information for
every label printed. By using a pre-loaded format, only variable data (such
as descriptions, price, etc.) is sent to the printer.
Input (NOFORMAT.LBL):
! 0 200 200 210 1
CENTER
TEXT 4 3 0 15 $22.99
TEXT 4 0 0 95 SWEATSHIRT
BARCODE UPCA 1 1 40 0 145 40123456784
TEXT 7 0 0 185 40123456784
FORM
PRINT
Output:
$22.99
SWEATSHIRT
*2344*
*1234*
The following page illustrates separating the above example into a format
file and data.
Defining a label format file is accomplished using the Define-Format (or
DF) command to mark the beginning of the format and Print to mark the
end. A '\\' (double-backslash) acts as a place holder for data.
! DF SHELF.FMT
! 0 200 200 210 1
CENTER
TEXT 4 3 0 15 \\
TEXT 4 0 0 95 \\
BARCODE UPCA 1 1 40 0 145 \\
TEXT 7 0 0 185 \\
FORM
PRINT
The Use-Format (or UF) command instructs the printer to use a specified
format file. The label is created using that format file with data supplied
following the Use-Format command. After accessing the specified format
file, the printer substitutes the “\\” delimiters with the data supplied,
producing the desired label.
As with all print commands, each line in a format file and its
accompanying variables must be terminated with the carriage-return and
line-feed character sequence.
Once defined, a format remains in the printer's nonvolatile memory for
future reference. You can change an existing format by over writing the
file. By using the DEL command, you can delete the format file.
Format file names can consist of no more than eight letters or digits, and
format file extensions can be no more than three letters or digits. Any
lowercase letter in the format file name or extension is converted to upper
case.
Note: Every time a file is created on the printer using the ! DEFINEFORMAT..., ! DF..., for example, the file information is written to flash
memory. Unlike RAM, flash memory does not a require battery for
retaining data and is immune to data corruption due to static discharge.
Although flash memory is superior to RAM for safe-guarding file contents,
it is limited to an average of 10,000 write cycles (i.e., file creations). For
this reason, the user should exercise the file creation commands such that
the stated limit is not exceeded.
Beep Command
Purpose: This command instructs the printer to sound the beeper for a given time
length. Printers not equipped with a beeper ignore this command.