Home Page   Hard Disk DrivesMagneto-Optical Drives and LibrariesScannersPrintersHalf Inch Tape DrivesMiscellaneous Products

Technical

 

Barcode Printing

The FUJITSU DPL24C and DPL24C+ emulation's built into all DL series printers supports the direct printing of 8 industry standard bar codes. This document explains the commands required to implement this feature.


The command format is as follows :
ASCII ESC DC4 (b) R (c) (w) (h) (a) (ch 1) ..... (ch n)
Decimal 27 20 (b) 82 (c) (w) (h) (a) (ch 1) ..... (ch n)
Hex 1B 14 (b) 52 (c) (w) (h) (a) (ch 1) ..... (ch n)

Where lower case letters enclosed in parentheses, e.g. (b), should be replaced with a single byte parameter as defined later in this article.

Note:

1. The MSB of all parameters is ignored.
2. The command length varies defined by parameter (b)

 

Parameters

(b) Byte Count

This specifies the number of subsequent bytes, including the byte count itself, in the command sequence e.g. if the data to be bar coded is 5 characters then (B) should be set to 11 (decimal) or 0B (hex).

(c) Coding System

This specifies the type of bar code to be printed.

Parameter Value Bar Code Type
1 (31 hex) Codebar (nw-7)
2 (32 hex) EAN 13
3 (33 hex) EAN 8
4 (34 hex) Code 3 of 9
5 (35 hex) Industrial 2 of 5
6 (36 hex) Interleaved 2 of 5
7 (37 hex) Matrix 2 of 5
A (41 hex) UPC Type A

 

(w) Width of narrow bars

This specifies the width of the narrow bars, in units of 1/1440 inch, but bar-codes will be printed in units of 1/180th inch

Parameter Value (w) Number of Dots (@180 dpi)
0 to 19 2
20 to 27 3
28 to 127 4


(h) Height of bars

This specifies the height of the bars, in relation to the width of the narrow bars (w)

Height (h) is determined as follows :

H = (h) / (w) units 1/1440 inch

When h is less than 192 ( 24 dots at 180 dpi), bar codes are printed using the defaults in the following tables

Narrow Bar Width EAN 13 EAN 8 Others
2 dots 0.9 inch 0.7 inch 0.6 inch
3 dots 1.3 inch 1.0 inch 0.75 inch
4 dots 1.7 inch 1.4 inch 0.9 inch


(a) Bar Code Attributes

This parameter is treated a byte which contains 8 binary flags used to enable certain bar code specific attributes.

Bit Specification Value Meaning
0 Check Digit (*1) 0 Added
1 Not Added
1 OCR chars 0 Printed
1 Not Printed
2 Flag Character 0 left of bar code
1 lower left of bar code

(*1) The check digit is always added for EAN & UPC bar-codes. No check digit is added for Codebar regardless of this flag

(Ch 1) ... (Ch n) Bar Code Data

These bytes are the actual data to be bar coded, the number of characters and range of characters vary for each bar code type as defined in the table below

Bar Code Type Character Set No of data item (n)
Codebar Numeric : 0 - 9

Sign: +, - , $, /,:

Start/Stop A,a,B,b,C,c,D,d,T,t,N,n,*,E,e

up to 34 including start/stop
EAN 13 Numeric : 0 - 9 n = 12
EAN 8 Numeric : 0 - 9 n = 7
Code 3 of 9 Numeric : 0 - 9

Alpha : A - Z

Special : +,-,/,%,$,.,Space

Start/Stop : *

up to 32 including check digit
Industrial 2 of 5 Numeric 0 - 9 as above
Interleaved 2 of 5 Numeric 0 - 9 as above
Matrix 2 of 5 Numeric 0 - 9 as above
UPC Type A Numeric 0 - 9 n = 11

Data must be in the ASCII characters appropriate to the character set used by each type of bar code

If a character not in the valid range of characters is detected the command is cancelled and the remaining data defined by (B) is skipped.

Bar code specific restrictions

1. Codebar

The start/stop code is not checked by the printer and the bar code is printed according to the input data. The user must select the start/stop code shown in the table above. both upper & lower case characters can be used for the start/stop code. OCR Characters are printed in upper case.

2. Code 3 of 9

Only uppercase alpha characters can be used. The printer automatically places the start/stop code (*) preceding & following the input data. OCR characters are printed for the start/stop code. An error occurs if the start stop code is detected in the input data.

3. Interleaved 2 of 5

The bar code composition requires that the number of data digits be EVEN. for an ODD number of data items the bar code is printed with a 0 preceding the input data. The printer automatically places the start stop code

Bar Code Printing

The bar code printing command is treated as a single vertically & horizontally enlarged character in the printer in relation to other commands or characters, and can be entered by the user at any point in the text.

Note that the bar code pattern is usually larger than ordinary characters and there are some restrictions

If the bar code pattern width exceeds the right margin currently set, the bar code pattern is not printed.

The bar code pattern is printed from current position even though the pattern may extend beyond the bottom margin.

The flag character for the EAN and UPC bar coding is not printed if the bar code pattern is printed at the left margin without any previous spaces or characters.

Other points to note :

Use a new ribbon to maintain high contrast in the printed bar code

Higher resolution bar-codes printed may differ slightly from standards due to limitations in the printer resolution. Generally the wider the bar code the higher the readability ratio. Be sure to check readability before actual use.

A Sample Barcode Printing Program

 10 D$ = "123456789012" ' the data to be bar coded
 20 CLEN = LEN (D$) + 6 ' set command len = data +6
 30 CODE$ = "2" ' print EAN 13
 40 WIDTH = 24 ' set narrow bar width
 50 REQD_HEIGHT = 1440 ' request height = 1 inch
 60 HEIGHT = INT(REQD_HEIGHT/WIDTH)
 70 ATTRIB = &H1
 80 LPRINT "A ";
 90 LPRINT CHR$(27);CHR$(20); ' start barcode command
100 LPRINT CHR$(CLEN); ' send command len
110 LPRINT "R";
120 LPRINT CODE$;CHR$(WIDTH) ' send Type & Width
130 LPRINT CHR$(HEIGHT);CHR$(ATTRIB) ' send hgt & att
140 LPRINT D$ ' send user data
150 LPRINT " B";
160 LPRINT CHR$(10);CHR$(12)
170 LPRINT "A BARCODE TEST PRINT"

Other points to note when printing bar-codes

Always check using the printers Hex Dump command that the printer is really receiving the bytes you expect, application software/editors often translate some codes according to their own rules.

e.g. Some BASIC interpreters will translate the code 13 ( 0D hex ) into the character pair 13 (0D hex ) , 10 (0A hex). i.e. Carriage returns are converted to Carriage Return / Line feed pairs

To get round this problem "OPEN AS #1" the printer as a file rather than use the LPRINT command and send data to the printer using the "PRINT #1, nnnnnnn..." command

 

 

 


© Copyright 1993-96, Fujitsu Europe Limited