Page 1
Developer’s Guide Intermec Printer Language (IPL)
Page 3
Developer's Guide Intermec Printer Language (IPL)
Page 4
The information contained herein 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 Technologies Corporation.
Page 5
Document Change Record This page records changes to this document. The document was originally released as version -001. Version Number Intermec Printer Language (IPL) Developer’s Guide Date Description of Change 12/2007 Revised to add references to the PB50 and the...
Page 6
Intermec Printer Language (IPL) Developer’s Guide...
Global Services and Support Warranty Information To understand the warranty for your Intermec product, visit the Intermec web site at Warranty. Disclaimer of warranties: The sample code included in this document is presented for reference only.
Service Service contracts Outside the U.S.A. and Canada, contact your local Intermec representative. To search for your local representative, from the Intermec web site, click About Us > Contact Us. Service Location Support For the most current listing of service locations, click Support > Returns and Repairs >...
Who Should Read This Manual This document explains how to use the Intermec Printer Language (IPL) to program Intermec printers. Before you use IPL, you should be familiar with your network, general networking terms, such as IP address, and your bar code label printers.
Page 14
Before You Begin Intermec Printer Language (IPL) Developer’s Guide...
This chapter introduces the Intermec Printer Language (IPL) and includes these topics: • What Is IPL? • Which Printers Support IPL? • About IPL Commands • Printing Labels with IPL Commands • Learning the Structure of IPL Command Strings • Sending IPL Commands to the Printer •...
• PB50 The PD series supports IPL v10.0 and later. The PF/PM/PX series support IPL v2.0 and later. The PB50 supports IPL v11.0 and later. Other Intermec printers support earlier versions of IPL. To locate the correct IPL version for your printer, visit www.intermec.com, choose Support >...
Follow this basic procedure to print bar code labels using IPL: 1 Use IPL commands to design the format for the bar code label. If you do not specify a format, the printer assumes you want to use the default format (format 0), which is stored permanently in the printer.
<STX> <ETX> All command syntax is case sensitive. Note: When the printer is in XON/XOFF mode, you can send data and print multiple labels without using the <ETX> character. Using ASCII Control Characters Command strings always include ASCII control characters. To use ASCII control characters, you can: •...
R<ETX> The printer interprets each example exactly the same way. For more information on creating and testing command strings, see Chapter 2, Intermec Printer Language (IPL) Developer’s Guide Chapter 1 — Introduction to IPL Commands <STX><SI>g1,567<ETX> ˆBˆOg1,567ˆC “Designing Bar Code Labels.”...
You can send IPL commands to the printer by using a communications program such as Windows HyperTerminal. Follow the next procedure to connect the printer to a PC and send a text file of IPL command strings to the printer.
If the printer is already in Print mode, it ignores this command. Note: The R command may be treated as data if the data to the printer does not include a <CAN> or field pointer to clear the fields.
Page 22
Chapter 1 — Introduction to IPL Commands Intermec Printer Language (IPL) Developer’s Guide...
• Introduction to Label Formats • About Field Types • Working with Fields • Specifying Data for Fields • Working with RFID Tags • Creating a Sample Label Format • Complex Label Design Examples Intermec Printer Language (IPL) Developer’s Guide...
Chapter 2 — Designing Bar Code Labels Introduction to Label Formats To print a label on an Intermec printer, you must create a label format, send the format to the printer, send data to fill in the fields in the format, and then print the label.
See Appendix B, “Character Sets,” for the complete character set for each font. Intermec printers support nine different international character sets for each command set mode. The printer may also contain character sets for IBM translation and code pages.
To download graphics or characters to the printer, you need to use: • the Intermec PrintSet application. PrintSet converts the graphic into the appropriate format for your printer. • a third-party label-generation application. These applications convert your graphics file to a format that your printer can interpret, and send the file to the printer.
About Interpretive Fields and Field Locations Each bar code field can have an interpretive field associated with it. For example, bar code field B33 would have an interpretive field I33. Intermec Printer Language (IPL) Developer’s Guide Chapter 2 — Designing Bar Code Labels Definition Selects the 7x9 standard font.
Program mode. You can modify just the incorrect format fields instead of having to download the entire format again. When the printer is in Program mode, it uses a field pointer to point to the field to be modified. The pointer continues to point to the most recently selected field until you select a different format or field.
406 dpi Note: On the 4400, 7421, and PC41 printers, be sure to use the “Label Width, Set” command to set the printer for the correct label width, or the y setting will be incorrect. Intermec Printer Language (IPL) Developer’s Guide Chapter 2 —...
Field Positioning: This illustration shows the relative positions of four fields with different origin points. Note: If you are operating your printer in Emulation mode, the dot sizes are doubled (101 dots per inch or 4 dots per mm), so the origin for 1 inch from the top of the label and 0.5 inch from the left side is o25,51.
Magnifying Fonts and Character Fields Internal printer fonts already have specific sizes. For example, the letters in font c0 are 7 dots wide by 9 dots high, with a 1-dot gap between characters.
You need to place the printer into Print mode before adding these command strings. For bar code data, you place the printer into Print mode, and then add command strings that include the data to be printed.
You use the “Numeric Field Separator” command (syntax <FS>) to specify the numeric data to be incremented, and the “Field Increment, Set” command (syntax <ESC>I) to specify the increment value. Intermec Printer Language (IPL) Developer’s Guide Definition Places the printer in Program mode.
6. Changes the default settings for field 0: places the origin at 200,50, and specifies that data for this field will be transmitted when the printer is in Print mode. All other field settings are defaults. Intermec Printer Language (IPL) Developer’s Guide...
Defines a human-readable field at origin 400,400. All other settings are identical to H0. Places the printer in Print mode, slects format 6, and clears all previous data. Specifies the data to be assigned to the four fields requiring input. <CR>...
Sample Label: This sample uses a human-readable field, a line field, and a bar code field with interpretive field enabled. THIS IS THE SAMPLE LABEL *SAMPLE* *SAMPLE* Intermec Printer Language (IPL) Developer’s Guide...
203 dpi 300 dpi 406 dpi For example, if you are designing the label for a printer with a 203 dpi printhead and the distance is 25 mm: 25 mm x 8 dots/mm = 200. The value for x is 200.
<ESC>P is the syntax for the “Program Mode, Enter” command. You need to place the printer in Program Mode to create and define a label format. E is the syntax for the “Format, Erase” command. This command clears format 4 from the printer memory.
Page 39
5 Press Enter and type the following text to create and define the bar code field: <STX>B2;o203,153;c0,0;h100;w2;i1;d0,10;<ETX> Intermec Printer Language (IPL) Developer’s Guide Chapter 2 — Designing Bar Code Labels Description H is the syntax for “Human-Readable Field, Create or Edit”...
Page 40
<STX>I2;h1;w1;c20<ETX> The next table explains these values: Values for Interpretive Field Command String Text 7 Press Enter and type the following text to place the printer in Print mode, access format 4, and clear previous field data: <STX>R<ETX> <STX><ESC>E4<ETX> <STX><CAN><ETX>...
Page 41
<STX><ESC>E4<ETX> <STX><CAN><ETX> <STX>THIS IS THE SAMPLE LABEL<CR><ETX> <STX>SAMPLE<ETX> <STX><ETB><ETX> Intermec Printer Language (IPL) Developer’s Guide Chapter 2 — Designing Bar Code Labels Description <CAN> is the syntax for the “Clear All Data” command. Description Data line for the human-readable field. The fields in the label format are populated in order by field number.
Printing the Sample Label To print the sample label, you can open a communications program (such as HyperTerminal) and send the text file to the printer. For more information on connecting to the printer, see your printer user’s manual. The label looks like this when printed:...
<STX>H16;o170,320;c25;d3,- For Flexible Steel Conduit and .375” - .625”;k12<ETX> SHIPPING LABEL GRADE DESCRIPTION A - PLUS QTY ROLLS ORDER ITEM NUMBER 234 - LOFT LOCATION 3839494 3 7 2 1 8 11 9 2 Intermec Printer Language (IPL) Developer’s Guide WEIGHT...
Page 45
The next table explains the command strings for this example. For more information, see the IPL Command Reference Manual. Intermec Printer Language (IPL) Developer’s Guide 432-3221 DUPLEX ANGLE CONNECTOR - For Flexible Steel Conduit and .375" - .625"...
Page 46
Sets the origin of field 25 at 685,615. o685,615; Sets the bar code font to Code 39 with no check digit. c0,0; Determines that the data for field 25 is entered during Print mode with a maximum of 20 characters. d0,20; Intermec Printer Language (IPL) Developer’s Guide...
Clears all data for the current format and sets the field pointer to the lowest numbered data-entry field. <CAN> This is the data intended for the first data-entry field. <CR> instructs the printer to go to the next data- Lot 23455 262948<CR>...
Page 48
Sets the width to 2 dots. Enables the interpretive field, to print with start and stop characters included. Specifies that data for this field is transmitted in Print mode with a maximum of 10 characters. d0,10 Intermec Printer Language (IPL) Developer’s Guide...
Page 49
Reads the data from the RFID tag. The data is in ASCII format on the Data segment, starting on byte <ESC>J2,2,0 0 and having a length of 23 bytes. Prints the label. <ETB> Intermec Printer Language (IPL) Developer’s Guide Chapter 2 — Designing Bar Code Labels...
Page 50
Chapter 2 — Designing Bar Code Labels Intermec Printer Language (IPL) Developer’s Guide...
• Learning About Fonts • Downloading Fonts to the Printer • Using TrueType Fonts • Installing Asian Fonts • Licensing Your Fonts • Creating User-Defined Characters and Fonts Intermec Printer Language (IPL) Developer’s Guide Working with Fonts and Graphics...
About Bitmap Fonts Bitmap fonts can be used on any Intermec printer. These fonts typically print quickly, require less memory than outline fonts, and print at the highest quality in a specific size. Bitmap fonts are memory intensive when defined as large characters.
The easiest way to download fonts to the printer is with the PrintSet application (v2.0 or later). Intermec printers require that bitmap fonts be either one bit per byte or six bits per byte. PrintSet automatically converts all bitmap fonts into the six bits per byte format.
2 Include IPL commands to instruct the printer what to do with the font data. For help, see the following example. 3 Send the commands to the printer using one of the methods described in Chapter 1.
Note: When using TrueType fonts, your printer must be configured to operate in 8 bit mode. Intermec also recommends the following printer configuration: highest supported baud rate, 8 data bits, no parity, 1 stop bit, XON/XOFF flow control.
Note: Before you begin, you need a serial connection between your desktop PC and your Intermec printer. For help, see your printer user’s manual. To download and install code pages 1 From the main Intermec web page, choose Support > Downloads. The Downloads page appears.
Simplified Chinese GB Japanese Shift-JIS You may need to install more flash memory on the printer to use these fonts. The amount of memory you need depends on the size and number of fonts you want to install. For more information on downloading bitmap fonts to your printer, see the PrintSet documentation.
Chapter 3 — Working with Fonts and Graphics Licensing Your Fonts You are responsible for licensing the fonts that you purchase and install in your printers. Contact your font vendor for licensing information. These companies provide TrueType fonts compatible with Intermec printers: Dynalab Inc. 2055 Gateway Place...
Creating User-Defined Characters for Emulation Mode If your Intermec printer is running in Emulation mode (dot size of 10 or 15 mil), UDCs must be downloaded to the printer in one bit per byte format.
Page 60
The second column becomes the data for the u1 command line: u1,000000111000000 4 In a new text file, type the command line for all 15 columns, prefacing each line with un: u0,000000010000000 u1,000000111000000 u2,000001010100000 u3,000010010010000 u4,000100010001000 u5,001000010000100 u6,010000010000010 u7,111111110000001 u8,011111110000010 Intermec Printer Language (IPL) Developer’s Guide...
Page 61
7 Add a command string to place the printer in Print mode: <STX>R<ETX> 8 Send the file to the printer. The UDC is created and assigned “font 3.” When you specify data for a graphic field in a format, assign field to print this graphic in that field.
You need to add this syntax for each new character in your , where is the number of dots to add to the default Intermec Printer Language (IPL) Developer’s Guide is the font number. “Full ASCII Table” on Definition...
<STX>u5,00110011111111;<ETX> <STX>R;<ETX> Creating User-Defined Characters for Advanced Mode If your Intermec printer is running in Advanced mode (dot size of 2.5 or 5 mil), UDCs must be downloaded to the printer in the six bits per byte format. The six bits per byte format is more compact than one bit per byte. When you use six bits per byte, you can download large graphics more quickly.
Page 64
The top digit of each group is bit 0, the bottom digit is bit 5. 4 To complete the bit, add ones in the bit 6 position, and then add zeros in the bit 7 position so that each group now has eight digits. Zeros added Intermec Printer Language (IPL) Developer’s Guide...
Page 65
Reading from left to right, each line is now made up of three eight-digit groups, and each group represents an ASCII character in binary form. Intermec Printer Language (IPL) Developer’s Guide Chapter 3 — Working with Fonts and Graphics 000000010000000...
Page 66
01000000 The equivalent ASCII characters are @B@. The entire format should look like this: <DEL><DEL>G 7 In a new text file, write command strings to place the printer in Advanced mode and then in Program mode: <STX><ESC>C<ETX> <STX><ESC>P<ETX> 8 Write a command string to create a user-defined character, and define its size as 15 x 15 dots: <STX>G1;x15;y15<ETX>...
Page 67
10 Write a command string to place the printer in Print mode: <STX>R<ETX> 11 Save the text file and send it to the printer. The graphic can now be used in a label format. 12 To print the graphic, send this set of command strings: <STX><ESC>C<ETX>...
, where is the number of dots to add to the “To create a user-defined character for Advanced This procedure uses the following graphic as an Intermec Printer Language (IPL) Developer’s Guide is the font number. “Full ASCII Table” on...
Page 69
If you try to add other user-defined characters to an already existing user-defined font, you erase previously created characters. 7 Write a command string to place the printer in Print mode: <STX>R<ETX> 8 Save the text file and send it to the printer.
This chapter discusses topics for advanced IPL programmers and includes these sections: • Using the Printer Memory Efficiently • Reimaging Modified Fields • Using Emulation Mode • Using Direct Graphics Mode Intermec Printer Language (IPL) Developer’s Guide Advanced Printer Programming...
There are limits to the number of formats, fonts, graphics, or pages that you can store in the printer. You can define up to 16 fonts, but there may not be enough room depending on the amount of memory being used for other purposes.
If used correctly, this command parameter can greatly increase the throughput of your printer; however, if you reimage a field that takes longer to erase and reimage than erasing and reimaging the entire label format, you will not be increasing throughput.
Page 74
Two IPL commands place the printer in Emulation mode: • Emulation or Advanced Mode on Power-Up • Emulation Mode, Enter The following table lists all the IPL commands that work when the printer is in Emulation mode. IPL Commands and Emulation Mode...
Page 75
Human-Readable Field, Create or Edit IBM Language Translation, Enable or Disable Increment and Decrement, Disable Intercharacter Delay, Set Intercharacter Space for UDF, Define Interpretive Field, Edit Intermec Printer Language (IPL) Developer’s Guide Chapter 4 — Advanced Printer Programming Syntax <SI>c <SI>d <SUB>...
You no longer need to store the graphic in Program mode and then set up a format in Print mode. When you download a direct graphic to the printer, the printer stores the graphic in the image bands until you: •...
Chapter 4 — Advanced Printer Programming When printing a label with direct graphics, you must have enough dynamic RAM installed in your printer to contain the entire label. Because Intermec printers normally reuse image bands, you can print long labels with standard RAM;...
When combined with low order data, can represent up to 13 bits of data (0- 8191). Must be preceded by a command byte so the printer knows how to interpret them. Printer ignores high order data followed by a command or more high order data.
Page 80
Chapter 4 — Advanced Printer Programming Origin (0,0) Direct Graphics Commands: This example shows how the printer loads information in Direct Graphics mode. This table shows a hex data file for the example: The next table explains the hex data file in the example.
When you group label formats into a page, you assign the formats to positions designated by the letters a through z. You can print the formats used in pages independent of each other. Intermec Printer Language (IPL) Developer’s Guide Chapter 4 — Advanced Printer Programming Description Raw bitmap data follows, starts at Y0 90 - 80 (LO) = 0x10 ->...
This chapter describes the problems that may occur as a result of using IPL commands incorrectly. If you do not find your problem listed here, see the troubleshooting information in your printer user’s manual. Intermec Printer Language (IPL) Developer’s Guide...
3 Clean the printer components and check all connections. For more information, see the user’s manual for your printer. 4 If the problem persists, contact Intermec Product Support (1-800-755- 5505) in North America. If you are an international customer, contact your local Intermec representative.
Image overrun occurs when a label is too complex to image for a given print speed. An overrun will cause the printer to abort the label being printed. This error is most common on labels over 12.7 cm (5 in) long.
Chapter 5 — Troubleshooting Interpreting Error Codes and Solving Problems Most of the problems you may encounter cause the printer to send an error code to the host. To correct the error, find the error code in the following table and complete the instructions in the solution column.
Page 87
RFID module overheated. RFID module duty cycle exceeded. RFID lock error. RFID Access error. Intermec Printer Language (IPL) Developer’s Guide Chapter 5 — Troubleshooting Solution Verify that the UDC/UDF bitmap cell height/width or intercharacter space is within the specified values for n. For...
Printing Labels with 86XX-Compatible Code 39 Note: This section applies to the PF/PM/PX series printers only. If you are using a PF/PM/PX series printer, and are having trouble printing Code 39 labels designed for an 86XX printer, use the “Emulation or Advanced Mode on Power-Up”...
Code 39 equivalents, and an ASCII control character chart. The appendix also includes tables that show which hex codes to download for international characters not available in the U.S. character set. Intermec Printer Language (IPL) Developer’s Guide Full ASCII Tables and International Character Sets...
Page 91
4 The Code 39 characters /P through /Y may be interchanged with the numbers 0 through 9. 5 May be interchanged with %X or %Y or %Z. 6 n is the DELETE character. Intermec Printer Language (IPL) Developer’s Guide Appendix A — Full ASCII Tables and International Character Sets Code 39...
Negative Acknowledge ˆV Synchronous Idle ˆW End Transmission Block ˆX Cancel ˆY End of Medium ˆZ Substitute ˆ[ Escape ˆ\ File Separator ˆ] Group Separator ˆˆ Record Separator ˆ_ Unit Separator None Space ˆ? Delete Intermec Printer Language (IPL) Developer’s Guide...
U.S. character that corresponds with the character in your language. Advanced Character Table If you are running your printer in Advanced mode, use this table to find the right hex codes for the international character sets. U.S. ASCII U.K.
This table shows the character set that prints if your printer has Code Page 850 selected as the printer language. Note: Some Intermec printers do not support Code Page 850. For more information, see the “Printer Language, Select” command in the IPL Command Reference Manual.
Appendix A — Full ASCII Tables and International Character Sets Extended Character Sets Each internal printer font has a different character set as shown in the following tables. The hex codes accompany each character. Note: You must set the serial port communication to 8 data bits to use the extended character sets.
± BØ À Á CØ Ñ DØ à EØ ñ FØ Intermec Printer Language (IPL) Developer’s Guide Appendix A — Full ASCII Tables and International Character Sets Ø2 Ø3 Ø4 Ø5 Ø6 Ø7 Ø8 Ø9 ’ " # $ % &...
IPL. These tables show commands in the order that you must download them when you replace the User-Defined Command/Protocol characters. A table is shown for each type of command specified by a value for “t”. Intermec Printer Language (IPL) Developer’s Guide...
Set Intercharacter Delay Print Clear All Data Abort Print Job Data Shift Go to Escape Command Table Numeric Field Separator Alphanumeric Field Separator Set Quantity Count Set Batch Count Clear Data From Current Field Intermec Printer Language (IPL) Developer’s Guide...
This table lists the <ESC> commands in the order you must download them. Escape Print Commands (t=1) Default Escape Command (space) Intermec Printer Language (IPL) Developer’s Guide Appendix B — User-Defined Interface Tables Hex Value Escape Command Description Set Message Delay...
Set Dark Adjust Adjust Label Rest Point Select TTR or Direct Thermal Select Printhead Loading Mode IBM Language Translation Select Printer Language Set Pin 11/20 Protocol Set Label Retract Distance Enable or Disable Self-Strip Intermec Printer Language (IPL) Developer’s Guide...
SOH Auto-Transmit 3 RS Auto-Transmit 3 *Some older Intermec printers may not support this entry. **The status responses in the above table are for standard protocol. In XON/XOFF protocol, most of the status responses are the same; however, instead of DC1, the status response is DC2, and instead of DC2, the status response is DC4.
XON IN XOFF IN SELECT OUT POLL OUT RES OUT REQ OUT SOM OUT EOM OUT AFF OUT NEG OUT DLE OUT XON OUT XOFF OUT Proto-Cmd 1 Proto-Cmd 2 Timeout on EOM ACK Intermec Printer Language (IPL) Developer’s Guide...
Acknowledgment Out Negative Acknowledgment Out Data Line Escape Out XON Out XOFF Out Status Enquiry In Status Dump In Timeout on EOM ACK Intermec Printer Language (IPL) Developer’s Guide Appendix B — User-Defined Interface Tables Standard XON/XOFF Polling Mode D Multi-Drop...
Page 108
Appendix B — User-Defined Interface Tables Intermec Printer Language (IPL) Developer’s Guide...
Index Intermec Printer Language (IPL) Developer’s Guide...
Page 110
Emulation mode, editing fields, Emulation mode, commands supported, described, IPL commands supported, Legacy mode, for 86XX-compatible Code user-defined fonts, using, end of text character, error codes, listed, conditions, handling, Intermec Printer Language (IPL) Developer’s Guide 18–21 88–93 60–63 59–63...
Page 111
See memory fonts bitmap, described, choosing type to use, compared, downloading, 39–41 using PrintSet, Intermec Printer Language (IPL) Developer’s Guide downloading with IPL commands, downloading with PrintSet, generating bitmap from TrueType, 41, licensing, magnifying, memory needed, one bit per byte, creating,...
Page 112
RFID storing data on tags, ASCII format, Hex format, numerical format, working with tags, writing data to tags, RLE. See run-length encoding rotating fields, run-length encoding, Intermec Printer Language (IPL) Developer’s Guide 70–74 63–65...
Page 113
Test and Service mode, entering, Traditional Chinese font, troubleshooting, Intermec Printer Language (IPL) Developer’s Guide TrueDoc fonts, printer compatibility, TrueType fonts code pages, installing, licensing, memory required, printer language, choosing,...
Page 114
Index Intermec Printer Language (IPL) Developer’s Guide...
Page 116
Worldwide Headquarters 6001 36th Avenue West Everett, Washington 98203 U.S.A. tel 425.348.2600 fax 425.355.9551 www.intermec.com Intermec Printer Language (IPL) Developer’s Guide *934-013-002* P/N 934-013-002...