Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
CAN CSA Z243.182-89 (2004) is the Canadian adoption of the international computer graphics standard ISO 7942-2:1987, which defines the graphical kernel system (GKS) text handling facilities. This standard specifies the functional interface for generating, transforming, and representing text in a device-independent graphics environment. It is part of the GKS family of standards (Z243.180 – Z243.185) that provides a unified framework for 2D graphics applications.
The standard applies to any system that implements GKS as defined by the base standard (CAN CSA Z243.180-89). Its primary focus is the text primitive — the most complex output primitive in GKS due to its dependence on character sets, fonts, and geometric transformations. The scope includes:
Originally published in 1989 and reaffirmed without technical changes in 2004, this standard remains a reference for legacy GKS implementations and for understanding the evolution of text handling in computer graphics APIs such as OpenGL and Vulkans high-level counterparts.
CAN CSA Z243.182-89 establishes a precise model for text output within the GKS pipeline. The core element is the text primitive, which is defined by a single character string, a position in world coordinates, and a set of attributes that control appearance and layout. The standard distinguishes between geometric text (subject to affine transformations) and non-geometric text (primitives that ignore transformations), but focuses primarily on the geometric variant.
The following table summarises the principal text attributes specified by the standard:
| Attribute | Type | Description |
|---|---|---|
| Text path | Enumeration | Direction of text expansion: right, left, up, or down (relative to the character base vector) |
| Text alignment | Horizontal + Vertical | Positioning of the string reference point relative to the text extent (e.g., centre, top, base) |
| Character height | Real (world coordinates) | Nominal height of the character body (usually the cap height); defines base vector length |
| Character expansion factor | Real | Ratio of width to height; adjusts proportional spacing |
| Character spacing | Real | Additional inter-character space expressed as a fraction of the character height |
| Text font and precision | Integer + Precision | Font index (implementation-specific) and a precision level (string, character, or stroke) |
Each text string is treated as a single entity for transformation. The character base vector defines the local coordinate system relative to the text position. All text attributes, including height and expansion, are interpreted in this local space. Transformations are applied through the GKS normalization transformation pipeline, so text defined in world coordinates can be rotated, scaled, and translated uniformly.
Text clipping follows the GKS clip rectangle mechanism. The standard distinguishes between three precision levels that control how tightly the clipping rectangle is enforced:
The standard mandates a inquire text extent function that returns the bounding rectangle in world coordinates. This allows applications to perform precise layout calculations (e.g., centering, word wrapping, line spacing). The extent takes into account all attribute settings and the concatenated transformation, but does not include the effect of clipping.
CAN CSA Z243.182-89 is designed as a functional description, not a language binding. However, it specifies the abstract interfaces that each binding must expose. The standard was created alongside the Fortran binding (CAN CSA Z243.183-89) and later influenced bindings for C and Pascal. Key implementation aspects include:
The 2004 reaffirmation by the Standards Council of Canada confirmed that no technical changes were deemed necessary for this standard at that time. It remains a valid Canadian National Standard, though it has been largely superseded by more modern graphics APIs and the Computer Graphics Metafile (CGM) standards.
Compliance with CAN CSA Z243.182-89 requires that an implementation:
© 2026 – This technical article is prepared for informational purposes and does not replace the official CSA standard document.