ChartDirector 5.1 (Java Edition)

Font Specification


Font Name

In ChartDirector for Java, a font can be specified using the format:

{font name} [Bold] [Italic]

where "{font name}" is a Java compatible font name (that is, the font name that is used in java.awt.Font). The "[Bold]" and "[Italic]" are optional. The followings are some examples:

Arial Bold
Times New Roman
Courier Bold Italic
SansSerif

When using the above format, you may use all fonts that are known to the Java system.

ChartDirector also supports using true-type fonts that are unknown to the Java system. This is useful if you are using private fonts in your application. The method is by specifying the font using the font file name. ChartDirector will search the font file from the class path, and also will search using the java library path (java.library.path).

For example, if you are using ChartDirector on a web server, you can put the fonts files in the WEB-INF/classes inside your web application directory. In this way, you can use your own fonts without relying on the fonts provided by the web server.

Note: Private font files support require Java 1.3 or above.

Note: Using Java fonts or private font files requires your Java font system be functional (java.awt.Font is functional).

Java on Microsoft Windows, Mac OS X, and Java systems that interacts with a GUI (such as standalone Java programs and Java Applets) always have functional font systems. However, some server side Java systems, such as the Java for running JSP or servlets on Linux/UNIX servers, may not have a working font system.

It is because many Java systems on Linux/UNIX rely on X Window services to support fonts. On the other hand, many servers do not need a GUI and may not have X Window. In these cases, any attempt to use the Java font system (eg. simply create a java.awt.Font object) will cause Java to throw an Error.

To solve this problem, ChartDirector comes with its own internal font system. If the Java font system is not functional, ChartDirector will automatically use its internal font system, so the charts will still work. The internal font system only have 3 fonts - generic sans serif (Arial like font), generic serif (Times New Roman like font) and generic monospace (Courier like font). All of them have bold, italic and bold-italic styles.

If you are encounter the above problem but still want to use the Java font system, you may start Java in "headless" mode (requires Java 1.4 or above). Please refer to the link below on how to start Java in "headless" mode.

http://java.sun.com/j2se/1.4.2/docs/guide/awt/AWTChanges.html#headless

If you are using Java 1.3 or Java 1.2 and you want to use the Java font system, you may need to install a working GUI subsystem on your computer.

Font List

Instead of specifying a single font file as the font name, you may specify a list of font files as the font name, separated by semi-colons. This is useful when using international characters that are only available in some fonts.

For example, if you would like to use the Arial font for western characters, and the MingLiu font for Chinese characters (since the Arial font does not have Chinese characters), you may specify the font name as "Arial;MingLiu". In this case, ChartDirector will try the Arial font first. If it cannot find a certain character there, it will try the MingLiu font.

Indirect Font Names

ChartDirector supports several special keywords for specifying the font name indirectly. When these keywords are used as font names, ChartDirector will look up the actual font names from a font table. The keywords are as follows:

KeywordsDescription
"normal"This default normal font, which is the first font in the font table. This is initially mapped to "Arial".
"bold"The default bold font, which is the second font in the font table. This is initially mapped to "Arial Bold".
"italic"The default italic font, which is the third font in the font table. This is initially mapped to "Arial Italic".
"boldItalic"The default bold-italic font, which is the fourth font in the font table. This is initially mapped to "Arial Bold Italic" .
"fontN"The (N + 1)th font in the font table (the first font is "font0").

The font table can be modified using BaseChart.setFontTable or DrawArea.setFontTable.

The advantage of using indirect font names is that you can change the fonts fonts in your charts in one place.

Font Index

The font index is ignored in ChartDirector for Java. It is solely for compatibility with other ChartDirector editions.

Font Size

The font size decides how big a font will appear in the image. The font size is expressed in a font unit called points. This is the same unit used in common word processors.

Instead of specifying font size, some ChartDirector API (eg. TextBox.setFontSize) allow you to specify font height and font width separately. In ChartDirector for Java, only font height is used as the font size, and font width is ignored.

Font Color

This is the color to draw the font. (See Color Specification on how colors are represented in ChartDirector.)

Font Angle

This is the angle in degrees by which the font should be rotated anti-clockwise.

Vertical Layout

By default, text are laid out horizontally, with characters being drawn from left to right.

ChartDirector also supports vertical layout, with characters being drawn from top to bottom. For example, you may use BaseChart.addText to add text that are laid out vertically. Vertical layout is common for oriental languages such as Chinese, Japanese and Korean.