Subcommands

START
Read syntax diagramSkip visual syntax diagram
|--+----------+----LENGTH--n------------------------------------|
   '-START -n-'                  

Specifies the starting byte in the data record for the field you want.

n
Specifies the number of bytes from the first data byte in the record to be used as the starting point of the field. The first data byte position of an input record is 1.
Note: The carriage-control character, table-reference character, and record ID are not considered data.
*
Denotes the next byte after the field identified in the previous FIELD command, excluding FIELD commands with constant TEXT.
+ n
Adds the value of n to the * byte position.
- n
Subtracts the value of n from the * byte position.

If START is omitted and LENGTH is specified, then START * is assumed.

LENGTH n
Specifies the number (n) of bytes to process from the data record, beginning with the position specified in START.
Record Format: When the maximum length of the field is determined, the print server truncates all of the fields not containing data.
TEXT
Read syntax diagramSkip visual syntax diagram
           .---------------------------------.     
           V         .-C-.                   |     
|----TEXT----+----+--+-X-+--+------+--'text'-+------------------|
             '-Dn-'  +-G-+  '-L(m)-'               
                     '-K-'                         

Specifies the constant text that is to be printed in the output. A maximum of 65,535 bytes of text can be provided in one page format.

Note: This text is considered constant in that the same text is printed each time. In regard to the CONSTANT command within a form definition, this text is considered variable because the text prints only where variable data is allowed to print.
Dn
Specifies the number of times the text is to be duplicated (use a decimal number). The maximum times the text is repeated varies depending on the size of the text. The default is 1.
text type
Specifies the type of text.
C
Indicates that the text contains single-byte code characters, which include all Roman alphabetic characters (for example, the ones used for English). Any valid character code can be specified, including blanks. This is the default.
X
Indicates that the text contains hexadecimal codes (in groups of two hexadecimal codes) that specify values from X'00' - X'FE'.
G
Indicates that the text contains double-byte code characters (for example, kanji characters).

Characters in type G text must start with shift-out (SO X'0E') and end with shift-in (SI X'0F') characters within opening and closing apostrophes (X'7D' for EBCDIC operating systems and X'27 ' for ASCII operating systems).

K
Indicates that the text contains kanji numbers that are enclosed in apostrophes. Kanji numbers are separated by commas:
K'321,400'
Valid double-byte character set (DBCS) codes are from X'41' - X'FE' for each byte. Code X'4040' (blank) is the only exception.
Valid
X'4040', X'4141', X'41FE' X'FE41', X'FEFE'
Invalid
X'2040', X'413E', X'4100' X'7F00', X'FE3E'
L(m)
Specifies the length of text (use a decimal number in parentheses). When the actual length of the text is different from m, the m specification is accepted. That is, the text is either padded with blanks to the right or truncated.
'text'
Specifies the text.
Examples:
  • When TEXT 2C(3)‘AB’ is specified, ‘AB AB ’ is generated. The blanks are generated because of the (3) specification.
  • TEXT 2C(1)‘AB’ generates ‘AA’, truncating the Bs.
PAGENUM n (Record Format and XML)
Read syntax diagramSkip visual syntax diagram
   .-PAGENUM--NOPRINT--NORESET----------.   
|--+------------------------------------+-----------------------|
   |          .-PRINT---.  .-NORESET--. |   
   '-PAGENUM--+---------+--+----------+-'   
              '-NOPRINT-'  '-RESET--n-'     

Although parameters are specified as optional, at least one must be specified.

Page numbers can be set to start with the value specified as n; otherwise, they follow the specification that is made in the PAGEDEF or PAGEFORMAT command.

The POSITION parameters that are specified with the PAGENUM parameter reflect the position of the page number only.

If you do not want a page number to be printed, either do not use this parameter or specify NOPRINT.

The RESET parameter is only used when you want to reset the page number that is to be used with this page.

Note: You must define a font that specifies the font type to be used for printing page numbers.
FLDNUM (Record Format and XML)
Read syntax diagramSkip visual syntax diagram
              .-START - 1-.  .-LENGTH -rest of field-.   
|--FLDNUM--n--+-----------+--+-----------------------+----------|
              '-START - n-'  '-LENGTH - n------------'   

This keyword must only be used if the DELIMITER field was used in the LAYOUT command. Fields cannot be counted without specifying delimiters in the database.

To allow for the identification of a part of a field that is field delimited, you can specify the starting position (from the delimiter), and optionally the length of the part of the field you want to use. The LENGTH default is to use the entire remainder of the field from the start position to the ending delimiter.

RECID (Record Format only)
Read syntax diagramSkip visual syntax diagram
          .-START - 1-.  .-LENGTH - rest of id -.   
|--RECID--+-----------+--+----------------------+---------------|
          '-START - n-'  '-LENGTH ------------'   

You use this keyword to access characters in the first n characters of a record. This area is reserved for the record identifier, and all other field starts and lengths are calculated after this area. These starts and lengths reference only the area within the record ID.

If no record length is specified, the remaining bytes of the n-byte field are assumed.

STAG (XML only)
Read syntax diagramSkip visual syntax diagram
         .-START - 1-.  .-LENGTH - rest of id -.   
>>-STAG--+-----------+--+----------------------+---------------><
         '-START - n-'  '-LENGTH -+--+-------'   
                                  '- * '           

You use this keyword to access characters in the START tag. It also includes the < and > delimiters; position 1 is always the < delimiter.

If no record length is specified, the remaining bytes of the START tag are assumed. If no START is specified, 1 is assumed.

LENGTH * means that the remainder of the field is used for the length.

ATTR (XML only)
Read syntax diagramSkip visual syntax diagram
                .-START - 1-.  .-LENGTH--rest of attribute-.   
>>-ATTR--aname--+-----------+--+---------------------------+---><
                '-START - n-'  '-LENGTH--+-n---+-----------'   
                                         '- * -'               

You use this keyword to access attribute values from the data. Multiple attribute fields can access the same attribute, which allows subsets of the value to be printed.

If no record length is specified, the remaining bytes of the attribute are assumed. If not START is specified, 1 is assumed.

aname
The attribute name. To preserve the case, enter the name in quotation marks. The name is converted to the data type you specify, by using UDTYPE on the page definition, or it is defaulted.
START n
The starting position of the attribute to extract the data. If this parameter is omitted, position 1 is assumed.
LENGTH n
The length of the attribute to be placed. If this parameter is omitted or LENGTH * is coded, the rest of the field is assumed for the length.
POSITION
Read syntax diagramSkip visual syntax diagram
Traditional

   .-POSITION--CURRENT or * --CURRENT or * ------------.   
|--+---------------------------------------------------+--------|
   '-POSITION--+-+-----+--x-pos-+--+-+------+--y-pos-+-'   
               | '- – -'        |  | '-  – -'        |     
               '-CURRENT or * --'  +-NEXT------------+     
                                   '-CURRENT or * ---'     

Read syntax diagramSkip visual syntax diagram
Record Format

|--+----------------------------------------------------+-------|
   '-POSITION--+-+------+--x-pos-+--+-+------+--y-pos-+-'   
               | '-  – -'        |  | '-  – -'        |     
               '-CURRENT or * ---'  +-NEXT------------+     
                                    '-CURRENT or * ---'     

Read syntax diagramSkip visual syntax diagram
XML

   .-POSITION--CURRENT--CURRENT-------------------------------------------.   
|--+----------------------------------------------------------------------+--|
   '-POSITION--+-+------+--+-----+--x pos-+--+-+------+--+-----+--y pos-+-'   
               | '-LPOS-'  '- - -'        |  | '-LPOS-'  '- - -'        |     
               |       .-0-----.          |  +-NEXT---------------------+     
               +-LPOS--+-------+----------+  '-CURRENT or * ------------'     
               |       '-x pos-'          |                                   
               |       .-0-----.          |                                   
               +-CPOS--+-------+----------+                                   
               |       '-x pos-'          |                                   
               +-APOS--x pos--------------+                                   
               '-CURRENT or * ------------'                                   

Specifies the starting position of the field in the printout.

x-pos
Do not mix x-pos specifications with CURRENT or * except in ACROSS fields.
-
Specifies that the x value is negative.
x
Specifies the horizontal offset for the starting print position that is relative to the printline starting position. The choices are IN, MM, CM, POINTS, or PELS.

The default is the most recent SETUNITS command value or IN (inch) if a SETUNITS command is not issued.

The PELS measurement equals one L-unit or 1/240 of an inch, depending on whether the PELSPERINCH parameter is specified previously.

APOS
Specifies that the x pos parameter that follows is absolute. The x pos parameter is mandatory and must be positive.
CPOS
Specifies that the x pos parameter that follows is relative to the current position. This parameter can be negative.
LPOS
Specifies that the x pos parameter that follows is relative to the XLAYOUT position. This parameter can be negative.
CURRENT
Specifies that the inline offset (relative to the field's direction) is the end of the previous field. For the first field, use the PRINTLINE offset. This is the default.
Note: The meaning of CURRENT differs from the meaning of the PRINTLINE command parameter (Traditional) or a LAYOUT command parameter (Record Format) SAME.
*
Alternative for CURRENT.
y-pos
Do not mix y-pos specifications with CURRENT or * except in ACROSS fields.
-
Specifies that the y value is negative.
y
Specifies the vertical offset for the starting print position that is relative to the printline starting position. The choices are IN, MM, CM, POINTS, or PELS.

The default is the most recent SETUNITS command value or IN (inch) if a SETUNITS command is not issued.

NEXT
Specifies a field that is positioned down one line in the baseline direction (as defined in the SETUNITS command LINESP subcommand) from the previous field.

Use NEXT only in ACROSS fields.

CURRENT
Specifies that the baseline offset (relative to the field's direction) is the same as the previous field. That is, the baseline position does not change. For the first field, use the PRINTLINE (Traditional) or a LAYOUT (Record Format) offset. This is the default.
*
Alternative for CURRENT.
FONT
Read syntax diagramSkip visual syntax diagram
|--+--------------------------+---------------------------------|
   '-FONT--name1--+---------+-'   
                  '-, name2-'     

Defines the font to be used for the field.

name1
Specifies the local name of a font that is used to print the data. This font must be defined in a previous FONT or DOFONT command in this page definition.

If Shift-Out, Shift-In (SOSI) processing is used, name1 must be the single-byte font.

name2
Specify only when you are using Shift-Out, Shift-In (SOSI) processing to dynamically switch between a single-byte font and a double-byte font within the field. name2 must be the double-byte font.
Note: name2 is only valid with EBCDIC data.
Notes:
  1. If this subcommand is not specified, the font that is specified in the preceding PRINTLINE command (Traditional) or a LAYOUT command (Record Format) is used. If neither is specified, the print server assigns a font.]
  2. Record Format only: For ASCII, UTF8, or UTF16, the entire PRINTLINE command must be one font. To use multiple font mappings for a line in ASCII, UTF8, or UTF16, you must use the FIELD command.
ALIGN LEFT | RIGHT (Record Format and XML only)
Read syntax diagramSkip visual syntax diagram
   .-ALIGN - LEFT-----.   
|--+------------------+-----------------------------------------|
   '-ALIGN--+-LEFT--+-'   
            '-RIGHT-'     

The data in this field is left or right-aligned to the x position that is specified in the horizontal POSITION parameter.

DIRECTION
Read syntax diagramSkip visual syntax diagram
   .-DIRECTION--ACROSS---.   
|--+---------------------+--------------------------------------|
   '-DIRECTION--+-DOWN-+-'   
                +-BACK-+     
                '-UP---'     

Specifies the print direction of the field, relative to the upper-left corner as you view the logical page. If this subcommand is omitted, the direction that is specified in the governing PRINTLINE command is used.

ACROSS
The page is printed with the characters added from left to right on the page, and the lines are added from the top to the bottom.
DOWN
The page is printed with the characters added from top to bottom on the page, and the lines are added are from the right to the left.
BACK
The page is printed with the characters added from right to left on the page, and the lines are added from the bottom to the top.
UP
The page is printed with the characters added from bottom to top on the page, and the lines are added from the left to the right.
If DIRECTION is not zero, then the position is relative to the rotated origin of the page.
Note: Not all printers can print in all directions. See your printer documentation for more information.
SUPPRESSION
Read syntax diagramSkip visual syntax diagram
|--+-------------------+----------------------------------------|
   '-SUPPRESSION--name-'   

Specifies that this text field can be suppressed (not valid for bar codes).

name
Specifies the name of a field to be suppressed.

Printing of this field is suppressed if this name is identified by a SUPPRESSION command within the form definition.

The same name can be used in one or more fields to suppress these fields as a group.

COLOR
Read syntax diagramSkip visual syntax diagram
|--+-------------------------------------------------------------+--|
   +-COLOR--colorname--------------------------------------------+   
   +-RGB--rvalue--gvalue--bvalue---------------------------------+   
   +-HIGHLIGHT -hvalue --+------------------+--+---------------+-+   
   |                     '-COVERAGE--cvalue-'  '-BLACK--bvalue-' |   
   +-CMYK--cvalue--mvalue--yvalue--kvalue------------------------+   
   '-CIELAB--lvalue--+-----+--clvalue--+-----+--c2value----------'   
                     '-(–)-'           '-(–)-'                       

Specifies an OCA or defined color for the text of this field. This subcommand is recognized only by printers that support multiple-color printing. See your printer publication for more information.

colorname
Values for colorname can be a defined color (see DEFINE COLOR Command), or an OCA colorname. Values for OCA colornames are:
  • BLUE
  • RED
  • MAGENTA (or PINK)
  • GREEN
  • CYAN (or TURQ)
  • YELLOW
  • BLACK
  • BROWN
  • MUSTARD
  • DARKBLUE (or DBLUE)
  • DARKGREEN (or DGREEN)
  • DARKTURQ (DTURQ, or DCYAN, or DARKCYAN)
  • ORANGE
  • PURPLE
  • GRAY
  • NONE
  • DEFAULT
The color choices depend on the printer.
Note: In some printer publications, the color turquoise (TURQ) is called cyan, and the color pink (PINK) is called magenta.
color model
Specifies the color of print for this field that is supported in MO:DCA for the Red/Green/Blue color model (RGB), the highlight color space, the Cyan/Magenta/Yellow/Black color model (CMYK), and the CIELAB color model. This example shows the color model with the FIELD command:
		   FIELD START 1  LENGTH 5
                    COLOR BLUE ;
     FIELD START 1  LENGTH 1
                    RGB 10  75  30 ;
     FIELD START 1  LENGTH 1
                    cmyk 80 10 10 10 ;
     FIELD START 1  LENGTH 2
                    CIELAB 80 100 20 ;
     FIELD START 1  LENGTH 2
                    highlight 5 ;
     FIELD START 1  LENGTH 2
                    highlight 300 COVERAGE 50 BLACK 30 ; 
     
RGB rvalue gvalue bvalue
Read syntax diagramSkip visual syntax diagram
|--+-----------------------------+------------------------------|
   '-RGB--rvalue--gvalue--bvalue-'   

Three RGB integer values are used. The first (rvalue) represents a value for red, the second (gvalue) represents a value for green, and the third (bvalue) represents a value for blue. Each of the three integer values can be specified as a percentage 0 - 100.

Note: An RGB specification of 0/0/0 is black. An RGB specification of 100/100/100 is white. Any other value is a color somewhere between black and white, depending on the output device.
HIGHLIGHT hvalue COVERAGE cvalue BLACK bvalue
Read syntax diagramSkip visual syntax diagram
|--+-------------------------------------------------------------+--|
   '-HIGHLIGHT -hvalue --+------------------+--+---------------+-'   
                         '-COVERAGE--cvalue-'  '-BLACK--bvalue-'     

Indicates the highlight color model. Highlight colors are device-dependent.

You can use an integer within the range of 0 - 65535 for the hvalue.
Note: An hvalue of 0 indicates that no default value is defined; therefore, the default color of the presentation device is used.
COVERAGE indicates the amount of coverage of the highlight color to be used. You can use an integer within the range of 0 - 100 for the cvalue. If less than 100 percent is specified, the remaining coverage is achieved with the color of the medium.
Note: Fractional values are ignored. If COVERAGE is not specified, a value of 100 is used as a default.
BLACK indicates the percentage of black to be added to the highlight color. You can use an integer within the range of 0 - 100 for the bvalue. The amount of black shading that is applied depends on the COVERAGE percentage, which is applied first. If less than 100 percent is specified, the remaining coverage is achieved with black.
Note: If BLACK is not specified, a value of 0 is used as a default.
CMYK cvalue mvalue yvalue kvalue
Read syntax diagramSkip visual syntax diagram
|--+--------------------------------------+---------------------|
   '-CMYK--cvalue--mvalue--yvalue--kvalue-'   

Defines the cyan/magenta/yellow/black color model. Cvalue specifies the cyan value. Mvalue specifies the magenta value. Yvalue specifies the yellow value. Kvalue specifies the black value. You can use an integer percentage within the range of 0 to 100 for any of the CMYK values.

CIELAB Lvalue (-)c1value (-)c2value
Read syntax diagramSkip visual syntax diagram
|--+----------------------------------------------------+-------|
   '-CIELAB--lvalue--+-----+--clvalue--+-----+--c2value-'   
                     '-(–)-'           '-(–)-'              

Defines the CIELAB model. Use a range of 0.00 - 100.00 with Lvalue to specify the luminance value. Use signed integers from -127 to 127 with c1value and c2value to specify the chrominance differences.

Lvalue, c1value, c2value must be specified in this order. No defaults exist for the subvalues.
Note: Do not specify both an OCA color with the COLOR subparameter and an extended color model on the same FIELD or PRINTLINE command. The output is device-dependent and might not be what you expect.
BARCODE
Read syntax diagramSkip visual syntax diagram
|--+--------------------------------------------------------------------------+--|
   '-BARCODE--+------+--+---------------------+--+--------------------------+-'   
              '-name-'  '-TYPE--+-n---------+-'  '-Other BARCODE Parameters-'     
                                '-type-name-'                                     

Specifies a bar code in a page definition. The following are valid bar code type-names:
  • CODE39 (same as 1)
  • MSI (same as 2)
  • UPCA (same as 3)
  • UPCE (same as 5)
  • UPC2SUPP (same as 6)
  • UPC5SUPP (same as 7)
  • EAN8 (same as 8)
  • EAN13 (same as 9)
  • IND2OF5 (same as 10)
  • MAT2OF5 (same as 11)
  • ITL2OF5 (same as 12)
  • CDB2OF7 (same as 13)
  • CODE128 (same as 17)
  • EAN2SUP (same as 22)
  • EAN5SUP (same as 23)
  • POSTNET (same as 24)
  • RM4SCC (same as 26)
  • JPOSTAL (same as 27)
  • 2DMATRIX (same as 28)
  • 2DMAXI (same as 29)
  • 2DPDF417 (same as 30)
  • APOSTAL (same as 31)
  • 2DQRCODE (same as 32)
  • CODE93 (same as 33)
  • US4STATE (same as 34)
  • REDTAG (same as 35)
  • DATABAR (same as 36)

The bar code name can be 1 - 8 characters long. See your printer documentation for more information about bar code support. Ensure that the bar code fits on the page or you errors occur at print time.

Read your printer hardware documentation before you use bar codes. The documentation indicates which bar code types, modifiers, MODWIDTH, element heights, and ratio values are valid for the printer.

PPFA does minimal verification of the bar code values. If you use the MOD, HEIGHT, MODWIDTH, and RATIO parameters, ensure that the values you specify are valid for your printer.

For printer optimization, specify BARCODE name options in the first instance of a specific type of bar code. If this type is used again, position it as usual with START, LENGTH, and POSITION, but specify the bar code information by using only BARCODE same-name-as-previously. The BARCODE subcommand is recognized only by printers that support BCOCA bar code printing; see your printer documentation for more information.
Bar code concatenation
The concatenated bar code function allows the user to collect bar code data from different fields, records, or both to be concatenated in generating a bar code object.

For example, the hyphen in a nine-digit ZIP code, aaaaa-bbbb, is not a valid character in a POSTNET bar code. The concatenated bar code function allows a user to specify a FIELD for the aaaaa and a FIELD for the bbbb and concatenate them together into one bar code. For 2D bar codes, which can contain many bytes of data, multiple records of data can be concatenated together into one bar code.

The defining bar code fully defines a bar code, specifying any necessary placement or descriptive parameters. A defining bar code can start the collection of bar code data if it specifies a BARCODE name and the BCDSYMB keyword with a symbol name.

The continuation bar code defines bar code data that is to be added to a bar code data collection started with a defining bar code with BCDSYMB coded. This bar code uses the defining BARCODE name and BCDSYMB name but does not specify the TYPE or BARCODE parameters because it uses the information from the defining bar code.
Example 1
POSTNET 9-digit bar code split in two fields aaaaa-bbbb:
PAGEDEF BC1P  REPLACE YES;                                         
  FONT afont GT10;                                                 
  PAGEFORMAT example1;                                             
    PRINTLINE POSITION 4 in 1.5 in;                                
      FIELD START   1 LENGTH  15 POSITION 0 IN 0 IN;              
      FIELD START  16 LENGTH  20 POSITION 0 IN NEXT;              
      FIELD START  36 LENGTH  15 POSITION 0 IN NEXT;              
                                                                   
      FIELD START  51 LENGTH   5 POSITION 0 IN 0.70 IN            
            BARCODE zip54 TYPE POSTNET MOD 1 BCDSYMB datacoll;     
      FIELD START  57 LENGTH   4 BARCODE zip54 BCDSYMB datacoll;
Example 2
2D bar code with data bytes across multiple records:
PAGEDEF BC2P  REPLACE YES;                                  
  FONT afont GT10;                                          
  PAGEFORMAT example2;                                      
    PRINTLINE POSITION 1 in 1  in;                          
      FIELD START   1 LENGTH  200                           
        POSITION 1.0 IN 1.0 IN DIRECTION ACROSS             
        BARCODE maxil TYPE 2DMATRIX MOD 0 BCXPARMS ESC E2A  
        BCDSYMB bcd2 BCDSEQ  5;                             
                                                            
    PRINTLINE REPEAT 4;                                     
      FIELD START   1 LENGTH  200 DIRECTION ACROSS          
        BARCODE maxil BCDSYMB bcd2 BCDSEQ 1; 
Notes:
  1. A bar code cannot be positioned on or outside of the logical page.
    For example, the following page definition results in a position of 0 0, which is on the logical page boundary. The following example results in a printer error:
    PAGEDEF XMPL1 REPLACE YES;
    SETUNITS 1 IN 1 IN LINESP 6 LPI;
        FONT FNT1 CR10;
        FONT FNT2 CR10;
      PAGEFORMAT IBMSSN WIDTH 9.5 HEIGHT 4.0     /* PORTRAIT */
      DIRECTION ACROSS;
      PRINTLINE
        FONT FNT1 REPEAT 1 CHANNEL 1 POSITION 0 0;
         FIELD START 671 LENGTH 13 POSITION 0 0
          BARCODE 3OF9
          TYPE 1 MODWIDTH 17
          SSASTERISK ON;
  2. If you want to suppress blanks, use the SUPPBLANKS parameter.
  3. SUPPBLANKS for bar code data cause the entire field to be ignored if it is all blanks.
  4. Bar code Symbol Size
    The height of the bar code symbol is controlled by the bar code symbology definition and by various BCOCA parameters. The width of the symbol is typically dependent on the amount of data to be encoded and by choices that are made in various BCOCA parameters.
    Linear Symbologies
    The element-height and height-multiplier parameters specify the height of the symbol. For some bar code types, these parameters also include the height of the human-readable interpretation (HRI). See the description of the element-height parameter in the Bar Code Object Content Architecture Reference for a description of the height for specific linear symbols. Some bar code symbologies (Australia Post Bar Code, Japan Postal Bar Code, POSTNET, RM4SCC, and REDTAG) explicitly specify the bar code symbol height; in this case, the element-height and height-multiplier parameters are ignored.
    Two-Dimensional Matrix Symbologies
    The MaxiCode symbology specifies a fixed physical size, nominally 28.14 mm wide by 26.91 mm high; the module-width, element-height, and height-multiplier parameters are ignored for MaxiCode values.

    Data Matrix symbols are rectangular and are made up of a pattern of light and dark squares (called modules). The size of each module is specified in the module-width parameter and the number of rows and columns of these modules is controlled by the desired-number-of-rows and desired-row-size parameters and the amount of data to be encoded. The element-height and height-multiplier parameters are ignored for Data Matrix symbols.

    QR Code symbols are square and are made up of a pattern of light and dark squares (called modules). The size of each module is specified in the module-width parameter; the number of rows and columns of these modules is controlled by the version parameter, the error correction level that is selected, and the amount of data to be encoded. The element-height and height-multiplier parameters are ignored for QR Code symbols.

    Two-Dimensional Stacked Symbologies
    PDF417 symbols are rectangular and are made up of a pattern of light and dark rectangles (called modules). The size of each module is specified in the module-width, element-height, and height-multiplier parameters and the number of rows and columns of these modules is controlled by the data-symbols and rows parameters and the amount of data to be encoded. A PDF417 symbol must contain at least three rows.

For more information about bar codes, see More About Bar Code Parameters and Bar Code Object Content Architecture Reference.

name
Specifies a specific bar code name to be included in a page definition. The name is required if BARCODE is used to reference or continue the bar code later, as is done for bar code concatenation.
TYPE { n | type-name }
Specifies the type of bar code symbol to be generated.
Note: If a type indicates "(same as n)", you can substitute the specified number for the character name.
The following bar code types are supported:
type-name
Specifies a specific bar code type name to be included in a page definition.
CODE39 (same as 1)
Specifies a bar code type of Code 39 (3-of-9 code), Automatic Identification Manufacturers Uniform Symbol Specification 39.
MSI (same as 2)
Specifies a bar code type of modified Plessey code.
UPCA (same as 3)
Specifies a bar code type of Universal Product Code (United States) and the Canadian Grocery Product Code, Version A.
UPCE (same as 5)
Specifies a bar code type of Universal Product Code (United States) and the Canadian Grocery Product Code, Version E.
UPC2SUPP (same as 6)
Specifies a bar code type of Universal Product Code (United States) two-digit Supplemental (periodicals).
UPC5SUPP (same as 7)
Specifies a bar code type of Universal Product Code (United States) five-digit Supplemental (paperbacks).
EAN8 (same as 8)
Specifies a bar code type of European Article Numbering 8 (includes Japanese Article Numbering-short).
EAN13 (same as 9)
Specifies a bar code type of European Article Numbering 13 (includes Japanese Article Numbering-standard).
IND2OF5 (same as 10)
Specifies a bar code type of Industrial 2-of-5.
MAT2OF5 (same as 11)
Specifies a bar code type of Matrix 2-of-5.
ITL2OF5 (same as 12)
Specifies a bar code type of Interleaved 2-of-5, Automatic Identification Manufacturers Uniform Symbol Specification-I 2/5.
CDB2OF7 (same as 13)
Specifies a bar code type of Codabar, 2-of-7, Automatic Identification Manufacturers Uniform Symbol Specification-Codabar.
CODE128 (same as 17)
Specifies a bar code type of Code 128, Automatic Identification Manufacturers Uniform Symbol Specification-128.
Note: A subset of CODE128 exists that is called EAN128. These EAN128 bar codes can be produced with PPFA by specifying CODE128 for the bar code type in the PAGEDEF and including the extra parts of the bar code in the data. The UCC-128 bar code format is:
startcode FNC1 ai nnnnnnnnnnnnnnnnnn m c stopchar
The string of ns represents the bar code data. The start code, stop character, and 'c' value are generated by the printer microcode for BCOCA bar codes. The FNC1 is a hexadecimal 8F character. The ai is an application identifier and needs to be defined for use by each EAN128 application. The m is a modulo 10 check digit that must be calculated by the application and included in the bar code data.

Not all printers generate the EAN128 bar codes; thus, you might need to verify that the bar code that is produced in this manner is readable by your bar code scanner.

For more information about the EAN128 bar codes, see the AFP Consortium web page.

EAN2SUP (same as 22)
Specifies a bar code type of European Article Numbering, Two-digit Supplemental.
EAN5SUB (same as 23)
Specifies a bar code type of European Article Numbering, Five-digit Supplemental.
POSTNET (same as 24)
Specifies a bar code type of POSTal Numeric Encoding Technique (United States Postal Service), and defines specific values for the BSD module width, element height, height multiplier, and wide-to-narrow ratio fields.
Note: POSTNET MOD 4 is normally called PLANET bar code. POSTNET MOD 4 is supported by PPFA and some AFP printers.
RM4SCC (same as 26)
Specifies a 4-state customer code that is defined by the Royal Mail Postal Service of England for bar coding postal code information.
JPOSTAL (same as 27)
A complete Japan Postal Bar Code symbol consists of a set of distinct bars and spaces for each character followed by a modulo 19 checksum character and enclosed by a unique start character, stop character and quiet zones.
2DMATRIX (same as 28)
Specifies a Data Matrix two-dimensional bar code. Two-dimensional matrix symbologies (sometimes called area symbologies) allow large amounts of information to be encoded in a two-dimensional matrix. These symbologies are typically rectangular and require a quiet zone around all four sides; for example, the Data Matrix symbology requires a quiet zone at least one module wide around the symbol. Two-dimensional matrix symbologies use extensive data compaction and error correction codes, allowing large amounts of character or binary data to be encoded.
2DMAXI (same as 29)
Specifies a MaxiCode two-dimensional stacked bar code. Two-dimensional stacked symbologies allow large amounts of information to be encoded by effectively stacking short one-dimensional symbols in a row/column arrangement. This arrangement reduces the amount of space that is typically used by conventional linear bar code symbols and allows for a large variety of rectangular bar code shapes.
2DPDF417 (same as 30)
Specifies a PDF417 two-dimensional stacked bar code. Two-dimensional stacked symbologies allow large amounts of information to be encoded by effectively stacking short one-dimensional symbols in a row/column arrangement. This arrangement reduces the amount of space that is typically used by conventional linear bar code symbols and allows for a large variety of rectangular bar code shapes.
APOSTAL (same as 31)
Specifies the bar code type as defined by the Australian Postal Service.
2DQRCODE (same as 32)
Specifies a QR Code two-dimensional bar code. QR Code consists of a matrix of dark and light squares (modules). The matrix is also square and 40 sizes exist that range from a matrix of 21 by 21 modules and increase by steps of 4 up to a matrix of 177 by 177 modules. Thus, up to 7089 numeric characters, 4296 alphabetic characters, 2953 8-bit characters, or 1817 Kanji characters can be contained on a single symbol, and up to 16 symbols can be logically linked together.

Since squares (modules) are square, the size of a module is determined by the MODWIDTH parameter only. The HEIGHT and RATIO parameters are not used.

CODE93 (same as 33)
Specifies a bar code type as defined by the AIM Uniform Symbology Specification - Code 93. This linear bar code is similar to Code 39, but more complex.
US4STATE (same as 34 or US4ST)
Specifies a United States Postal Service (USPS) Four-State bar code. This parameter can be abbreviated as US4ST. This bar code is also known as the Intelligent Mail Bar Code.

The USPS Four-State bar code symbol has a fixed size; therefore, the HEIGHT and RATIO parameters are not applicable and ignored. This bar code symbol allows a MODWIDTH parameter with two sizes SMALL and OPTIMAL. If you specify any other MODWIDTH, PPFA issues a warning message (RC=4), defaults to OPTIMAL, and continues generating the page definition. MODWIDTH SMALL prints a symbol approximately 2.575 inches wide and MODWIDTH OPTIMAL prints a symbol approximately 2.9 inches wide.

The input data is all numeric and consists of five data fields. The first four are fixed length; the fifth is variable length. The five fields are:

  1. Application ID (2 digits) - the second digit must be 0 - 4 so that the valid values are 00 - 04, 01 - 14, and so on, through 90 - 94.
  2. Special Services (3 digits) - assigned by the USPS. Valid values are 000 - 999.
  3. Customer Identifier (6 digits) - assigned by the USPS. Valid values are 000000 - 999999.
  4. Sequence Number (9 digits) - assigned by the mailer. Valid values are 000000000 - 999999999.
  5. Delivery Point ZIP Code (0, 5, 9, or 11 digits) - see the following MOD parameter for valid values.
USPS Four-State modifiers (MOD) are defined as follows:
X'00'
Present a USPS Four-State bar code symbol with no Delivery Point ZIP Code. The input data for this bar code symbol must be 20 numeric digits.
X'01'
Present a USPS Four-State bar code symbol with a 5-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 25 numeric digits. The valid values for the Delivery Point ZIP code are 00000 - 99999.
X'02'
Present a USPS Four-State bar code symbol with a 9-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 29 numeric digits. The valid values for the Delivery Point ZIP code are 000000000 - 999999999.
X'03'
Present a USPS Four-State bar code symbol with an 11-digit Delivery Point ZIP Code. The input data for this bar code symbol must be 31 numeric digits. The valid values for the Delivery Point ZIP code are 00000000000 - 99999999999.
Note: You can print HRI with this symbol but it is not currently (Oct 2004) defined by the USPS. Therefore, PPFA defaults the HRI parameter to HRI OFF for this symbol. The USPS says that they plan to define HRI for some Special Services. "Track and Confirm" is an example of a Special Service that USPS does not currently define HRI but might in the future.
REDTAG (same as 35)
Specifies a 4-state bar code type that is defined by the Royal Mail Postal Service of England as RED TAG.
DATABAR (same as 36)
Specifies a bar code type of GS1 DataBar.
Read syntax diagramSkip visual syntax diagram
Other BARCODE Parameters

|--+---------------------------+-------------------------------->
   '-Common BARCODE Parameters-'   

>--+------------------------------+----------------------------->
   '-Common 2D BARCODE Parameters-'   

>--+---------------------------------+--------------------------|
   '-Concatenated BARCODE Parameters-'   

Common BARCODE Parameters
Read syntax diagramSkip visual syntax diagram
|--+--------+--+---------------------------------------+-------->
   '-MOD--n-'  '-HRI--+-ON----+--+-------------------+-'   
                      +-ABOVE-+  '-HRIFONT--fontname-'     
                      +-BELOW-+                            
                      +-OFF---+                            
                      '-ONLY--'                            

>--+---------------------+--+----------------------+------------>
   '-SSASTERISK--+-ON--+-'  '-WIDTH--n--+--------+-'   
                 '-OFF-'                +-IN-----+     
                                        +-MM-----+     
                                        +-CM-----+     
                                        +-POINTS-+     
                                        '-PELS---'     

                              .-MODWIDTH--OPTIMAL-----.   
>--+-----------------------+--+-----------------------+--------->
   '-HEIGHT--n--+--------+-'  '-MODWIDTH--+-n-------+-'   
                +-IN-----+                +-OPTIMAL-+     
                +-MM-----+                '-SMALL---'     
                +-CM-----+                                
                +-POINTS-+                                
                '-PELS---'                                

>--+------------------------------------------------------------+-->
   +-BCCOLOR--colorname-----------------------------------------+   
   +-RGB--rvalue--gvalue--bvalue--------------------------------+   
   +-HIGHLIGHT--hvalue--+------------------+--+---------------+-+   
   |                    '-COVERATE--cvalue-'  '-BLACK--bvalue-' |   
   +-CMYK--cvalue--mvalue--yvalue--kvalue-----------------------+   
   '-CIELAB--lvalue--(-)--cvluae--(-)--c2value------------------'   

>--+------------+--+------------+------------------------------->
   '-SUPPBLANKS-'  '-RATIO-- n -'   

>--+-------------------------------+----------------------------|
   | .---------------------------. |   
   | V                           | |   
   '---CMR--cmr-lname--+-AUDIT-+-+-'   
                       +-INSTR-+       
                       '-LINK--'       

MOD
Read syntax diagramSkip visual syntax diagram
|--+--------+---------------------------------------------------|
   '-MOD--n-'   

Specifies more processing information about the bar code symbol to be generated (for example, MOD specifies whether a check-digit 1 must be generated for the bar code symbol).

n
The meaning of n differs between the types. For more information, see Table 1.
If MOD is not specified, the MOD value defaults as follows, depending on the bar code type specified:
TYPE MOD TYPE MOD
1 1 22 0
2 1 23 0
3 0 24 0
5 0 26 0
6 0 27 0
7 0 28 0
8 0 29 0
9 0 30 0
10 1 31 1
11 1 32 2
12 1 33 0
13 1 35 1
17 2 36 0
HRI
Read syntax diagramSkip visual syntax diagram
|--+---------------------------------------+--------------------|
   '-HRI--+-ON----+--+-------------------+-'   
          +-ABOVE-+  '-HRIFONT--fontname-'     
          +-BELOW-+                            
          +-OFF---+                            
          '-ONLY--'                            

Specifies the human-readable interpretation (text characters) to be generated and placed above or below the bar code symbol, as directed.

ON
Specifies that HRI must be generated at the default location for the bar code type.
ABOVE
Specifies that HRI must be placed above the bar code symbol.
BELOW
Specifies that HRI must be placed below the bar code symbol.
OFF
Specifies that HRI must not be generated.
ONLY
Specifies that only the HRI is to be printed. No bar code symbol is to be generated. The POSITION parameters on the FIELD command specify the placement position for the first character of the HRI.
Note: Not all bar code printers accept the request to suppress printing the bar code symbol.
Notes:
  1. If HRI is requested, and HRI font isn't, the printer default font is used to render the HRI, instead of the font specified on the FIELD FONT subcommand.
  2. HRI is not supported by any of the 2D bar codes.
HRIFONT fontname
Specifies the local name of a font that is used in printing the HRI for the bar code. This font must first be defined in a previous font command in the page definition.
SSASTERISK
Read syntax diagramSkip visual syntax diagram
|--+---------------------+--------------------------------------|
   '-SSASTERISK--+-ON--+-'   
                 '-OFF-'     

Specifies whether an asterisk is to be generated as the HRI for CODE39 bar code start and stop characters.

Note: SSASTERISK is ignored by all bar code types except CODE39.
ON
Specifies that start and stop characters must be generated in the HRI.
OFF
Specifies that start and stop characters must not be generated in the HRI.
WIDTH
Read syntax diagramSkip visual syntax diagram
|--+----------------------+-------------------------------------|
   '-WIDTH--n--+--------+-'   
               +-IN-----+     
               +-MM-----+     
               +-CM-----+     
               +-POINTS-+     
               '-PELS---'     

Specifies the width of the whole bar code symbol.

n
Specifies the width value of the whole bar code symbol. The n value can be up to three decimal places.
HEIGHT
Read syntax diagramSkip visual syntax diagram
|--+-----------------------+------------------------------------|
   '-HEIGHT--n--+--------+-'   
                +-IN-----+     
                +-MM-----+     
                +-CM-----+     
                +-POINTS-+     
                '-PELS---'     

Specifies the height of bar code element. For UPC and EAN bar codes, the total height includes the bar code and the HRI characters.

If HEIGHT is not specified, the printer default height is used.
Note: HEIGHT is ignored by bar code types that explicitly specify the element heights (for example, POSTNET or RM4SCC).
n
Specifies the height of the bar code. The n value can be up to three decimal places.
unit
Specifies a unit of measurement for the HEIGHT parameter. The choices are IN, MM, CM, POINTS, or PELS.
Notes:
  1. If no unit is specified, the default is the most recent SETUNITS command value or IN (inch) if a SETUNITS command is not issued.
  2. Height for the 2D bar code. PDF417 specifies the height of a bar or row (not the total height of the symbol).
MODWIDTH
Read syntax diagramSkip visual syntax diagram
   .-MODWIDTH--OPTIMAL-----.   
|--+-----------------------+------------------------------------|
   '-MODWIDTH--+-n-------+-'   
               +-OPTIMAL-+     
               '-SMALL---'     

Specifies the width of the smallest defined bar code element by using mils (thousandths of an inch). The range of values is 1 - 254. If MODWIDTH is not specified, the printer default MODWIDTH is used; the printer default yields the optimum scannable symbol.

n
Specifies the width of each module by using thousandths of an inch (1⁄1000) as the unit of measurement.
OPTIMAL
Specifies that the printer chooses the optimal module width. This value is recommended. It is the default value when MODWIDTH is not coded.
SMALL
Specifies that the PPFA chooses a module width that produces the smallest symbol that meets the symbology tolerances.
Note: Because this symbol is at the lower boundary of the symbology-defined tolerance range, external conditions, such as printer contrast setting, toner consistency, and paper absorbency, might cause this symbol to scan improperly.
Example:
PAGEDEF 4SXM1   REPLACE YES;
  FONT FN1;

  PRINTLINE ;
   FIELD START 1  LENGTH 20 BARCODE BC1 TYPE US4ST;

  PRINTLINE ;
   FIELD START 01 LENGTH 20 BARCODE bc2 TYPE US4STATE MOD 0
     MODWIDTH OPTIMAL;
  PRINTLINE ;
   FIELD START 41 LENGTH 25 BARCODE bc3 TYPE US4STATE MOD 1
     MODWIDTH SMALL  ;
  PRINTLINE ;
   FIELD START 66 LENGTH 29 BARCODE bc4 TYPE US4STATE MOD 2
     MODWIDTH SMALL  ;
  PRINTLINE ;
   FIELD START 66 LENGTH 31 BARCODE bc5 TYPE US4STATE MOD 3
     MODWIDTH SMALL  ;
  PRINTLINE ;
   FIELD START 66 LENGTH 31 BARCODE bc6 TYPE US4STATE MOD 3
     MODWIDTH 15     ;
In the example:
  • FIELD BARCODE commands exist for the new "Four State" bar code with default Modifier, and explicit Modifiers each with the proper field length.
  • FIELD BARCODE commands exist that use the new MODWIDTH parameters SMALL and OPTIMAL.
  • One example BARCODE command exists that uses an explicit MODWIDTH parameter that results in an informational message and a MODWIDTH of OPTIMAL.
BCOLOR
Read syntax diagramSkip visual syntax diagram
|--+------------------------------------------------------------+--|
   +-BCCOLOR--colorname-----------------------------------------+   
   +-RGB--rvalue--gvalue--bvalue--------------------------------+   
   +-HIGHLIGHT--hvalue--+------------------+--+---------------+-+   
   |                    '-COVERATE--cvalue-'  '-BLACK--bvalue-' |   
   +-CMYK--cvalue--mvalue--yvalue--kvalue-----------------------+   
   '-CIELAB--lvalue--(-)--cvluae--(-)--c2value------------------'   

Specifies an OCA color or a defined color to be used in printing the bar code and its HRI. Defined colors are specified with the DEFINE COLOR command.

colorname
Values for color names are:
  • A defined color (defined by the DEFINE COLOR command)
  • NONE
  • DEFAULT
  • BLACK
  • BLUE
  • BROWN
  • GREEN
  • PINK
  • RED
  • TURQ (turquoise)
  • YELLOW
  • ORANGE
  • PURPLE
  • MUSTARD
  • GRAY
  • DARKBLUE
  • DARKGREEN
  • DARKTURQ (dark turquoise)

The color choices depend on the printer. NONE is the color of the medium. DEFAULT is the printer default color.

color model
Specifies the color of print for this field that is supported in MODCA for the Red/Green/Blue color model (RGB), the highlight color space, the Cyan/Magenta/Yellow/Black color model (CMYK), and the CIELAB color model.
Example: In the following code example, four bar codes are defined that use color.
  1. The first uses a predefined non-OCA color.
  2. The second uses an OCA color that is not predefined.
  3. The third uses a predefined OCA color.
  4. The fourth uses a CMYK color model directly.
 /*--------------------------------------------------------*/
 /* CMRX13  - Full Color on Bar Code                       */
 /*                                                        */
 /*                                                        */
 /*--------------------------------------------------------*/
 /* Traditional pagedef                                    */
 /*--------------------------------------------------------*/
  Pagedef cmx14P  replace yes;

    DEFINE ocablue COLOR OCA       blue            ;
    DEFINE cymkyel COLOR CMYK      50 30 30 30     ;

    FONT fte  egt12   TYPE ebcdic;

    PAGEFORMAT pf1;
      PRINTLINE;
      FIELD  START 50 LENGTH 8 RGB 30 25 25
      BARCODE  AUST1 TYPE APOSTAL  MOD 2
             BCCOLOR cymkyel    /* PRE-DEFINED NON-OCA COLOR   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO   TYPE POSTNET
             BCCOLOR RED        /* OCA COLOR                   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO1  TYPE POSTNET
             BCCOLOR ocablue    /* Defined     OCA COLOR       */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO2  TYPE POSTNET
             CMYK 50 30 30 30          /* direct cmyk color   */
             HEIGHT .5 IN;

 /*--------------------------------------------------------*/
 /* Record Fmt  pagedef                                    */
 /*--------------------------------------------------------*/
  Pagedef cmx14L  replace yes;

    DEFINE ocablue COLOR OCA       blue            ;
    Define rgbred  COLOR RGB       30 25 25        ;
    DEFINE cymkyel COLOR CMYK      50 30 30 30     ;
    DEFINE HIgreen COLOR HIGHLIGHT 100  coverage 50;
    DEFINE cieblue COLOR cielab    40 90 95        ;

    FONT fte  egt12   TYPE ebcdic;    /* type ebcdic   */

    PAGEFORMAT pf1;
    LAYOUT 'l1';
      FIELD  START 50 LENGTH 8 RGB 30 25 25
      BARCODE  AUST1 TYPE APOSTAL  MOD 2
             BCCOLOR cymkyel    /* PRE-DEFINED NON-OCA COLOR   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 8 BARCODE  AUST2  TYPE APOSTAL  MOD 2
             BCCOLOR RED        /* NON PRE-DEFINED OCA COLOR   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO   TYPE POSTNET
             BCCOLOR OCABLUE    /* PRE-DEFINED OCA COLOR       */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO2  TYPE POSTNET
                     CMYK 50 30 30 30   /* direct cmyk color   */
             HEIGHT .5 IN;


 /*--------------------------------------------------------*/
 /* XML         pagedef                                    */
 /*--------------------------------------------------------*/
  Pagedef cmx14X  replace yes;

    DEFINE ocablue COLOR OCA       blue            ;
    Define rgbred  COLOR RGB       30 25 25        ;
    DEFINE cymkyel COLOR CMYK      50 30 30 30     ;
    DEFINE HIgreen COLOR HIGHLIGHT 100  coverage 50;
    DEFINE cieblue COLOR cielab    40 90 95        ;

    DEFINE cn QTAG  'cust','name' ;
    FONT fte  egt12   TYPE ebcdic;    /* type ebcdic   */

    PAGEFORMAT pf1;
    XLAYOUT cn;
      FIELD  START 50 LENGTH 8 RGB 30 25 25
      BARCODE  AUST1 TYPE APOSTAL  MOD 2
             BCCOLOR cymkyel    /* PRE-DEFINED NON-OCA COLOR   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 8 BARCODE  AUST2  TYPE APOSTAL  MOD 2
             BCCOLOR RED        /* NON PRE-DEFINED OCA COLOR   */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO   TYPE POSTNET
             BCCOLOR OCABLUE    /* PRE-DEFINED OCA COLOR       */
             HEIGHT .5 IN;
      FIELD  START 5 LENGTH 5 BARCODE  BCCO2  TYPE POSTNET
                     CMYK 50 30 30 30   /* direct cmyk color   */
             HEIGHT .5 IN;
SUPPBLANKS
Read syntax diagramSkip visual syntax diagram
|--+------------+-----------------------------------------------|
   '-SUPPBLANKS-'   

Suppress the trailing blanks in the data field that is used to generate the bar code.

When the page definition selects any of the EAN, UPC or POSTNET bar code types and modifiers and also requests that trailing blanks be truncated for the bar code field, the print server examines the resulting data length and choose the correct bar code type and modifier for the bar code object created.
Note: If the data length does not match any of the bar code type and modifier combinations, the print server uses the original bar code type and modifier that is requested to build the bar code object.
RATIO
Read syntax diagramSkip visual syntax diagram
|--+------------+-----------------------------------------------|
   '-RATIO-- n -'   

Specifies the ratio between the width of the wide and the narrow bar code elements. The range of values is 100 - 500, but you must specify a value appropriate for your printer and bar code type or you errors occur at print time.

If RATIO is not specified, the printer default ratio is used.
n
The RATIO is specified as a percent value. For example, form nnn. For example, 200 represents a ratio of 2 to 1; 250 represents a ratio of 2.5 to 1. For most bar code symbols, the RATIO value is 200 - 300. For bar code types that explicitly specify the module width (for example, POSTNET and RM4SCC, this field is ignored. If RATIO is not specified, the default ratio for the bar code symbol is used.
CMR
Read syntax diagramSkip visual syntax diagram
   .-------------------------------.   
   V                               |   
|----+---------------------------+-+----------------------------|
     '-CMR--cmr-lname--+-AUDIT-+-'     
                       +-INSTR-+       
                       '-LINK--'       

Specify a Color management resource (CMR) and its process mode for a bar code object within the page definition.

Note: See AFP Color Management for more information about using the CMR subcommand.
cmr-lname
The CMR local name. This name must be defined with a DEFINE CMRNAME command.
Note: This parameter must immediately follow the CMR keyword.
processing mode parameter
Specify the processing mode for the CMR.
AUDIT
Process this CMR as an audit CMR.
INSTR
Process this CMR as an instruction CMR.
LINK
Process this CMR as a link CMR. This processing mode is only valid for device link (DL) CMRs.
Example: In the following code example, 2 bar codes are defined with CMRs specified. The bar codes are defined for traditional, record format and XML page definitions.
Note: The DEFINE CMRNAMEs for mycmr and dark1 are used in each page definition but defined only once. Page definitions that are compiled together can define a local CMR name only once. This requirement is because a DEFINE CMRNAME definition is global for all page definitions and form definitions in the same set of source code.
   DEFINE mycmr  CMRNAME ... ;
   DEFINE dark1  CMRNAME ... ;


  /* Traditional Pagedef         */
  PAGEDEF cmr10P  REPLACE yes;
    PRINTLINE;
      FIELD Start 1 Length 20
       BARCODE TYPE code39 MOD 1
         CMR myCMR  audit;
      FIELD Start 21 Length 40
       BARCODE TYPE code39 MOD 1
         CMR dark1  instr;

  /* Record Layout Pagedef       */
  PAGEDEF cmr10L  REPLACE yes;
    Font f1;
    LAYOUT 'l1';
      FIELD Start 1 Length 20
       BARCODE TYPE code39 MOD 1
         CMR myCMR  audit;
      FIELD Start 21 Length 40
       BARCODE TYPE code39 MOD 1
         CMR dark1  instr;

  /* XML Pagedef                 */
  PAGEDEF cmr10X  REPLACE yes;
    Font f1 TYPE ebcdic;
    XLAYOUT QTAG 'x1';
      FIELD Start 1 Length 20
       BARCODE TYPE code39 MOD 1
         CMR myCMR  audit;
      FIELD Start 21 Length 40
       BARCODE TYPE code39 MOD 1
         CMR dark1  instr;
Common 2D BARCODE Parameters
Read syntax diagramSkip visual syntax diagram
             .-ESC---.  .-NOE2A----------------.   
|--BCXPARMS--+-------+--+----------------------+---------------->
             '-NOESC-'  |      .-CP500-------. |   
                        '-E2A--+-CP290-------+-'   
                               +-CP1027------+     
                               +-CV1390To943-+     
                               +-CV1399To943-+     
                               +-CV1390To942-+     
                               +-CV1399To942-+     
                               +-CV1390To932-+     
                               '-CV1399To932-'     

>--+-------------------------------+----------------------------|
   +-| Data Matrix 2D Parameters |-+   
   +-| MaxiCode 2D Parameters |----+   
   +-| PDF417 2D Parameters |------+   
   '-| QRCODE 2D Parameters |------'   

Bar code parameters are common for all for two-dimensional bar code types.
Note: See the Bar Code Object Content Architecture (BCOCA) Reference and More About Bar Code Parameters for more details on these extra parameters.
escape sequence processing
Specifies whether to process escape sequences in the data.
Note: If the EBCDIC to ASCII flag is set (E2A), all characters are converted ASCII first so that the EBCDIC backslash characters (X'E0') are converted to ASCII (X'5C') before the escape sequence handling is applied.
ESC
Escape Sequence Handling. This is the default if neither is coded. When this parameter is coded or defaulted, each backslash character within the bar code data is treated as an escape character according to the particular bar code symbology specification.
NOESC
Ignore Escape Sequences. When this parameter is coded, each backslash character within the bar code data is treated as a normal data character.
Note: In this case, no code page switching can occur within the data.
EBCDIC to ASCII translation
Determines whether to translate the data.
Note: Only QRCODE uses the E2A code page parameters.
E2A
EBCDIC to ASCII translation for all two-dimensional bar codes.
  • For Data Matrix and MaxiCode, the printer converts each byte of the data from EBCDIC code page 500 to ASCII code page 819.
  • For PDF417, the printer converts each byte of the bar code data and each byte of the Macro PDF417 control block data from a subset of EBCDIC code page 500 into ASCII. This translation covers 181 code points, which includes alphanumerics and many symbols. The code points that are not covered by the translation do not occur in EBCDIC and are mapped, by the printer, to the X'7F' (127) code point. Do not use the following EBCDIC code points for PDF417:
  • QRCODE - The default coding for QRCODE is ECI 000020, which is equivalent to the IBM® ASCII code page 897. When translation is required, you must enter the code page to use for translation. Three choices exist. Each choice causes the printer to translate from the code page into ASCII code page 897 before the data is used to build the bar code symbol:
    • EBCDIC code page 500 (International #5). Only 128 bytes of this code page can be translated into ECI 000020. These code points are specified in QR Code Special-Function Parameters.
    • EBCDIC code page 290 (Japanese Katakana Extended).
    • EBCDIC code page 1027 (Japanese Latin Extended).
The first three values are used when the input data is encoded with a single-byte EBCDIC code page. The parameter identifies the EBCDIC code page that encodes single-byte EBCDIC bar code data:
CP500
Code page 500 (International #5) Only 128 of the characters within ECI 000020 can be specified in code page 500. The code page 500 characters that can be translated are shown in the Bar Code Object Content Architecture Reference.
CP290
Code page 290 (Japanese Katakana Extended)
CP1027
Code page 1027 (Japanese Latin Extended)
The following parameters are used when the input data is SOSI. Each parameter identifies a specific conversion from EBCDIC SOSI input data to a specific mixed-byte ASCII encoding:
CV1390To943
Translates EBCDIC data CCSID 1390 code points to ASCII Shift-JIS CCSID 943 code points.
CV1399To943
Translates EBCDIC data CCSID 1399 code points to ASCII Shift-JIS CCSID 943 code points.
CV1390To932
Translates EBCDIC data CCSID 1390 code points to ASCII Shift-JIS CCSID 932 code points.
CV1399To932
Translates EBCDIC data CCSID 1399 code points to ASCII Shift-JIS CCSID 932 code points.
CV1390To942
Translates EBCDIC data CCSID 1390 code points to ASCII Shift-JIS CCSID 942 code points.
CV1399To942
Translates EBCDIC data CCSID 1399 code points to ASCII Shift-JIS CCSID 942 code points.
Note: CCSID definitions:
CCSID 932
Japanese PC Data Mixed including 1880 UDC.
CCSID 942
Japanese PC Data Mixed including 1880 UDC, Extended SBCS.
CCSID 943
Japanese PC Data Mixed for Open environment (Multi-vendor code): 6878 JIS X 0208-1990 chars, 386 IBM selected DBCS chars, 1880 UDC (X'F040' to X'F9FC')
CCSID 1390
Extended Japanese Katakana-Kanji Host Mixed for JIS X0213 including 6205 UDC, Extended SBCS (includes SBCS and DBCS euro)
CCSID 1399
Extended Japanese Latin-Kanji Host Mixed for JIS X0213 including 6205 UDC, Extended SBCS (includes SBCS and DBCS euro)
NOE2A
No translation. This is the default if neither is coded. This parameter is used for all two-dimensional bar codes. No translation is done by the printer or PPFA. The bar code data is assumed to be the default coding as defined in the AIM Uniform Symbology Specification.
Data Matrix 2D parameters
Read syntax diagramSkip visual syntax diagram
   .-unspecified--------------.   
|--+--------------------------+--------------------------------->
   '-SIZE--rows--+----+--cols-'   
                 '-BY-'           

>--+--------------------------------------------------+--------->
   |                             .-ID--1--1---------. |   
   '-SEQUENCE--seq--+----+--tot--+------------------+-'   
                    '-OF-'       '-ID--uidHi--uidLo-'     

   .-USERDEF------.   
>--+--------------+---------------------------------------------|
   +-FNC1UCC------+   
   +-FN1IND-------+   
   +-RDRPROG------+   
   +-MAC5---------+   
   +-MAC6---------+   
   '-ENCODE--type-'   

These parameters are for Data Matrix 2D bar codes:

SIZE
Read syntax diagramSkip visual syntax diagram
   .-unspecified--------------.   
|--+--------------------------+---------------------------------|
   '-SIZE--rows--+----+--cols-'   
                 '-BY-'           

The size of the two-dimensional bar code. The number of rows and columns (row size) in the symbol. The allowable values for rows and columns are specified in Table 1. If size is not coded, the size is marked as unspecified and the appropriate number of rows and columns are used based on the amount of data.

unspecified
Unspecified size. The SIZE parameter isn't coded. The appropriate number of rows and columns are used based on the amount of data that is presented.
rows BY cols
The number of rows that are wanted including the finder pattern, and the number of columns (or modules) in each row that are wanted including the finder pattern. The keyword BY is optional. The rows and columns must be one of the allowed combinations in Table 1.
SEQUENCE
Read syntax diagramSkip visual syntax diagram
|--+--------------------------------------------------+---------|
   |                             .-ID--1--1---------. |   
   '-SEQUENCE--seq--+----+--tot--+------------------+-'   
                    '-OF-'       '-ID--uidHi--uidLo-'     

Structured append sequence indicator. Some two-dimensional bar codes can be logically linked together to encode large amounts of data. The logically linked symbols can be presented on the same or different media and are logically recombined after they are scanned. PPFA checks the numbers for obvious errors and the proper number range. For example, SEQUENCE 5 OF 3 is wrong.

sqn
Structured-append sequence indicator. This parameter is an integer whose acceptable range of values depends on the bar code type. The range for this parameter is 1 - 16.
OF
Optional parameter for readability.
tot
Total number of structured-append symbols. This parameter is an integer whose acceptable range of values depends on the bar code type. The range of this parameter is 2 - 16.
ID uidHi uidLo
The high and low-order bytes of a unique file identification for a set of structured-append symbols. Each is a unique number 1 - 254 and identifies this set of symbols. The actual File ID is computed by 256 times uidHi plus uidLo.
data matrix special functions
Read syntax diagramSkip visual syntax diagram
   .-USERDEF------.   
|--+--------------+---------------------------------------------|
   +-FNC1UCC------+   
   +-FN1IND-------+   
   +-RDRPROG------+   
   +-MAC5---------+   
   +-MAC6---------+   
   '-ENCODE--type-'   

Special functions that can be used only with a Data Matrix symbol. If not coded, the default is USERDEF (user-defined symbol).

FNC1UCC
UCC/EAN FNC1 alternate data type identifier. An FNC1 is added in the first data position (or fifth position of a structured append symbol) to indicate that this bar code symbol conforms to the UCC/EAN application identifier standard format.
FNC1IND
Industry FNC1 alternate data type identifier. An FNC1 is added in the second data position (or sixth data position of a structured append symbol) to indicate that this bar code symbol conforms to a particular industry standard format.
RDRPROG
Used when the symbol contains a message that is used to program the bar code reader. In this case, the bar code symbol cannot be a part of a structured append sequence.
MAC5
This provides instructions to the bar code reader to insert an industry-specific header and trailer around the symbol data. The bar code symbol contains a 05 Macro codeword. The bar code symbol cannot be a part of a structured append sequence.
MAC6
Same as MAC5 except the bar code symbol contains a 06 Macro codeword. The bar code symbol cannot be a part of a structured append sequence.
ENCODE
Data Matrix bar code encodation scheme.
type
Specifies the Data Matrix bar code encodation scheme. These encodation schemes are supported:
DEFAULT
Uses a device-specific method of selecting and switching among encodation schemes. If you are unsure of which encodation scheme to use, device default is a good choice.
ASCII
Encodation scheme that produces 4 bits per data character for double digit numerics, 8 bits per data character for ASCII values 0 - 127, and 16 bits per data character for Extended ASCII values 128 - 255.
C40
Encodation scheme that is used when the input data is primarily uppercase alphanumeric.
Text
Encodation scheme that is used when the input data is primarily lowercase alphanumeric.
X12
Encodation scheme that is used when the input data is defined with the ANSI X12 EDI data set.
EDIFACT
Encodation scheme that is used when the input data is ASCII values 32 - 94.
BASE256
Encodation scheme that is used when the data is binary (for example image or non-text data).
AUTO
Starts with ASCII encodation and switches between encodation schemes as needed to produce the minimum symbol data characters.
USERDEF
None of the supported schemes. This is a user-defined data symbol with no Header or Trailer instructions to the reader.
MaxiCode 2D Parameters
Read syntax diagramSkip visual syntax diagram
   .-MODE 4--.                                  .-NOZIPPER-.   
|--+---------+--+----------------------------+--+----------+----|
   '-MODE md-'  '-SEQUENCE--seq--+----+--tot-'  '-ZIPPER---'   
                                 '-OF-'                        

These parameters are for MaxiCode 2D bar codes:

MODE
Read syntax diagramSkip visual syntax diagram
   .-MODE 4--.   
|--+---------+--------------------------------------------------|
   '-MODE md-'   

Symbol mode (used for MaxiCode two-dimensional bar code only). If not coded, the default is Standard Symbol Mode 4.

2
Structured Carrier Message - numeric postal code.
3
Structured Carrier Message - alphanumeric postal code.
4
Standard symbol (default).
5
Not supported.
6
The bar code data is used to program the bar code reader system.
SEQUENCE
Read syntax diagramSkip visual syntax diagram
|--+----------------------------+-------------------------------|
   '-SEQUENCE--seq--+----+--tot-'   
                    '-OF-'          

Structured append sequence indicator. Some two-dimensional bar codes can be logically linked together to encode large amounts of data. The logically linked symbols can be presented on the same or different media and are logically recombined after they are scanned. PPFA checks the numbers for obvious errors and the proper number range. For example, SEQUENCE 5 OF 3 is wrong.

sqn
Structured-append sequence indicator. This parameter is an integer whose acceptable range of values depends on the bar code type. The range of this parameter is 1 - 8.
OF
Optional parameter for readability.
tot
Total number of structured-append symbols. This parameter is an integer whose acceptable range of values depends on the bar code type. The range for this parameter is 2 - 8.
zipper pattern
Read syntax diagramSkip visual syntax diagram
   .-NOZIPPER-.   
|--+----------+-------------------------------------------------|
   '-ZIPPER---'   

Print a zipper pattern and contrast block (use for MaxiCode two-dimensional bar code only).

NOZIPPER
Does not print a zipper pattern.
ZIPPER
Prints a zipper pattern.
PDF417 2D Parameters
Read syntax diagramSkip visual syntax diagram
   .-SIZE--MIN--10------------------------------.   
|--+--------------------------------------------+--------------->
   '-SIZE--+-MIN---------+--+----+--cols (1-30)-'   
           '-rows (3-80)-'  '-BY-'                  

   .-SECLEV--0--.                       
>--+------------+--+----------------+---------------------------|
   '-SECLEV--sl-'  '-MACRO--qstring-'   

These parameters are for PDF417 2D bar codes:

SIZE
Read syntax diagramSkip visual syntax diagram
   .-SIZE--MIN--10------------------------------.   
|--+--------------------------------------------+---------------|
   '-SIZE--+-MIN---------+--+----+--cols (1-30)-'   
           '-rows (3-80)-'  '-BY-'                  

The size of the two-dimensional bar code. The number of rows and number of columns (number of data symbol characters per row). These numbers do not include the start patterns or left and right row indicators. The allowable values for rows are 3 - 90, the allowable values for cols are 1 - 30, but their product cannot exceed 928. If size is not coded, the default is MIN number of rows and 10 cols (characters per row).

rows
The number of rows that are wanted.
MIN
Instructs the printer to use the minimum number of rows necessary to print the symbol.
cols
The number of data symbol characters in a row that are wanted.
SECLEV
Read syntax diagramSkip visual syntax diagram
   .-SECLEV--0--.   
|--+------------+-----------------------------------------------|
   '-SECLEV--sl-'   

This parameter specifies the security level that is wanted for the symbol as a value 0 - 8. Each higher security level causes more error correction codewords to be added to the symbol (used for PDF417 two-dimensional bar code only). If not coded, the default is Security level 0.

MACRO
Read syntax diagramSkip visual syntax diagram
|--+--------------------+---------------------------------------|
   |        .---------. |   
   |        V         | |   
   '-MACRO----qstring-+-'   

PDF417 Macro data. The total length of macro text is limited to 28,000 bytes.2

qstring
A quoted string. The string does not extend across records, but you can code multiple quoted strings. Code the MACRO keyword only once.
QRCODE 2D Parameters
Read syntax diagramSkip visual syntax diagram
   .-SIZE--MIN------.   
|--+----------------+------------------------------------------->
   '-SIZE--+------+-'   
           +-rows-+     
           '-MIN--'     

>--+-----------------------------------------------+------------>
   '-SEQUENCE--seq--+----+--tot--+---------------+-'   
                    '-OF-'       '-PARITY--X'dd'-'     

   .-ECLEV--L-----.  .-USERDEF-----------.   
>--+--------------+--+-------------------+----------------------|
   '-ECLEV--+-M-+-'  +-FNC1UCC-----------+   
            +-Q-+    '-FNC1IND--AI--'ai'-'   
            '-H-'                            

These parameters are for QRCODE 2D bar codes:

SIZE
Read syntax diagramSkip visual syntax diagram
   .-SIZE--MIN-----------.   
|--+---------------------+--------------------------------------|
   '-SIZE--+-----------+-'   
           '-MIN--rows-'     

The size (in rows and columns) that is wanted for of the QRCODE bar code. This symbol is square so both rows and columns are the same. The allowable values for rows and columns are 21 - 177 in increments of 4. These are also specified in Table 1. The size in rows by cols is 21 - 177 in increments of 4.

rows
The number of rows and columns that is wanted.
MIN
Instructs the printer to use the minimum number of rows necessary to print the symbol.
SEQUENCE
Read syntax diagramSkip visual syntax diagram
|--+-----------------------------------------------+------------|
   '-SEQUENCE--seq--+----+--tot--+---------------+-'   
                    '-OF-'       '-PARITY--X'dd'-'     

QR bar codes can be logically linked together to encode large amounts of data. The logically linked symbols can be presented on the same or different media and are logically recombined after they are scanned. PPFA checks the numbers for obvious errors and the proper number range. For example, SEQUENCE 5 OF 3 is wrong.

seq
Structured-append sequence indicator. This parameter is an integer whose acceptable range of values is 1 - 16.
OF
Optional parameter for readability.
tot
Total number of structured-append sequences indicator. This parameter is an integer whose acceptable range of values is 2 - 16.
PARITY X'dd'
Structured append parity data. This parameter is used for the QR Code 2D bar code only when it has linked structured-append symbols. The parameter specifies the parity byte for the entire collection of linked structured-append symbols. The parity byte is the same for each symbol in the collection and is obtained by doing an "exclusive or" function on all of the bytes of the ASCII data in all symbols of the collection. If this symbol is not structured-append symbol, the parity parameter is ignored.
X'dd'
The parity data byte. It must be entered as two hexadecimal digits (X'0' - X'F'). As for all hexadecimal digits in PPFA, the digits must be uppercase if they are X'A' - X'F'.
ECLEV
Read syntax diagramSkip visual syntax diagram
   .-ECLEV--L-----.   
|--+--------------+---------------------------------------------|
   '-ECLEV--+-M-+-'   
            +-Q-+     
            '-H-'     

Error Correction Level. It specifies the level of error correction to be used for the symbol. Each higher level of error correction causes more error correction code words to be added to the symbol; therefore, fewer code words are left for the data. See the particular bar code symbology specification for more information. Four different levels of Reed-Solomon error correction can be selected:

L
Level L allows recovery of 7% of symbol code words.
M
Level M allows recovery of 15% of symbol code words.
Q
Level Q allows recovery of 25% of symbol code words.
H
Level H allows recovery of 30% of symbol code words.
special functions
Read syntax diagramSkip visual syntax diagram
   .-USERDEF-----------.   
|--+-------------------+----------------------------------------|
   +-FNC1UCC-----------+   
   '-FNC1IND--AI--'ai'-'   

Special functions that can be used with QR Code 2D symbols. If not coded, the default is USERDEF (user-defined symbol).

FNC1UCC
UCC/EAN FNC1 alternate data type identifier. The symbol indicates that this QR Code symbol conforms to the UCC/EAN application identifiers standard.
FNC1IND
Industry FNC1 alternate data type identifier. The symbol indicates that this QR Code symbol conforms to the specific industry or application specifications previously agreed with AIM International. When this standard is selected, an application indicator must be specified.
AI 'ai'
Application indicator for Industry FNC1. This value is coded as a single uppercase or lowercase alphabetic character, or a 2-digit number. It must be enclosed in single quotation marks. This parameter is required for QR Code bar codes when FNC1IND is coded.
USERDEF
None of the special functions. This value is a user-defined symbol with either no significance or "user-defined" significance that is assigned to all FNC1 characters that appear in the symbol.
QRCODE Barcode Example:
PAGEDEF QNXmp Replace Yes;

 PRINTLINE;
   FIELD START 1 LENGTH 4400 BARCODE bc3p     TYPE 2DQRCODE
       BCXPARMS E2A CP500
                noesc
                SIZE 025
                ECLEV M
                SEQUENCE 1 of 7
                PARITY x'7A'
                FNC1IND AI 'a'
                ;
In the example:
  • A QRCODE 2D bar code is placed. The data is encoded in EBCDIC with code page 500. The bar code is 25 by 25 squares and the error correction level is M, which allows recovery of 15% of symbol code words.
  • This is the first of seven symbols that are to be linked together by the bar code reader application program. The parity-data value for all symbols is a hexadecimal X'7A'. Parity must be the same for all the linked symbols and is obtained by doing an "exclusive or" function on all of the bytes of the ASCII value of all the original input data.
  • The QRCODE symbol conforms to industry specifications for application indicator a.
Concatenated BARCODE Parameters
Read syntax diagramSkip visual syntax diagram
|--BCDSYMB--+-symname------+------------------------------------|
            +-BCDSEQ--seq#-+   
            '-BCDNEW-------'   

BCDSYMB symname
Specifies bar code data collection symbol and names a bar code data collection. All bar code data that is described with FIELD command and bar codes with this name is collected for printing the bar code.

Defines an alpha-numeric name up to 16 characters long. This name must be unique within a page format.

BCDSEQ seq#
Specifies bar code data sequence number. Allows for sequencing bar code data. Bar code data that is collected with unique sequence numbers is collected in ascending order of its sequence number. Data with the same sequence number is collected in the order its FIELD commands are processed.
Note: BCDSEQ is optional but if it coded, all bar codes with the same BCDSYMB symbol name must code BCDSEQ.
BCDNEW
Specifies to start a new bar code symbol for collected bar code data when this record is reused. If BCDSEQ is used to sequence the collection data, BCDNEW is placed on the FIELD command for the first record that is encountered in the data. This record might not be the first sequentially. In general, BCDNEW is placed on the record for the first piece of data that is encountered in the bar code data collection. If BCDSYMB is not specified, BCDNEW is ignored.
Note: This parameter has no effect on a PRINTLINE FIELD BARCODE command as the BCDNEW function does not apply to traditional line data.
1 Check digits are a method of verifying data integrity during the bar code reading process.
2 This limit is imposed by the data stream architecture. The total number of bytes allowed in a structured field is 32,000. Macro data must be shared with triplets, bar code data (which can be up to 2710 bytes), and other overhead.