IBM Support

Creating a Specific Font (INDFNTE Tag)

Troubleshooting


Problem

This document provides instructions for sending specific font controls to a printer when using Host Print Transform (HPT).

Resolving The Problem

This document provides instructions for sending particular font controls to a printer when using Host Print Transform (HPT).

This is done by retrieving and modifying a Workstation Customization Table (WSCST) and changing the Individual Font Entry (INDFNTE) tags to specify a font string, or font selection control, for a given font identifier.

Note: Examples in this document are using the HP PCL printer language.

This document was last updated on 5 November 2013.

Caution: These instructions are provided as is. Any assistance with editing the Workstation Customization Table must be done through a consulting agreement.


Basic Steps for Creating and Using a Workstation Customization Object

The following are the basic steps for creating and using a Workstation Customization Object (WSCST). Regardless of the particular issue(s) you are attempting to resolve, these steps must always be taken. This information is intended to provide a 'quick start' to creating a WSCST object for users who have at least some familiarity with creating them and with configuring printers.

Note: Additional, in-depth details for creating a WSCST object can be found in the following Rochester Support Center knowledgebase document:

N1010140: Instructions for Modifying a Workstation Customizing Object (WSCST)

The following are the basic 'quick start' steps.

Step 1: Retrieve the WSCST source code. Type the following command on the operating system command line:

Important Note: Use the Manufacturer type and model (MFRTYPMDL) that is appropriate for your printer. Also, the Source member (in the following example, HP4) is a name that is appropriate to your customizing object. This is what you will be calling your workstation customizing object in Step 3.

RTVWSCST DEVTYPE(*TRANSFORM) MFRTYPMDL(*HP4) SRCMBR(HP4)
         SRCFILE(QGPL/QTXTSRC)

Press the Enter key.

Step 2: Edit the source code by using PDM or SEU:
oTo use PDM, on the operating system command line type the following:

WRKMBRPDM FILE(QGPL/QTXTSRC) MBR(HP4)

Press the Enter key. Select Option 2 to edit.
oTo use SEU, on the operating system command line type the following:

STRSEU SRCFILE(QGPL/QTXTSRC) SRCMBR(HP4)

Press the Enter key.
Make any changes necessary to the WSCST object source code. Refer to the following section Customizing the INDFNTE Tag to make your changes. Then, save and exit. Continue with Step 3.

Step 3: Create the WSCST object using the CRTWSCST command. On the operating system command line, type the following:

Important Note: Match the SRCMBR name from Step 1 to the WSCST object name that is created in this step.

CRTWSCST WSCST(QGPL/HP4) SRCFILE(QGPL/QTXTSRC)

Press the Enter key.

Step 4: Add the WSCST to the printer configuration by using the Change Device Print command (CHGDEVPRT), the Change Output Queue command (CHGOUTQ), or by changing the PC5250 printer emulation session configuration.
oTo add the WSCST to a device description, on the operating system command line type the following:

CHGDEVPRT DEVD(device_name) TRANSFORM(*YES) MFRTYPMDL(*WSCSTLETTER)
          WSCST(QGPL/HP4)

Press the Enter key.
oTo add the WSCST to a remote output queue description, on the operating system command line type the following:

CHGOUTQ OUTQ(queue_name) TRANSFORM(*YES) MFRTYPMDL(*WSCSTLETTER)
        WSCST(HP4)

Press the Enter key.
oTo add the WSCST to a PC5250 printer emulation session, do the following:

a In the PC5250 printer session, click on Communication > Configure.
b Click on the Setup button.
c In the Configure PC5250 Printer Emulation window, select the box next to Transform Print Data to ASCII on the iSeries and select the Printer Model value of *WSCST.
d In the same window, specify the name of the WSCST in the Customizing Object parameter and the library where it is found in the Library parameter, for example, Customizing Object HP4 and Library QGPL.
e Click OK three times.
f Click File > Save to save the configuration.

Note: If any changes are made to the WSCST object source code after the CRTWSCST command is issued, it is necessary to tun the CRTWSCST command again. The printer writer must be ended and restarted for the changes to take effect.

Customizing the INDFNTE Tag

Once you are editing the workstation customizing object source using either PDM or SEU, find the Individual Font Entry (INDFNTE) tags. If the font that you want to add is a monospaced font, which means the letter i takes the same space as the letter w, then copy a :INDFNTE tag that has a FNTWTH = ''X. If a variable spaced font is needed, then find a tag that has a table for FNTWTH.

Go down to the section where the :INDFNTE tags are. Copy a complete section which starts with:

    :INDFNTE
     FID  =
     POINTSIZE =
     .
     .
     FNTWTH = ''X


or extended table if variable spacing.

To determine the fonts that are supported on the printer, print out its PCL font list.


Fixed Pitch Spacing Examples Using Courier Typeface Fonts

Caution: The following are random examples and are intended only as starting points. These examples are not tested and are not guaranteed to work.


Following is an example for mapping FONT(222) to a fixed-pitch Courier 15 CPI font with a solid upright style, and a medium stroke weight:

    :INDFNTE
      FID  = 222              /* FGID 222 = Courier 15 */
      POINTSIZE = 0
     FNTSTR='1B2873307031352E3068307330623430393954'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(87) to a fixed-pitch Courier 12 CPI font with a solid upright style, and a medium stroke weight:

    :INDFNTE
     FID=  87                 /* FGID 87 = Courier 12 */

      POINTSIZE= 0
     FNTSTR='1B28733070313268307330623354'X
     FNTEND=''X
     FNTWTH=''X.


Note: According to the Printer Device Programming manual, FONT(87) should map to Letter Gothic 12. However, the implementation of the Letter Gothic font by Hewlett Packard is taller than the implementation by IBM which can cause overlapping with LPIs greater than 6. Therefore, changing FONT(87) to map to a Courier 12 font changes the typeface used and, therefore, the look of your output but will prevent overlapping at 8 or 9 LPI.

Following is an example for mapping FONT(281) to a fixed-pitch Courier 20 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 281              /* FGID 281 = Courier 20 */

      POINTSIZE = 0
     FNTSTR ='1B2873307032302E3068307330623354'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(416) to a fixed-pitch Courier 16 CPI font with a solid upright style and a demi bold stroke weight:

    :INDFNTE
     FID  = 416              /* FGID 416 = Courier 16 */

      POINTSIZE = 0
     FNTSTR ='1B2873307031362E3068307330623354'X
     FNTEND = ''X
     FNTWTH = ''X.



Fixed Pitch Spacing Examples using Letter Gothic Typeface Fonts

Following is an example for mapping FONT(36) to a fixed-pitch Letter Gothic 10 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 36         /* FGID 36 = Letter Gothic 10 */
     POINTSIZE = 0
     FNTSTR = '1B2873307031302E3068307330623431303254'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(87) to a fixed-pitch Letter Gothic 12 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 87         /* FGID 87 = Letter Gothic 12 */
     POINTSIZE = 0
     FNTSTR = '1B2873307031322E3068307330623431303254'X
     FNTEND = ''X
     FNTWTH = ''X.


Note: According to the Printer Device Programming manual, FONT(87) should map to Letter Gothic 12. However, the implementation of the Letter Gothic font by Hewlett Packard is taller than the implementation by IBM which can cause overlapping with LPIs greater than 6. Therefore, this document contains another example, earlier in this document, for mapping FONT(87) to a Courier 12 font rather than a Letter Gothic 12 font. The other example change the typeface used and, therefore, the look of your output but will prevent overlapping at 8 or 9 LPI.

Following is an example for mapping FONT(222) to a fixed-pitch Letter Gothic 15 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 222       /* FGID 222 = Letter Gothic 15 */
     POINTSIZE = 0
     FNTSTR = '1B2873307031352E3068307330623431303254'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(255) to a fixed-pitch Letter Gothic 17.1 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 255     /* FGID 255 = Letter Gothic 17.1 */
     POINTSIZE = 0
     FNTSTR = '1B2873307031752E3168307330623431303254'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(281) to a fixed-pitch Letter Gothic 20 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 281       /* FGID 281 = Letter Gothic 20 */
     POINTSIZE = 0
     FNTSTR = '1B2873307032302E3068307330623431303254'X
     FNTEND = ''X
     FNTWTH = ''X.



Fixed Pitch Spacing Examples using LinePrinter Typeface Fonts

Following is an example for mapping FONT(69) to a fixed-pitch LinePrinter 12 CPI font with a solid upright style and a bold stroke weight:

    :INDFNTE
     FID  = 69            /* FGID 69 = LinePrinter 12 */

      POINTSIZE = 0
     FNTSTR ='1B2873307031322E3068307333623054'X
     FNTEND = ''X
     FNTWTH = ''X.


Following is an example for mapping FONT(230) to a fixed-pitch LinePrinter 15 CPI font with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 230          /* FGID 230 = LinePrinter 15 */

      POINTSIZE = 0
     FNTSTR ='1B2873307031352E3068307330623054'X
     FNTEND = ''X
     FNTWTH = ''X.



Variable Spacing Example using a Times New Roman Typeface Font

Following is an example for mapping FONT(285) to a variable spaced Times New Roman 8.0 with a solid upright style and a medium stroke weight:

    :INDFNTE
     FID  = 285    /* FGID 285 = Times New Roman 8 pt */

      POINTSIZE = 0
     FNTSTR='1B2830551B28733170382E3076307330623054'X
     FNTEND = ''X
     FNTWTH = (this would include the extended variable table.)


The '382E3076' portion is the scalable control. Leaving everything else as is, experiment with this value to get different sizes of fonts. A smaller number indicates a smaller font.

Examples:

362E3076 is smaller -> 6.0 point
392E3076 is larger. -> 8.0 point
to get 6.5 point use '362E3576'.

Breakdown:

1B283055- ISO6:ASCII symbol set
1B2873  - prefix to setting font
3170    - proportional spacing
382E3076- point size (8.0p)
3173    - primary style: upright (solid)

3062    - stroke weight: medium (book or text)
313639303154 - typeface family: TIMES NEW ROMAN


FNTWTH =
/* 0-1-2-3-4-.....                    */
22ADAEA78F......                          /* 0- */


The FNTWTH is set up for each character for proportional or typographic fonts. This chart covers each code point. For example, x'01' has x'AD'. To calculate the width, convert x'AD' to decimal (173) then divide it into 1440's (173/1440). That is the font width of the x'01' character, if that were a character. Using proportional spacing may not be a good option because the fntwth calculations are very difficult.

For additional information about specifying a PCL5 font string in the DATA portion of the CPICOR tag and for a list of the default font IDs based on the font range, refer to the following Rochester Support Center knowledgebase documents:

N1010138: Breakdown of HP PCL5 Font Strings
N1010119: List of Default Font IDs Based on Font Range

To create the WSCST object and implement it, perform Steps 3 and 4 (above).

[{"Product":{"code":"SWG60","label":"IBM i"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":"Print","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"Version Independent;7.1.0;7.1;6.1.1;6.1.0;6.1;5.4.5;5.4.0;5.3.5;5.3.0;5.2.0;5.1.0;4.5.0","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Product":{"code":"SSC52E","label":"IBM i 7.1"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":" ","Platform":[{"code":"","label":null}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}},{"Product":{"code":"SSC3X7","label":"IBM i 6.1"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":" ","Platform":[{"code":"","label":null}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}}]

Historical Number

8703705

Document Information

Modified date:
18 December 2019

UID

nas8N1010124