OpenType : Java Glossary



A joint project of Microsoft and Adobe to provide cross-platform downloadable fonts. They work on Window, Mac, Sun etc. OpenType fonts usually have the extension *.otf. It is supported in:

Inside it might be either TrueType of PostScript. I don’t yet know if otf support implies support for both variants.

Have a look at the Warnock Pro Opticals OpenType font. This is a work of art. Look at the PDFs (Portable Document Formats) to get a better feel for what they will look like typeset. I feel awed to look at it, much the way some people tell me they feel awe on seeing Michaelangelo’s David. The aesthetic skill involved is so infinitely greater than ever I could even conceive of achieving.

OpenType is used for video titling in MP4 video. Adobe adds the suffix pro to all its OpenType fonts. OpenType fonts have a 16-bit encoding vector allowing up to 64,535 glyphs. Some fonts even support 32-bit code points. OpenType fonts have hints for more precise rendering at small point sizes.

Some OpenType fonts include four optical size variations: caption, regular, subhead and display. Called Opticals, these shape variations have been optimised for use at specific point sizes. Although the exact intended sizes vary by family, the general size ranges include: caption (6-8 point), regular (9-13 point), subhead (14-24 point) and display (25-72 point).

One character may correspond to several glyphs; the lowercase a, a small cap a and an alternate swash lowercase a are all the same character, but they are three separate glyphs. To the best of my knowledge, Java does not support these variants because Unicode doesn’t.

There are multiple mappings from code point to glyph to handle a variety of encodings such as Symbol, Unicode, ShiftJIS, PRC (People’s Republic of China), Big5, Wansung, Johab and UCS-4. The most important one for Java is Unicode.

Some OpenType fonts have ligatures and caret positioning for ligatures. The OpenType people call this glyph substitution. Java has no support for these.

Opentype fonts provide for both 16-bit Unicode and 32-bit UCS-4 glyph encoding tables. I believe there is a limit of 65,535 glyphs.

Java Font Support

Font Support Under Java
Font Type Extension Java version 1.6Windows Java version 1.6Linux Java version 1.6Fedora Old Java Windows Notes
(TrueType internally)
otf High-end fonts for Windows.
(PostScript Adobe CCF (Composite Container Format) internally)
otf High end PostScript fonts. You can detect these by the file signature { 0x4F, 0x54, 0x54, 0x4F } — the string "OTTO", at the head of the file.
TrueType ttf Most common font for Windows.
PostScript pfm/pfb Older style PS fonts. Supported by PostScript printer hardware. Windows itself supports PS fonts, at least with Adobe Type Manager, but Java ignores them.
Bitmap fon Used primarily for small font sizes. Come only a small set of point sizes.
Vector outline fon These are obsolete. Used by Windows without Java.
8-bit fonts any Java needs 16-bit fonts. It won’t use 8-bit fonts directly. Old or specialty 8-bit fonts can be used by stitching them together with a Unicode mapping, a daunting task.
SVG (Scalable Vector Graphics)fonts svg Vector fonts used in Linux. They tend to be free. Java does not out-the-box support them. Opera 10 beta supports them and allows them to be downloaded with a web page so you can use fonts the viewer does not necessarily already have installed.

AWT (Advanced Windowing Toolkit) will only support the five basic logical fonts, unless you paint on a Canvas, however, oddly under Fedora and AWT you can use up to 82 of your installed fonts. If you try to use more, you get an ArrayIndexOutOfBoundsException. The above information may be incorrect or may become incorrect at any time. Feel free to try any fonts with Java on any platform. The worst that could happen is they won’t work.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number