Contents of the SOFTAD.DOC file
................................................Aug 16 1987
MS-Word Font Download Utlity for HP-LaserJet Printers
by Denis DeLaRoca
This is an updated version of a Font Donwload Utility for
MS-Word and HP-LaserJet printers. Originally posted on the
HP Special Interest Group on Compuserve, this is a reworking
of the original program and does offer added flexibility in
configuration and capabilities over the equivalent offering
To Joe Barnhart for his encouragement and help in getting the
serial I/O support developed.
Files on Disk:
SOFTAD.DOC - This file
SOFTAD.EXE - Font Download Program
SOFTAD.CFG - Sample Configuration File
Download Program: SOFTAD.EXE
This is a generic replacement for the Miscrosoft supplied Font
Download program for MS Word 3.x. Unlike the Microsoft version,
it may be configured to user needs and offers increased capability
in the management of font file names. The program is driven by
a configuration, CFG, file that specifies the font configuration,
and other parameters, of the PRD file to which the download program
is attached. To "attach" the download program to a PRD file that
uses downloadable make the name of the download program, and that
of its configuration file, the same as that of the PRD file, e.g.
for a PRD file named HPTIMES.PRD, one must have HPTIMES.EXE and
HPTIMES.CFG. The EXE file is a rename from the supplied SOFTAD.EXE,
while the CFG file is an ASCII file that one creates. A sample
CFG file follows:
Sample CFG file
c:\hpfonts Font File Directory
yes Erase Previous Font Download
yes Make Downloaded Fonts Permanent
128 Initial Download Sequence no
8,hv0#0?pn.r8p,ribi Helvetica Font - Roman-8 set
9,hv0#0?pn.usp,ribi Helvetica Font - USASCII set
24,tr0#0?pn.r8p,ribi Times Roman Font - Roman-8 set
25,tr0#0?pn.usp,ribi Times Roman Font - USASCII set
| | |
| | |..... Font Styles, specify the font style
| | character codes used to specify normal,
| | italic, bold and bold-italic faces. These
| | character codes are the fillers for the
| | font file spec wild character "?".
| |.................. Font File Specification, where # and ?
| are wild characters for font size and
| font style. The wild char # specifies
| the unit's position of the font size.
| It may in turn be suffixed or prefixed
| by "0" or "%" chars. The "0" chars are
| fixed place holders, they keep their
| place regardless of the significance of
| the digits they contain. The "%" chars
| are variable place holders, they become
| null if the digits they contain are not
|..................... Font-id, is the number assigned to the
font by the F# directive in the PRD
file. Font-id numbers range from 0 to
63, their mappings to Font names are
specified in the MS-Word Printer Manual.
This configuration allows support for up to 64 Font families, each
font family is described by a Font Number, assigned in the PRD file,
and a Font File Specification, with wild characters allowing for an
economical description of a whole range of sizes and styles.
The sample CFG file above suffices for the usual cases, however
certain features of the wild characters require further explana-
Font sizes are specified by means of the wild characters "#", "%"
and "0". Within a file spec, only a single "#" is expected, it
specifies the unit's position of the font size. Leading digits,
and/or a fraction, are specified with "0" and "%" wild characters.
Use of a "0" indicates an obligatory placeholder regardless of
significance, while use of "%" indicates an optional placeholder
shrinking to null in the absence of any significance. For example,
the Font File Spec:
can match all the following font files,
nouv8r.sfp nouveau font, 8pt, regular
nouv8b.sfp " " " bold
nouv16r.sfp " " 16pt, regular
nouv16b.sfp " " 16pt, bold
Similarly, a few fonts come in fractional sizes, though only fractions
of 0.5 are currently allowed. One could describe such a font as:
which can match fonts such as,
cr0085rx.sfp courier font, 8.5pt, regular
cr1205tx.sfp " " 120.5pt, bold-italic
Note that the wild character "%" is only recognized for leading digits
and not for the fractional digit.
Font styles, on the other hand, are substituted in by means of the "?"
wild character. Which single character codes are actually used for
the face styles regular, italic, bold and bold italic are specified
by a four character sequence following the Font File Spec. This simple
mechanism does for the limited substitution of one face style for
another, one may substitute italic for bold-italic in the absence of
the latter, such is the case with the sample CFG file above. For the
binding rules governing this limited font substitution see the User's
and/or Technical Reference manuals for the HP LaserJet printers.
o Printer connections of type Parallel and Serial are both currently
supported by the program, though only the Parallel Port Support has
been successfully tested. Serial I/O does check for XON/XOFF and
CTS flow control. The printer must be hooked correctly to the
serial port, in turn the serial port is assumed to be preinitia-
lized with the proper parameters prior to invoking the download
o The program is written in Microsoft C v4.0, as such it is sensitive
to the Initialization setup performed by MS-C's runtime. In parti-
cular, it is dependent on the C runtime to provide it with the pgm's
current name and path, this in turn determines how the CFG file is
located. I believe that this only works successfully under DOS 3.x,
but not under DOS 2.x.
o Beyond this the program expects to be running on a system BIOS
compatible with IBM. It uses BIOS services for serial and parallel
o Somehow MS-Word 3.10, the version I am running with, seems unable
to correctly send to the Donwload Utility font parameter descriptors
for fonts of size 16pt!!! At this point I don't know whether I
have done something bad on my PRD file or else I am dealing with
a very peculiar Word bug. Please report similar problems.
o In a sequence of Font Downloads the condition of being unable to
locate a particular font file is not treated fatally, e.g. Word
proceeds and prints with whatever fonts, default or not, more
closely match the missing font. If this turns out to be an
annoyance then such condition could be made to generate an
abort of the print job. Please report any comments on this.
I am currently working on a PRD file maker, such a utility will take
as input a CFG file, as described above, and build a corresponding
PRD file! Though, it is quite conceivable that all of this may
quickly become obsolete with the impending release of MS Word 2.0.
Please report any problems and/or suggestions to:
-- Denis DeLaRoca [72406,1717]