Intermec EasyCoder PL3, EasyCoder PL4, EasyCoder PL-Series Programmer's Reference Manual

Page 1
Programmer's Reference Manual
EasyCoder PL-Series Printer
Page 2
Intermec Technologies Corporation
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
Page 5
Contents
Programming Introduction................................................................................................... 1
1
Contents
Before You Begin................................................................................................................xv
Safety Summary.....................................................................................................xv
Safety Icons ..........................................................................................................xvi
Global Services and Support................................................................................. xvi
Who Should Read This Document? .................................................................... xvii
Related Documents .............................................................................................xvii
Manual Conventions ........................................................................................................... 2
Getting Printer Information ................................................................................................ 2
Communications Diagnostic Mode ..................................................................................... 5
Label Coordinate System ..................................................................................................... 6
2
3
Intermec PLUS.................................................................................................................... 7
Printer Commands ..................................................................................................................... 9
Command Start Line ......................................................................................................... 10
Printer Commands ............................................................................................................ 10
Print Command ................................................................................................................ 11
Form Command................................................................................................................ 11
Journal Command............................................................................................................. 12
Units Commands .............................................................................................................. 12
Using Comments............................................................................................................... 13
Text.................................................................................................................................................... 15
Resident Font Samples....................................................................................................... 16
Text Commands................................................................................................................ 18
Font-Group Command ..................................................................................................... 19
Text Concatenation Commands........................................................................................ 20
Multiline Commands ........................................................................................................ 22
EasyCoder PL-Series Printer Programmer’s Reference Manual
v
Page 6
4
5
Contents
Count Command .............................................................................................................. 23
Setmag Command ............................................................................................................. 24
Scalable Text................................................................................................................................ 27
What is Scalable Text? ....................................................................................................... 28
Scale-Text Commands....................................................................................................... 28
Scale-To-Fit Commands.................................................................................................... 29
Scalable Concatenation Commands................................................................................... 30
Rotate Commands............................................................................................................. 31
Linear Bar Codes........................................................................................................................ 33
Bar Code Standards ........................................................................................................... 34
Resident Linear Bar Code Samples .................................................................................... 35
UPC and EAN/JAN Bar Codes ......................................................................................... 36
UPC/EAN Specifications ..................................................................................... 38
Code 39 or Code 3 of 9 Bar Codes.................................................................................... 38
Code 39 (3 of 9) Specifications............................................................................. 39
Code 93 or Code 9 of 3 Bar Codes.................................................................................... 40
Interleaved 2 of 5 Bar Codes.............................................................................................. 40
Interleaved 2 of 5 Specifications............................................................................ 41
Code 128 and the UCC-128 Shipping Standard ............................................................... 41
Code 128/UCC-128 Specifications ...................................................................... 42
Codabar............................................................................................................................. 42
Codabar Specifications ......................................................................................... 43
MSI Plessey Bar Codes ...................................................................................................... 43
MSI Plessey Specifications .................................................................................... 43
Postnet and Facing Identification Marks............................................................................ 43
Postnet and FIM Specifications ............................................................................ 44
Bar Code Commands ........................................................................................................ 44
Bar Code Command............................................................................................. 45
Bar Code Text Command .................................................................................... 46
Count Command ................................................................................................. 47
vi
EasyCoder PL-Series Printer Programmer’s Reference Manual
Standard Bar Codes................................................................................. 45
Page 7
6
7
Contents
Two-Dimensional Bar Codes.............................................................................................. 49
What is a Two-Dimensional Bar Code?............................................................................. 50
PDF417............................................................................................................................. 50
MaxiCode.......................................................................................................................... 50
Two-Dimensional Bar Code Commands........................................................................... 51
PDF417 (Portable Data File)................................................................................ 51
MaxiCode............................................................................................................. 52
Graphics.......................................................................................................................................... 57
Box Command .................................................................................................................. 58
Line Commands ................................................................................................................ 59
Inverse-Line Commands.................................................................................................... 60
Pattern Command ............................................................................................................. 61
8
Graphics Commands ......................................................................................................... 62
PCX Command................................................................................................................. 63
Advanced Commands ............................................................................................................ 67
Contrast Command........................................................................................................... 68
Tone Command ................................................................................................................ 68
Justification Commands .................................................................................................... 69
Page-Width Command...................................................................................................... 69
Pace Command ................................................................................................................. 70
Auto-Pace Command ........................................................................................................ 71
No-Pace Command ........................................................................................................... 72
Wait Command................................................................................................................. 72
Speed Command ............................................................................................................... 73
SETSP Command ............................................................................................................. 73
On-Out-Of-Paper Command............................................................................................ 74
On-Feed Command .......................................................................................................... 74
EasyCoder PL-Series Printer Programmer’s Reference Manual
vii
Page 8
9
Contents
Prefeed Command............................................................................................................. 76
Postfeed Command ........................................................................................................... 77
Present-At Command ........................................................................................................ 77
Country/Code Page Command ......................................................................................... 78
Using Format Files ............................................................................................................ 79
Beep Command................................................................................................................. 80
Line Print Mode.......................................................................................................................... 83
What is Line Print Mode?.................................................................................................. 84
Special Commands Using the Utility Function.................................................................. 84
Units Commands .............................................................................................................. 85
SETLP Command............................................................................................................. 85
SETLF Command............................................................................................................. 86
Moving With X and Y Coordinates ................................................................................... 87
LMARGIN Command...................................................................................................... 87
SETBOLD Command ...................................................................................................... 87
SETSP Command ............................................................................................................. 88
Page-Width and Page-Height Commands ......................................................................... 88
Special ASCII Characters................................................................................................... 89
Form Feed ............................................................................................................ 89
Backspace ............................................................................................................. 89
SETFF Command ............................................................................................................. 89
SET-TOF Command ........................................................................................................ 90
Tearing the Paper .............................................................................................................. 90
Bar Codes and Graphics .................................................................................................... 91
Bar Codes............................................................................................................. 91
Graphics............................................................................................................... 91
SETLP-Timeout Command .............................................................................................. 91
Designing a Receipt........................................................................................................... 92
Receipt Examples.................................................................................................. 92
viii
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 9
10
Contents
Advanced Utilities .................................................................................................................... 95
What are the Advanced Utilities? ....................................................................................... 96
Version Utility................................................................................................................... 96
Checksum Utility .............................................................................................................. 97
DEL Utility ....................................................................................................................... 97
DIR Utility........................................................................................................................ 97
Define-File (DF) Utility .................................................................................................... 98
Type Utility....................................................................................................................... 98
Baud Utility....................................................................................................................... 99
Country/Code Page Utility................................................................................................ 99
Timeout Utility ............................................................................................................... 101
11
12
Beep Command............................................................................................................... 102
LT Command ................................................................................................................. 102
Printer Escape Commands................................................................................................. 105
Set and Read Code Command......................................................................................... 106
Status/Information .......................................................................................................... 106
Get Printer Status ............................................................................................... 107
Acknowledge Printer Reset ................................................................................. 107
Get Printer Information (GPI.LBL) ................................................................... 107
Get Extended Printer Status ............................................................................... 108
User Label Count ............................................................................................................ 108
Get User Label Count (GULC.LBL) .................................................................. 108
Reset User Label Count (RULC.LBL) ................................................................ 108
Power Off Command ...................................................................................................... 109
LCD Programming for PL-Series .................................................................................... 111
Using the Information in This Chapter ........................................................................... 112
Example 1........................................................................................................................ 112
Example 2:....................................................................................................................... 114
EasyCoder PL-Series Printer Programmer’s Reference Manual
ix
Page 10
13
Contents
Configuration/Control Commands .............................................................................. 117
What are the Commands in This Chapter?...................................................................... 118
Printing Parameter Values ............................................................................................... 118
Command Format........................................................................................................... 119
getvar Command................................................................................................ 119
setvar Command ................................................................................................ 119
do Command ..................................................................................................... 120
Commands and Parameters ............................................................................................. 120
Application Parameters....................................................................................... 120
appl.date................................................................................................ 120
appl.name.............................................................................................. 121
appl.version ........................................................................................... 121
Bluetooth Parameters.......................................................................................... 121
bluetooth.address................................................................................... 121
bluetooth.authentication........................................................................ 122
bluetooth.bluetooth_pin........................................................................ 122
bluetooth.date........................................................................................ 123
bluetooth.discoverable ........................................................................... 123
bluetooth.friendly_name........................................................................ 123
bluetooth.local_name ............................................................................ 124
bluetooth.version................................................................................... 124
Communications Port Parameters ...................................................................... 124
comm.parity .......................................................................................... 124
comm.baud ........................................................................................... 125
comm.stop_bits ..................................................................................... 125
Device Parameters .............................................................................................. 126
device.friendly_name............................................................................. 126
device.reset ............................................................................................ 126
device.restore_defaults ........................................................................... 126
head.latch .............................................................................................. 127
Display Parameters ............................................................................................. 127
display.contrast...................................................................................... 127
display.backlight.................................................................................... 127
display.text ............................................................................................ 128
File Parameters ................................................................................................... 128
file.delete ............................................................................................... 128
file.dir.................................................................................................... 128
file.print ................................................................................................ 129
file.rename............................................................................................. 129
file.run................................................................................................... 129
file.type.................................................................................................. 129
Input Parameter.................................................................................................. 130
input.capture ......................................................................................... 130
Media Parameters ............................................................................................... 131
media.sense_mode ................................................................................. 131
media.status........................................................................................... 131
media.tof ............................................................................................... 131
media.type............................................................................................. 132
Memory Parameters............................................................................................ 132
x
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 11
Contents
memory.flash_size.................................................................................. 132
memory.flash_free ................................................................................. 132
memory.ram_size................................................................................... 133
memory.ram_free .................................................................................. 133
Odometer Parameter .......................................................................................... 133
odometer.user_label_count.................................................................... 133
Power Parameters ............................................................................................... 134
power.ascii_graph.................................................................................. 134
power.dtr_power_off............................................................................. 134
power.inactivity_timeout....................................................................... 135
power.low_battery_timeout................................................................... 135
power.low_battery_shutdown................................................................ 135
power.low_battery_warning .................................................................. 136
power.percent_full................................................................................. 136
power.status........................................................................................... 136
power.voltage......................................................................................... 136
Test Function Parameters ................................................................................... 137
test.feed ................................................................................................. 137
test.print_diags ...................................................................................... 137
test.report_diags .................................................................................... 137
Networking Parameters ...................................................................................... 138
card.mac_addr....................................................................................... 138
ip.addr................................................................................................... 138
ip.dhcp.enable ....................................................................................... 138
ip.ftp.enable........................................................................................... 139
ip.gateway.............................................................................................. 139
ip.http.enable......................................................................................... 139
ip.lpd.enable.......................................................................................... 140
ip.netmask ............................................................................................. 140
ip.ping_remote ...................................................................................... 140
ip.pop3.enable....................................................................................... 141
ip.pop3.password................................................................................... 141
ip.pop3.poll........................................................................................... 141
ip.pop3.print_body ............................................................................... 142
ip.pop3.print_headers............................................................................ 142
ip.pop3.save_attachments...................................................................... 143
ip.pop3.server_addr............................................................................... 143
ip.port ................................................................................................... 144
ip.remote ............................................................................................... 144
ip.smtp.enable ....................................................................................... 144
ip.smtp.server_addr ............................................................................... 145
ip.snmp.enable ...................................................................................... 145
ip.snmp.get_community_name ............................................................. 145
ip.snmp.set_community_name.............................................................. 146
ip.snmp.create_mib ............................................................................... 146
ip.tcp.enable .......................................................................................... 147
ip.telnet.enable ...................................................................................... 147
ip.udp.enable......................................................................................... 147
wlan.associated ...................................................................................... 148
wlan.auth_type ...................................................................................... 148
wlan.current_essid ................................................................................. 148
wlan.current_tx_rate.............................................................................. 149
wlan.encryption_index .......................................................................... 149
EasyCoder PL-Series Printer Programmer’s Reference Manual
xi
Page 12
14
Contents
wlan.encryption_key1............................................................................ 149
wlan.encryption_key2............................................................................ 150
wlan.encryption_key3............................................................................ 150
wlan.encryption_key4............................................................................ 151
wlan.encryption_mode .......................................................................... 151
wlan.essid .............................................................................................. 152
wlan.kerberos.kdc .................................................................................. 152
wlan.kerberos.mode............................................................................... 153
wlan.kerberos.password ......................................................................... 153
wlan.kerberos.realm............................................................................... 154
wlan.kerberos.username......................................................................... 154
wlan.leap_mode..................................................................................... 155
wlan.leap_password ............................................................................... 155
wlan.leap_username............................................................................... 156
wlan.operating_mode ............................................................................ 156
wlan.power_save.................................................................................... 157
wlan.preamble ....................................................................................... 157
wlan.station_name................................................................................. 158
Printer Configuration and Setup................................................................................... 159
Power Management ......................................................................................................... 160
Synchronized On/Off Control Via Printer’s DSR Line....................................... 160
Power On/Off Control.......................................................................... 160
Bluetooth Radio Control....................................................................... 160
Shutting Off the Printer Remotely...................................................................... 161
Entering Low-Power Mode When Idle............................................................... 161
A
B
C
Batch Files ....................................................................................................................... 161
RUN.BAT Command and File........................................................................................ 162
Re-Run Command .......................................................................................................... 162
Gap Sense and Bar Sense Commands .............................................................................. 163
Troubleshooting...................................................................................................................... 165
Interface Cables ....................................................................................................................... 169
Bi-Directional Serial Interface Cable, DB-9 to 8 Pin DIN............................................... 170
Interface Cables for Specific Terminals ............................................................................ 170
Character Tables...................................................................................................................... 173
ASCII Table Hexadecimal Values.................................................................................... 174
xii
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 13
D
E
I
Contents
International ISO Substitution Characters....................................................................... 174
CP850 Character Set ....................................................................................................... 175
Latin 1 Character Set....................................................................................................... 176
Font Information..................................................................................................................... 177
Font Heights ................................................................................................................... 178
Fixed-Width Fonts .......................................................................................................... 178
Proportional Width Fonts ............................................................................................... 179
Bar Code Quick Reference ................................................................................................. 183
Bar Code Quick Reference Table..................................................................................... 184
Index................................................................................................................................................. 187
EasyCoder PL-Series Printer Programmer’s Reference Manual
xiii
Page 14
Contents
xiv
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 15
Before You Begin
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual
xv
Page 16
Before You Begin
Safety Icons
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.
xvi
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 17
Before You Begin
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual
xvii
Page 18
Before You Begin
xviii
EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 19
Programming Introduction
1
This chapter covers
• manual conventions.
• getting printer information.
• communications diagnostic mode.
• label coordinate system.
• Intermec PLUS.
EasyCoder PL-Series Printer Programmer’s Reference Manual 1
Page 20
Chapter 1— Programming Introduction
Manual Conventions
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).
2 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 21
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Chapter 1— Programming Introduction
Intermec PL4
CHK: FFFF HTSE7940 /18 Testing Memory... Memory tested and OK Baud Rate: 19200 BPS In-activity Timeout: 120 Secs Low battery Shut-down: 170
End of report.
V79.40 12/23/02
Print Head Test
Getting Printer Information: Example of the first report
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
1234567890
Intermec PL4 V79/00 08/24/01
Serial Number:
XXEC00-10-0042
xxQF00-10-0042
Name: xxQF00-10-0042 Program:
Firmware:HTQ47940 /18 Chksum:F18A Software:HTK44L Chksum:5C8F Ver:L4.R79.40.U176.B19.T19.A00 Cable Communications: 19200 BPS, N,8,1
Handshake:hardware DSR: 1 Bridge mode: off Wireless Communications:
Unit Serial Number
Application Number
Report appears only on units with wireless options installed. Units with no wireless options will print an empty line and resume the report
Example of the beginning of the second report
EasyCoder PL-Series Printer Programmer’s Reference Manual 3
Page 22
Chapter 1— Programming Introduction
PCMCIA/CF Adapter 1.0 Build Date: Jan 15 2003 Build Time: 12:09:01
Card Detected.
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
802.11b settings
Bluetooth Software Version
Bluetooth settings
4 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 23
Peripherals:
MCR 2.00 LCD: Installed Expansion module: 0x1D
802.11/b PCMCIA 5V Other : 0F
Power Management:
In-activity Timeout:120 Secs Low-battery Timeout:60 Secs Remote(DTR) pwr-off:Enabled Voltage :6.98(179) Low-bat Warning :6.86(176) Low-bat Shut-down:6.55(168)
Memory(0):
Flash :2097151 Bytes RAM :2097151 Bytes
Label:
Width :800 dots, 100 mm Height:15095 dots, 1886 mm
Sensors: (Adj)
Pres [DAC:143,Thr:120,Cur: 13] Label Present Media [ 8 (384 dots)] Gap [DAC: 0,Thr: 30,Cur: 6] Bar [DAC: 0,Thr: 70,Cur: 11] Termperature :165 Voltage :6.94(178)
Resident Fonts:
Font Sizes Chars 0 0-6 20-FF 1 0 20-80 2 0-1 20-59 4 0-7 20-FF 5 0-3 20-FF 6 0 20-44 7 0-1 20-FF
File Directory:
File Size DIAGS .BAT 1427 INDEX .WML 4723 1226000 Bytes Free
Command Language:
CCL Key '!'[21]
Chapter 1— Programming Introduction
Flash memory size
Maximum label size
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.
To enter Dump mode
1 Turn the printer off.
EasyCoder PL-Series Printer Programmer’s Reference Manual 5
Page 24
Chapter 1— Programming Introduction
2 Hold the Feed button down.
3 Turn the printer on.
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.
6 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 25
Chapter 1— Programming Introduction
Label Width
(0.0)
Label Height
Example of label coordinate system
Print Direction
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.”
EasyCoder PL-Series Printer Programmer’s Reference Manual 7
Page 26
Chapter 1— Programming Introduction
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.
8 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 27
Printer Commands
2
This chapter provides information on
• Command start line.
• Printer commands.
• Print command.
• Form command.
• Journal command.
• Units commands.
• Using comments.
EasyCoder PL-Series Printer Programmer’s Reference Manual 9
Page 28
Chapter 2— Printer Commands
Command Start Line
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.)
10 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 29
First black bar or gap
Maximum height = d – 1.5 mm (0.062 inch)
Second black bar or gap
{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
printing.
Format: {command}
EasyCoder PL-Series Printer Programmer’s Reference Manual 11
Page 30
Chapter 2— Printer Commands
where: {command}: FORM
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.
Format: {command}
where:
{command}: Choose from the following:
IN-INCHES Measurement in inches.
IN-CENTIMETERS Measurement in centimeters.
IN-MILLIMETERS Measurement in millimeters.
IN-DOTS Measurement in dots.
12 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 31
Example Input 1: Input 1 (UNITS1.LBL):
! 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.
Example Input: Input (COMMENT.LBL):
! 0 200 200 25 1 IN-MILLIMETERS JOURNAL
EasyCoder PL-Series Printer Programmer’s Reference Manual 13
Page 32
Chapter 2— Printer Commands
; Center justify text CENTER ; Print the words 'A COMMENT' TEXT 5 1 0 5 A COMMENT ; Print the label and go to top of next form FORM PRINT
Example Output:
14 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 33
Text
3
This chapter provides samples of resident fonts and explains how to use the following commands:
• Text commands
• Text Concatenation commands
• Multiline commands
• Count command
• Setmag command
EasyCoder PL-Series Printer Programmer’s Reference Manual 15
Page 34
Chapter 3— Text
Resident Font Samples
This section provides samples of how the fonts resident on the printer print.
16 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 35
Chapter 3— Text
EasyCoder PL-Series Printer Programmer’s Reference Manual 17
Page 36
Chapter 3— Text
Text 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.
18 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 37
TEXT90 (Same as VTEXT above.) (or T90)
TEXT180 Prints text (upside down) rotated (or T180) 180 degrees counterclockwise.
TEXT270 Prints text (vertically) rotated 270 (or T270) degrees counterclockwise.
{font}: Name or number of the font. For help, see “Resident Font
Samples” earlier in this chapter.
{size}: Size identifier for the font. For help, see “Resident Font
Samples” earlier in this chapter.
{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}: The text to be printed.
Example Input: Input (TEXT.LBL):
Chapter 3— Text
! 0 200 200 210 1 TEXT 4 0 200 100 TEXT TEXT90 4 0 200 100 T90 TEXT180 4 0 200 100 T180 TEXT270 4 0 200 100 T270 FORM PRINT
Example Output:
Font-Group Command
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 19
Page 38
Chapter 3— Text
Format: {command} {fg fn fs} [fn fs] ...
where:
{command}: FG
{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.
20 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 39
Format: {command} {x} {y}
{font} {size} {offset} {data}
“ “ “
{font} {size} {offset} {data} <ENDCONCAT>
where:
{command}: Choose from the following:
{x}: Horizontal starting position. For help, see “Label
{y}: Vertical starting position. For help, see “Label
{font}: Name or number of the font. For help, see “Resident
{size}: Size identifier for the font. For help, see “Resident
Chapter 3— Text
CONCAT Horizontal concatenation.
VCONCAT Vertical concatenation.
Coordinate System” in Chapter 1.
Coordinate System” in Chapter 1.
Font Samples” earlier in this chapter.
Font Samples” earlier in this chapter.
{offset}: Unit-value to offset text from the starting position.
Used to align individual text strings or create superscript/subscript characters. For help, see “Units Commands” in Chapter 2.
{data}: Text to be printed.
<ENDCONCAT>: Terminates concatenation.
Example Input: Input (CONCAT.LBL):
! 0 200 200 210 1 CONCAT 75 75 4 2 5 $ 4 3 0 12 4 2 5 34 ENDCONCAT FORM PRINT
Example Output:
EasyCoder PL-Series Printer Programmer’s Reference Manual 21
Page 40
Chapter 3— Text
Multiline Commands
Purpose: The Multiline (ML) command allows you to print multiple lines of text
using the same font and line-height.
Format: {command} {height}
{text} {font} {size} {x} {y} {data}
{data} <ENDMULTILINE>
where:
{command}: Choose from the following:
MULTILINE Prints multiple lines of text. (or ML)
{height}: Unit-height for each line of text. For help, see
Appendix D, “Font Information.”
{text}: Text command (TEXT, VTEXT, etc.). For help,
{font}: Name or number of the font. For help, see
{size}: Size identifier for the font. For help, see
{x}: Horizontal starting position. For help, see “Label
{y}: Vertical starting position. For help, see “Label
{data}: Text to be printed.
<ENDMULTILINE>: Terminates MULTILINE.
(or ENDML)
Example Input: Input (MULTIL.LBL):
! 0 200 200 210 1 ML 47 TEXT 4 0 10 20 1st line of text 2nd line of text : Nth line of text ENDML FORM PRINT
see “Text Commands” earlier in this chapter.
“Resident Font Samples” earlier in this chapter.
“Resident Font Samples” earlier in this chapter.
Coordinate System” in Chapter 1.
Coordinate System” in Chapter 1.
22 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 41
Chapter 3— Text
Example Output:
Count Command
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
EasyCoder PL-Series Printer Programmer’s Reference Manual 23
Page 42
Chapter 3— Text
Example Output:
Setmag Command
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
24 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 43
Example Output:
Chapter 3— Text
TEXT 0 0 0 110 Font 0-0 at SETMAG 2 2 SETMAG 2 4 TEXT 0 0 0 145 Font 0-0 at SETMAG 2 4 ; Restore default font sizes SETMAG 0 0 FORM PRINT
EasyCoder PL-Series Printer Programmer’s Reference Manual 25
Page 44
Chapter 3— Text
26 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 45
Scalable Text
4
This chapter explains what scalable text is and provides information on the following commands:
• Scale-Text commands
• Scale-To-Fit commands
• Scalable Concatenation commands
• Rotate commands
EasyCoder PL-Series Printer Programmer’s Reference Manual 27
Page 46
Chapter 4— Scalable Text
What is Scalable Text?
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
width and height of the font.
Format: {command} {name} {width} {height} {x} {y} {data}
where:
{command}: Choose from the following:
SCALE-TEXT: Prints scaled text horizontally.
(or ST)
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
28 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 47
Example Output:
T
T
Chapter 4— Scalable Text
; Print using x scale of 10 points and y scale ; of 20 points SCALE-TEXT PLL_LAT.CSF 10 20 0 150 TALLER FONT FORM PRINT
10 POINT FONT
WIDER FONT
ALLER FON
Scale-To-Fit Commands
Purpose: The Scale-To-Fit commands automatically calculate the scale in order to
fit text inside a window.
Format: {command} {name} {width} {height} {x} {y} {data}
where:
{command}: Choose from the following:
SCALE-TO-FIT: Prints scaled text horizontally.
(or STF)
VSCALE-TO-FIT: Prints scaled text vertically. (or VSTF)
{name}: Font name. For help, see “Resident Font Samples” in
Chapter 3.
{width}: Unit-width of the window. For help, see Appendix D, “Font
Information.”
{height}: Unit-height of the window. For help, see Appendix D,
{x}: Horizontal starting position. For help, see “Label
{y}: Vertical starting position. For help, see “Label Coordinate
{data}: Text to be printed.
Example Input: Input (STF.LBL):
! 0 200 200 100 1 IN-MILLIMETERS CENTER
EasyCoder PL-Series Printer Programmer’s Reference Manual 29
“Font Information.”
Coordinate System” in Chapter 1.
System” in Chapter 1.
Page 48
Chapter 4— Scalable Text
Example Output:
; 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.
Format: {command} {x} {y}
<ST> {name} {width} {height} {offset} {data} “ “ “ “ “ “ <ST> {name} {width} {height} {offset} {data} <ENDCONCAT>
where:
{command}: Choose from the following:
VCONCAT Vertical concatenation.
{x}: Horizontal starting position. For help, see “Label
{y}: Vertical starting position. For help, see “Label
CONCAT Horizontal concatenation.
Coordinate System” in Chapter 1.
Coordinate System” in Chapter 1.
{name}: Font name. For help, see “Resident Font Samples”
{width}: Font width point size. For help, see Appendix D,
30 EasyCoder PL-Series Printer Programmer’s Reference Manual
in Chapter 3.
“Font Information.”
Page 49
{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
EasyCoder PL-Series Printer Programmer’s Reference Manual 31
Page 50
Chapter 4— Scalable Text
Example Output:
ST PLL_LAT.CSF 20 20 20 $ ST PLL_LAT.CSF 40 40 0 22 ST PLL_LAT.CSF 20 20 0 99 ENDCONCAT FORM PRINT
32 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 51
Linear Bar Codes
5
This chapter covers
• bar code standards.
• resident linear bar code samples.
• UPC and EAN/JAN bar codes.
• Code 39 or Code 3 of 9 bar codes.
• Code 93 or Code 9 of 3 bar codes.
• Interleaved 2 of 5 bar codes.
• Code 128 and the UCC-128 shipping standard.
• Codabar.
• MSI Plessey bar codes.
• Postnet and Facing Identification Marks.
• Bar Code commands.
EasyCoder PL-Series Printer Programmer’s Reference Manual 33
Page 52
Chapter 5— Linear Bar Codes
Bar Code Standards
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.
34 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 53
Resident Linear Bar Code Samples
Chapter 5— Linear Bar Codes
EasyCoder PL-Series Printer Programmer’s Reference Manual 35
Page 54
Chapter 5— Linear Bar Codes
UPC and EAN/JAN Bar Codes
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).
36 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 55
Chapter 5— Linear Bar Codes
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 37
Page 56
Chapter 5— Linear Bar Codes
UPC/EAN Specifications
Bar Code Symbology
UPC-A UPCA 11 or 12 digits 0-9 only 2:1 2 mod 10
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.
38 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 57
Chapter 5— Linear Bar Codes
Check Character Numerical Value Table
Char Value Char Value Char Value Char Value
0 0 C 12 O 24 - 36
1 1 D 13 P 25 . 37
2 2 E 14 Q 26
3 3 F 15 R 27 $ 39
4 4 G 16 S 28 / 40
5 5 H 17 T 29 + 41
6 6 I 18 U 30 % 42
7 7 J 19 V 31 $ (full) 43*
8 8 K 20 W 32 % (full) 44*
9 9 L 21 X 33 / (full) 45*
A 10 M 22 Y 34 + (full) 46*
B 11 N 23 Z 35
SPACE
38
* Full represents F39 or F39C for Full ASCII
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 2: Add the values (12 + 24 + 13 + 14 + 38 + 3 + 9 = 113).
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.
Code 39 (3 of 9) Specifications
Bar Code Symbology
Code 39 39 Variable Refer to text 2.5:1 2 none
39C Variable Refer to text 2.5:1 2 mod 43
F39 Variable Refer to text 2.5:1 2 none
F39C Variable Refer to text 2.5:1 2 mod 43
Bar Code Type
Input Length
Characters
Ideal Wide/Narrow Ratio
Ideal Narrow Dot Width
Checksum Calculation
EasyCoder PL-Series Printer Programmer’s Reference Manual 39
Page 58
Chapter 5— Linear Bar Codes
Code 93 or Code 9 of 3 Bar Codes
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.
40 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 59
Interleaved 2 of 5 Specifications
Chapter 5— Linear Bar Codes
Bar Code Symbology
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 41
Page 60
Chapter 5— Linear Bar Codes
Code 128/UCC-128 Specifications
Bar Code Symbology
Code 128 /A/B/C/Auto
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.
42 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 61
Codabar Specifications
Chapter 5— Linear Bar Codes
Bar Code Symbology
Codabar CODABAR Variable 0-9, A-D
CODABAR
Bar Code Type
16
Input Length
Variable 0-9, A-D,
Characters
symbol
symbol
Ideal Wide/Narrow Ratio
2.5:1 2 None
2.5:1 2 mod 16
Ideal Narrow Dot Width
Checksum Calculation
MSI Plessey Bar Codes
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
EasyCoder PL-Series Printer Programmer’s Reference Manual 43
Page 62
Chapter 5— Linear Bar Codes
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.”
44 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 63
Chapter 5— Linear Bar Codes
Bar Code Command
The Bar Code command prints bar codes in both vertical and horizontal orientations at specified widths and heights.
Standard Bar Codes
Format: {command} {type} {width} {ratio} {height} {x} {y} {data}
where:
{command}: Choose from the following:
BARCODE Prints bar code horizontally. (or B)
VBARCODE Prints bar code vertically. (or VB)
{type}: Choose from the following table:
Symbology Use
UPC-A UPCA, UPCA2, UPCA5
UPC-E UPCE, UPCE2, UPCE5
EAN/JAN-13 EAN13, EAN132, EAN135
EAN/JAN-8 EAN8, EAN82, EAN 85
Code 39 39, 39C, F39, F39C
Code 93/Ext. 93 93
Interleaved 2 of 5 I2OF5
Code 128 (Auto) 128
UCC EAN 128 UCCEAN128
Codabar CODABAR, CODABAR16
MSI/Plessy MSI, MSI10, MSI1010, MSI1110
Postnet POSTNET
FIM FIM
{width}: Unit-width of the narrow bar. For help, see Appendix D,
“Font Information.”
{ratio}: Ratio of the wide bar to the narrow bar. Refer to the table in
0 = 1.5 : 1 20 = 2.0:1 26 = 2.6:1
1 = 2.0 : 1 21 = 2.1:1 27 = 2.7:1
2 = 2.5 : 1 22 = 2.2:1 28 = 2.8:1
3 = 3.0 : 1 23 = 2.3:1 29 = 2.9:1
4 = 3.5 : 1 24 = 2.4:1 30 = 3.0:1
25 = 2.5:1
EasyCoder PL-Series Printer Programmer’s Reference Manual 45
Appendix E, “Bar Code Quick Reference,” for appropriate settings.
Page 64
Chapter 5— Linear Bar Codes
Note: The ratios in Appendix E, “Bar Code Quick Reference,” are suggested for best results; however, you can assign any ratio.
{height}: Unit-height of the bar code. 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}: Bar code data.
Example Input: Input (BAR CODE.LBL):
! 0 200 200 210 1 BARCODE 128 1 1 50 150 10 HORIZ. TEXT 7 0 210 60 HORIZ. VBARCODE 128 1 1 50 10 200 VERT. VTEXT 7 0 60 140 VERT. FORM PRINT
Example Output:
Bar Code Text Command
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.
Use BARCODE-TEXT OFF (or BT OFF) to disable.
Format: {command} {font number} {font size} {offset}
where:
{command}: BARCODE-TEXT (or BT)
{font number}: The font number to use when annotating the bar code. For
{font size}: The font size to use when annotating the bar code. For
46 EasyCoder PL-Series Printer Programmer’s Reference Manual
help, see “Resident Font Samples” in Chapter 3.
help, see “Resident Font Samples” in Chapter 3.
Page 65
{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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 47
Page 66
Chapter 5— Linear Bar Codes
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
Example Output:
48 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 67
Two-Dimensional Bar Codes
6
This chapter provides information on
• PDF417.
• MaxiCode.
• Two-Dimensional Bar Code commands.
EasyCoder PL-Series Printer Programmer’s Reference Manual 49
Page 68
Chapter 6— Two-Dimensional Bar Codes
What is a Two-Dimensional Bar Code?
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
50 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 69
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.
PDF417 (Portable Data File)
Chapter 6— Two-Dimensional Bar Codes
Format: {command} {type} {x} {y} [XD n] [YD n] [C n] [S n]
{data} <ENDPDF>
where:
{command}: Choose from the following:
BAR CODE Prints bar code horizontally. (or B)
VBAR CODE Prints bar code vertically. (or VB)
{type}: PDF417
{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.
[XD n]: Unit-width of the narrowest element. Range is 1 to 32.
Default is 2.
[YD n]: Unit-height of the narrowest element. Range is 1 to 32.
Default is 6.
[C n]: Number of columns to use. Data columns do not include
[S n]: Security level indicates maximum amount of errors to be
{data}: Bar code data.
EasyCoder PL-Series Printer Programmer’s Reference Manual 51
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
Coordinate System” in Chapter 1.
Coordinate System” in Chapter 1.
52 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 71
Chapter 6— Two-Dimensional Bar Codes
{tag}: Tags not supplied will be filled with default values.
Use only the tags that you require. Tags can be in any order.
<ENDMAXICODE> Final tag in MaxiCode bar code.
Tags encoded in the high priority message of all MaxiCodes:
Tag Definition Default Value
POST Postal or ZIP Code -empty-
CC Country Code (from ISO 3166) 840 (USA)
SC Service Class 1
Tags to control the type of bar code created:
Tag Definition Default Value
UPS5 Use UPS5 tags to create the low priority
message (On: 1, Off: 0)
ZIPPER Turn the zipper and contrast patterns on or
off. (On: 1, Off: 0)
FILLC Low priority message fill character (messages
shorter than 84 characters are padded with this character).
0
0
!
Tags used when UPS5 is turned off:
Tag Definition Default Value
MSG Low priority message field (maximum of 84
characters, overwritten by UPS5 tags).
-empty-
Tags used when UPS5 is turned on:
Tag Definition Default Value
LPMS Low priority message header [)>[RS]
HEAD Transportation data format header 01[GS]98
TN Tracking Number [GS]
SCAC Standard Carrier Alpha Code UPSN
SHIPPER UPS Shipper Number [GS]
PICKDAY Julian day of pickup [GS]
SHIPID Shipment ID Number [GS]
NX Package N of X (n/x) [GS]
WEIGH Package weight [GS]
VAL Address validation (Y or N) [GS]
STADDR Ship to street address [GS]
CITY Ship to city [GS]
ST Ship to state [GS]
EXTRA Extra user defined fields - empty -
EasyCoder PL-Series Printer Programmer’s Reference Manual 53
Page 72
Chapter 6— Two-Dimensional Bar Codes
Tags Used When UPS5 is Turned On
Tag Definition Default Value
EOT End of transmission character 0x004h
GS Field separator character [GS] 0x01Dh
RS Format type separator [RS] 0x01Eh
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
54 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 73
Example 2 Output:
Example 3 Input: ! 0 200 200 600 1
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
Chapter 6— Two-Dimensional Bar Codes
Example 3 Output:
Example 3 decodes to:
EasyCoder PL-Series Printer Programmer’s Reference Manual 55
Page 74
Chapter 6— Two-Dimensional Bar Codes
56 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 75
Graphics
7
This chapter provides the format and examples of the following commands:
• Box command
• Line commands
• Inverse-Line command
• Pattern command
• Graphics commands
• PCX commands
EasyCoder PL-Series Printer Programmer’s Reference Manual 57
Page 76
Chapter 7— Graphics
Box Command
Purpose: You use the Box command to draw rectangular shapes of specified line
thickness.
Format: {command} {x
0
} {y
where:
{command}: BOX
{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 the bottom right corner. For help, see “Label
Coordinate System” in Chapter 1.
{y1}: y-coordinate of the bottom right corner. For help, see “Label
Coordinate System” in Chapter 1.
{width}: Unit-width (or thickness) of the lines forming the box. For
help, see “Units Commands” in Chapter 2.
Example Input: Input (BOX.LBL):
! 0 200 200 210 1 BOX 0 0 200 200 1 FORM PRINT
} {x1} {y1} {width}
0
Example Output:
0,0
200,200
Note: Text coordinates (in output) are shown for illustration purposes only.
58 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 77
Chapter 7— Graphics
Line Commands
Purpose: You can draw lines of any length, thickness, and angular orientation using
the Line command.
Format: {command} {x
0
} {y
where:
{command}: Choose from the following:
LINE Prints a line. (or L)
{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 line. For help, see “Units
Commands” in Chapter 2.
Example Input: Input (LINE.LBL):
} {x1} {y1} {width}
0
! 0 200 200 210 1 LINE 0 0 200 0 1 LINE 0 0 200 200 2 LINE 0 0 0 200 3 FORM PRINT
Example Output:
0,0
0,200
EasyCoder PL-Series Printer Programmer’s Reference Manual 59
200,0
200,200
Page 78
Chapter 7— Graphics
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
60 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 79
Example Output 1:
Example Input 2: Input 2 (INVERSE2.LBL):
! 0 200 200 210 1 T 4 2 30 20 $123.45 T 4 2 30 70 $678.90 IL 25 40 350 40 90 T 4 2 30 120 $432.10 FORM PRINT
Example Output 2:
Chapter 7— Graphics
Pattern Command
Purpose: You use the Pattern command with the Line and Scale-Text commands to
change the patterns used to fill these shapes. Valid pattern values are listed below.
Format: {command} {pattern number}
where:
{command}: PATTERN
{pattern number}: Choose from the following:
100 Filled (solid black/default pattern).
101 Horizontal lines.
102 Vertical lines.
103 Right rising diagonal lines.
104 Left rising diagonal lines.
105 Square pattern.
106 Cross hatch pattern.
EasyCoder PL-Series Printer Programmer’s Reference Manual 61
Page 80
Chapter 7— Graphics
Example Input: Input (PATTERN.LBL):
! 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.
62 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 81
VEXPANDED-GRAPHICS Prints expanded (or VEG) graphics vertically.
COMPRESSED-GRAPHICS Prints compressed (or CG) graphics horizontally.
VCOMPRESSED-GRAPHICS Prints compressed (or VCG) graphics vertically.
{width}: Byte-width of image.
{height}: Dot-height of image.
{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}: Graphics data.
Example Input: Input (GRAPHIC.LBL):
! 0 200 200 210 1 EG 2 16 90 45 F0F0F0F0F0F0F0F00F0F0F0F0F0F0F0F F0F0F0F0F0F0F0F00F0F0F0F0F0F0F0F FORM PRINT
Chapter 7— Graphics
Example Output:
Note: Graphic output has been magnified. Actual size is 1/4 of output shown.
PCX Command
Purpose: The PCX command gives you the ability to send .PCX graphics formatted
images to the printer. The .PCX image must be encoded as a black and white image.
Format: {command} {x} {y}
{data}
where:
{command}: PCX
{x}: x-coordinate of the top-left corner. For help, see “Label
EasyCoder PL-Series Printer Programmer’s Reference Manual 63
Coordinate System” in Chapter 1.
Page 82
Chapter 7— Graphics
{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.
Input 2 (IMAGE.LBL):
! 0 200 200 500 1 PCX 0 30 !<IMAGE.PCX FORM PRINT
64 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 83
Output:
Chapter 7— Graphics
EasyCoder PL-Series Printer Programmer’s Reference Manual 65
Page 84
Chapter 7— Graphics
66 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 85
Advanced Commands
8
This chapter provides the format and examples for the following commands:
• Contrast command • SETSP command
• Tone command • On-Out-Of-Paper command
• Justification commands • On-Feed command
• Page-Width command • Prefeed command
• Pace command • Postfeed command
• Auto-Pace command • Present-At command
• No-Pace command • Country/Code Page command
• Wait command • Beep command
• Speed command
EasyCoder PL-Series Printer Programmer’s Reference Manual 67
Page 86
Chapter 8— Advanced Commands
Contrast Command
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.
Format: {command} {level}
where:
{command}: TONE
{level}: select a value from –99 to 200.
Contrast to Tone level equivalents.
Contrast 0 = Tone 0
Contrast 1 = Tone 100
Contrast 2 = Tone 200
Contrast 3 = No equivalent
68 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 87
Chapter 8— Advanced Commands
Justification Commands
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 69
Page 88
Chapter 8— Advanced Commands
Format: {command} {width}
where:
{command}: Choose from the following:
PAGE-WIDTH Specifies page width.
(or PW)
{width}: Unit-width of the page. For help, see “Units Commands” in
Chapter 2.
Example Input 1: Input 1 (PW1.LBL):
! UTILITIES SETLP 7 0 15 PW 300 PRINT
This text is printed with label memory width set to 300 dots.
Example Output 1:
Example Input 2: Input 2 (PW2.LBL):
! UTILITIES SETLP 7 0 15 PW 200 PRINT
This text is printed with label memory width set to 200 dots.
Example Output 2:
Pace Command
Purpose: You can use this command with batch printing. When Pace is activated,
you must press the Feed button to print additional labels until the batch quantity is exhausted. By default, pacing is disabled on power up.
70 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 89
Chapter 8— Advanced Commands
Format: {command}
where:
{command}: PACE
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.
Format: {command}
EasyCoder PL-Series Printer Programmer’s Reference Manual 71
Page 90
Chapter 8— Advanced Commands
where:
{command}: AUTO-PACE
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.
Format: {command} {delay-time}
where:
{command}: WAIT
72 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 91
Chapter 8— Advanced Commands
{delay-time}: Delay time in 0.125 second.
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 power­supply 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
EasyCoder PL-Series Printer Programmer’s Reference Manual 73
spacing is zero. Range is 0 to 255.
Page 92
Chapter 8— Advanced Commands
Example: Input (SETSP.LBL):
! 0 200 200 210 1 T 4 0 0 10 Normal Spacing SETSP 5 T 4 0 0 50 Spread Spacing SETSP 0 T 4 0 0 90 Normal Spacing FORM PRINT
On-Out-Of-Paper Command
Purpose: You can issue this command to instruct the printer as to the course of
action to take when it encounters an error while printing the label (such as running out of stock).
Format: {command} {action} {number of retries}
where:
{command}: ON-OUT-OF-PAPER
{action}: Choose one of the following:
PURGE: Discard the label if print error is
encountered after the specified number of attempts.
WAIT: Do not discard the label if print error is
encountered. In this mode the printer waits for the error to be corrected before making the next print attempt.
{number of retries}: Specify how many times the printer should attempt to
print the label. Range is 1 to 16.
The default printer configuration is ON-OUT-OF-PAPER PURGE 2.
Example: This example instructs the printer to attempt to print the label twice.
Input (OOP.LBL):
! 0 200 200 150 1 ON-OUT-OF-PAPER WAIT 2 TEXT 5 0 0 20 MAKE TWO ATTEMPT FORM PRINT
On-Feed Command
Purpose: You can configure your printer to ignore, form feed, or reprint the last
label when you press the Feed button or when it receives a form-feed character (0x0c).
74 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 93
Chapter 8— Advanced Commands
Format: {command} {action}
where:
{command}: ON-FEED
{action}: Choose from the following:
IGNORE Don’t take any action when the Feed button is
pressed or when the form-feed character is received.
FEED Feed to top-of-form when the Feed button is
pressed or when the form-feed character is received.
REPRINT Reprint the last label when the Feed button is
pressed or when the form-feed character is received.
Example: In the following example, the command file shown was sent to the printer
only once. The two additional labels were produced by pressing the printer Feed button once for each additional label.
Input (ONFEED.LBL):
! 0 200 200 300 1 ON-FEED REPRINT CENTER JOURNAL TEXT 4 1 0 20 PRESS FEED KEY TEXT 4 1 0 100 TO REPRINT TEXT 4 1 0 180 THIS TEXT PRINT
EasyCoder PL-Series Printer Programmer’s Reference Manual 75
Page 94
Chapter 8— Advanced Commands
Output:
Prefeed Command
Purpose: The Prefeed command instructs the printer to advance the media a
specified amount prior to printing.
Format: {command} {length}
where:
{command}: PREFEED
{length}: Unit length the printer advances media prior to printing.
Range is 0 to 64.
Example: The following example sets up the printer for pre-feeding 40 dot-lines
prior to printing.
Input (PREFEED.LBL):
! 0 200 200 210 1 PREEFEED 40 TEXT 7 0 0 20 PREFEED EXAMPLE FORM PRINT
76 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 95
Chapter 8— Advanced Commands
Postfeed Command
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 77
Page 96
Chapter 8— Advanced Commands
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
78 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 97
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.
EasyCoder PL-Series Printer Programmer’s Reference Manual 79
Page 98
Chapter 8— Advanced Commands
Input (FORMATF.LBL):
! 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.
Input (FORMATD.LBL):
! UF SHELF.FMT $22.99 SWEATSHIRT 40123456784 40123456784
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 ! DEFINE­FORMAT..., ! 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.
80 EasyCoder PL-Series Printer Programmer’s Reference Manual
Page 99
Chapter 8— Advanced Commands
Format: {command} {beep_length}
where:
{command}: BEEP
{beep_length}: Duration of beep, specified in 0.125-second increments.
Example: This example instructs the printer to beep for 2 seconds (16 x 0.125
second = 2 seconds).
Input (BEEP.LBL):
! 0 200 200 210 1 CENTER TEXT 5 0 0 10 beeps for two seconds beep 16 FORM PRINT
EasyCoder PL-Series Printer Programmer’s Reference Manual 81
Page 100
Chapter 8— Advanced Commands
82 EasyCoder PL-Series Printer Programmer’s Reference Manual
Loading...