Browse Prior Art Database

Optimize Horizontal Accuracy When Processing Typographic Proportional Fonts

IP.com Disclosure Number: IPCOM000120837D
Original Publication Date: 1991-Jun-01
Included in the Prior Art Database: 2005-Apr-02
Document File: 3 page(s) / 111K

Publishing Venue

IBM

Related People

Carter, KE: AUTHOR [+2]

Abstract

To support typographic fonts with varying horizontal index units, DisplayWrite* 5/2 required a method to optimally convert printer units to internal processing units.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Optimize Horizontal Accuracy When Processing Typographic Proportional
Fonts

      To support typographic fonts with varying horizontal
index units, DisplayWrite* 5/2 required a method to optimally convert
printer units to internal processing units.

      A word processor, such as DisplayWrite 5/2, must understand the
escapement value for each character and symbol in a font to correctly
determine how many characters and symbols fit between a left and
right margin.  An escapement value defines how much horizontal space
a character or symbol requires.

      In order to support typographic proportional fonts, DW5/2
introduced the concept of a Font Width Table (FWT) which contains the
character and symbols escapements in printer units for each printer
font.

      A problem arises due to DisplayWrite internally using
horizontal units of 1/1440 inch to measure horizontal distance.
Since most OEM printer typographic fonts support horizontal units
that differ from 1/1440 inch, a conversion must be done by
DisplayWrite to accurately position the characters.  However in many
cases, the units for a printer cannot be converted to whole 1440ths.
For example, the Hewlett-Packard (HP) LaserJet** Series supports
fonts with units of 1/300 inch.

      In the FWT, the character and symbol escapements must be stored
in printer units to preserve accuracy.  In order to solve the
problem, a conversion ratio was added to each FWT that allows
DisplayWrite to convert an escapement from printer units to
DisplayWrite units.  Additional processing was implemented in
DisplayWrite 5/2 to manage the truncation accumulation in a line so
that each line ending is horizontally accurate to within 0.99/1440
inch.  This implementation handles truncation and accumulation when
processing characters, symbols, tabs, and backspaces.

      Example to illustrate implementation on the HP LaserJet Series
printers:
FWT DEFINITION:
   - The conversion ratio in the FWT is defined to be: (DW internal
units) / (output device units) For the HP LaserJet, the conversion
ratio is 1440/300 = 24/5.
   - The character and symbol escapements are stored in printer
units. For example, a character which is defined as 7 printer units
on a HP LaserJet printer would have an escapement of 7 defined in the
FWT.

      DisplayWrite 5/2 PROCESSING FOR TRUNCATION ACCUMULATION:
For each pass made to print a line, the accumulated escapement
remainder is initialized to 0.  The steps listed below are repeated
until a single pass is completed for a printed line.  In order to
illustrate...