8.3 Font Configuration Files

This section describes all of the files associated with font configuration for Oracle Reports:

Note:

Beginning in Oracle Reports 11g Release 2 (11.1.2), configuration of fonts should be done only through Oracle Enterprise Manager. Refer to Chapter 6, "Administering Oracle Reports Services Using Oracle Enterprise Manager", Section 6.9.1, "Configuring Fonts" for information about updating configuration settings through Oracle Enterprise Manager.

uiprint.txt (UNIX only)

The printer configuration file contains a list of printers installed for the application along with the type of the printer, its version, and the printer definition file. The list of available fonts for runtime is taken from the printer definition file. If no printer is present, Oracle Reports chooses a PostScript printer as the default and default.ppd file as the printer definition file.

Example:

Printer: Printer_driver:Driver_specifying_language_and_level:Printer_
description:Printer_definition_file:

Each line contains five fields separated by colons.

If you are using PCL printing, then this entry should contain the name of an HPD file.

screenprinter.ppd (UNIX only)

screenprinter.ppd is used when a printer is not available on UNIX. For more information, see Section 9.8.1, "ScreenPrinter".

uifont.ali

The uifont.ali file is found in the following location on Windows and UNIX:

On Windows: ORACLE_INSTANCE\config\FRComponent\frcommon\tools\common

On UNIX: ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin

This file contains mapping information for fonts that can be substituted for other fonts at runtime.

Caution:

Do not alter the sections as Oracle Reports parses the uifont.ali file looking for keywords. The sections can be in any order. Any font configuration should be done only through Oracle Enterprise Manager. Refer to Chapter 6, "Administering Oracle Reports Services Using Oracle Enterprise Manager", Section 6.9.1, "Configuring Fonts"for information about updating configuration settings through Oracle Enterprise Manager.

Some general rules for the uifont.ali file are:

  • Font or character set names require double quotation marks around two or more words, or spaces.

  • Comments are specified using # in the first column.

  • Comment out lines instead of deleting them to be able to use them in the future.

  • Font aliasing is a font name-to-font name or character set-to-CID font (from Adobe) only.

  • Font subsetting is for TrueType fonts only.

  • Font subsetting uses the font name and subsets using the TrueType font file name.

  • Font embedding is for Type1 fonts only. These fonts have two files. One for metrics, containing either.afm or.pfm file extension and the binary containing the.pfb file extension.

    Font embedding uses the font name and embeds using the Type 1 font file names (both the AFM and PFB files are required in this order).

The general format for aliasing in uifont.ali is:

"original_font"="font_to_be_aliased"

where original_font is the font name or its other attributes that will be mapped to the font name or attributes of font_to_be_aliased.

The fonts along with their attributes can be described as:

Face.Size.Style.Weight.Width.CharSet=Face.Size.Style.Weight.Width.CharSet

The Face must be the name (string/identifier) of a font face, such as Courier. The Style, Weight, Width, and CharSet may either be a numeric value or a predefined identifier or string. For example, both Plain and 0 are valid Style values and refer to the same style. The Size dimension must be an explicit size, in points.

These attributes take effect for font aliasing, font subsetting, and font embedding.

For example, in the case of font subsetting it is:

Font_name=font_file_name
Face.Size.Style.Weight.Width.CharSet=font_file_name

The following is a list of recognized names and their numeric equivalents:

Table 8-1 Style Names and Their Numeric Equivalents

Style Name Numeric Equivalent

Plain

0

Italic

1

Oblique

2

Underline

4

Outline

8

Shadow

16

Inverted

32

Blink

64


Table 8-2 Weights and Their Numeric Equivalents

Weight Name Numeric Equivalent

Ultralight

1

Extralight

2

Light

3

Demilight

4

Medium

5

Demibold

6


Table 8-3 Widths and Their Numeric Equivalents

Width Name Numeric Equivalent

Ultradense

1

Extradense

2

Dense

3

Semidense

4

Normal

5

Expand

7

Extraexpand

8

Ultraexpand

9


Styles may be combined; you can use the plus sign (+) to delimit parts of a style. For example:

Arial..Italic+Overstrike = Helvetica.12.Italic.Bold

This mapping indicates that any Arial that has both Italic and Overstrike styles will be mapped to a 12-point, bold, italic Helvetica font.

For multibyte language support, you must alias a character set with a CID font (Section 8.5.7, "CID Fonts") from the Asian font pack from Adobe. For example, in your Japanese report you have aliased a multibyte Shift-JIS characterset be aliased to HeiseiKakuGo-W5-Acro CID font with the following entry:

JA16SJIS = "HeiseiKakuGo-W5-Acro"

All strings are case-insensitive in mapping. Font faces are likely to be case-sensitive on lookup, depending on the platform and surface. As a result, take care with the names used. For example, if the font name arial is used on the left-hand side (the original font), all layout objects with fonts such as arial or Arial are mapped to the aliased font.

Refer to Section 8.4, "Font Aliasing" for more information.

PPD and AFM files (UNIX only)

PostScript Printer Definition (PPD) files and Adobe Font Metrics (AFM) files are supplied by Adobe and by printer vendors. The PPD files contain information about the printer, and the AFM files contain metrics information of the fonts. Along with other parameters, these files are read for the information about the available fonts for the printer, which Oracle Reports will use. For all the fonts listed in the PPD file, Oracle Reports searches for the corresponding AFM file according to the font name and loads all of the fonts for which there is an available AFM.

From the fonts perspective, you should modify these files when you add new fonts for the printer and want these changes reflected in Oracle Reports.

Example:

*% Font Information ===================== 
*DefaultFont: Error 
*Font AvantGarde-Demi: Standard "(001.001)" Standard 
*Font AvantGarde-DemiOblique: Standard "(001.001)" Standard 
*Font Courier: Standard "(001.004)" Standard 
*Font Courier-Bold: Standard "(001.004)" Standard 

The AFM files contain information such as the font attributes (style, weight, width, encoding scheme), whether the font is fixed pitch or proportional, and how large each character is.

After looking for the font names from the PPD files, Oracle Reports searches for the AFM files with the same name as the font according to the search criteria described in Section 8.3.1, "File Searching". For example, if Oracle Reports finds AvantGarde-Demi: Standard in the PPD file, it will search for an AFM file named AvantGarde-Demi in the AFM directory.

Please note that the AFM files are not font files; they are metrics files that provide Oracle Reports with information on how to properly format the character for the printer. If you have an AFM file, but the font is not available on the printer, then Oracle Reports cannot generate the font.

Since the AFM files are NOT fonts themselves, if you wish to have more PostScript printer fonts available, you must do the following:

  1. Purchase the fonts and have them installed on the printer.

  2. Obtain revised AFM and PPD files from the font/printer vendor.

  3. Obtain matching X Server display fonts (if necessary).

HPD and TFM files (UNIX only)

PCL (Hewlett-Packard Printer Control Language) uses HPD (Hewlett-Packard Document) and TFM (TEX Font Metrics) files. The HPD files contain a list of fonts available for the printer and each font refers to a TFM file. The HPD file is an ASCII file, which can be edited, but the TFM file is a binary file, which cannot be edited. Even though TFM files are binary and uneditable, you can perform string operations to read some specific keywords from these files. Oracle Reports recognizes the font name that is in the TFM files and not the one specified in the HPD file. The font vendor should provide TFM files and new fonts should be added to the HPD file for your printer when installed.

Tk2Motif.rgb (UNIX only)

This file contains resource settings for all Oracle Motif tools based on Oracle Toolkit. For font specific resource settings, Tk2Motif*fontMapCs and Tk2Motif*fontList are used.

Tk2Motif*fontMapCs governs the base character set of fonts that the application will use, which are on the X-window display.

If Tk2Motif*fontMapCs: iso8859-2=EE8ISO8859P2, then NLS_LANG should be set to EE8ISO8859P2 and only fonts with encoding as iso8859-2 will be used for the application. If the system does not find any fonts with the above encoding, it will fail with a REP-3000 error.

Tk2Motif*fontList specifies the default system font that will be used by the application. The following means that the Helvetica font with medium weight and normal width of size 12 will be used:

Tk2Motif*fontList: -*-helvetica-medium-r-normal-*-120*

The syntax for the above entries can be found in Tk2Motif.rgb (ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin) file as comments.

8.3.1 File Searching

The criteria for searching files is dependent upon the type of file and the various environment variables defined.

Table 8-4 File Information

File Name Type Description

uiprint.txt

UNKNOWN

Printer configuration file

uifont.ali

FONTALIAS

Font aliasing file

PPD

PPD

PostScript printer definition file

AFM

AFM

Adobe font metrics file

HPD

HPD

HP glue file

TFM

TFM

HP glue file


Oracle Reports will first look for the variable in TK_type, then in the ORACLE_type, and then in the global directory. For instance, the PPD files are searched for in the directory specified by TK_PPD, then in ORACLE_PPD, and then in ORACLE_HOME/guicommon/tk/admin/PPD, and then in $ORACLE_INSTANCE/config/FRComponent/frcommon/guicommon/tk/admin/PPD.

For example, looking for uiprint.txt, Oracle Reports will first look at the environment variable TK_UNKNOWN, then look at ORACLE_UNKNOWN, and then in the default directory.