03/15/94



        Notes on how to use the Type 1 Installer under Win32.
        -----------------------------------------------------




INTRODUCTION

The Type 1 Installer exists in many different forms. This text
describes the use of it as a Win32 DLL. The DLL acts as a compiler
that parses an Adobe type 1 font format file and a metrics file (PFB
+ PFM), and then produces a TrueType font file.

The DLL will interact with the event log and the registry, under
certain conditions. The registry is always queried at the start of
the conversion to verify if the copyright holder has agreed to have
their font converted. The event log is used if an error occurs and if
the "Log events" entry in the registry is not zero. The required
entries in the registry is described in "t1instal.ini". Use
regini.exe to load these settings.




USING THE DLL

There are two functions in the interface of the DLL. Use
"t1instal.h" to get the prototypes for these functions, and to get
the definitions of the values they return.


IsType1A
    This function determines if a file is a valid Printer Font
    Metrics files (pfm), and returns the face name of the font. This
    function will only return TRUE if there is a valid PFB file in
    the same directory or in the parent directory.


ConvertTypefaceA
    This function takes the name of a PFM, a PFB and a TTF file as
    parameters, that are used in the conversion.

    This function will call a supplied callback function during the
    conversion. The caller may thus display messages to the user
    about the progress of the conversion. This function is called
    with an integer that indicates the rate of the progress
    (typically in the range 0-100), and a caller supplied argument.



BUILDING THE DLL

The DLL can be compiled with a number of features turned on or off.
Define or undefine the following symbols when compiling the code to
get the desired result:



name                    Usage
----                    -----
DOT                     Replaces the period character in the converted
                        font. Used to tag converted fonts such that
                        they can be distinguished from the original
                        fonts.

NOMSGBOX                Causes the DLL to use stdio to report errors.

NOCOPYRIGHTS            Disables the copyright checking.

SHOWCOPYRIGHT           This casues the converter to store the
                        encrypted copyright strings in the event log,
                        without converting the font. Put this string
                        in the appropriate place in the registry to
                        enable the conversion of fonts from the
                        fonts vendor of that font.

RELATIVESTEMS           Enables a hint conversion features. Must be
                        turned on.

SYMETRICS_REDUCTION     Enables a hint conversion feature. Should not
                        be turned on.

NOANSIWINMAC            Causes glyhs that are not part of the Windows
                        ANSI and MacIntosh character set to be
                        filterd out. Turn this on if the OS is not
                        supporting UNICODE, to get smaller fonts.


By default, only the RELATIVESTEMS should be defined.


SETTING UP THE REGISTRY

Remove the comments from the t1instal.ini file and use regini utility
to place new keys in registry for use.

regini t1instal.ini





---------------------------------------------------------------------- -------------------------------------------------
	The message logging mechanism in the Type 1 Installer.


Messages are recorded/displayed based on the severity of an error and based on the state of the "log events" key in the registry. There are three types of messages:
- Errors		: A problem that cased the conversion to abort.
- Warnings	: A non-fatal problem that the converter resolved.
- Information	: Information that may be useful to trace the execution of the
		conversion, such as the name of the font and the vendor.

If an error occurs then a pop-up is presented to the user with the appropriate message. Note that this will always happened, regardless of the "log events" key. These strings are defined in the string table in the dll's resource file (t1instal.rc).

The "log events" key is used for PSS and for debugging . It should not be used by the users. It should only be turned on when attempting to determine the cause of a failed conversion. This key causes all messages to be stored such that they are accessible by the Event Viewer. These strings are defined in the dll's message file (t1msg.mc). Note that warnings are being displayed in pop-up dialogs, in addition to errors, when "log events" is non zero.

The motivation for this approach is that PSS may need to be able to remotely resolve a problem that a customer has when converting a type 1 font. PSS will be able to do this by instructing the user to turn on the "log events" feature and get immediate feed-back when an error or a warning pops up a message. A computer that is connected to a network can be accessed directly through the Event Viewer by the PSS engineer.