KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q311271: Font Selection in a PDT

Article: Q311271
Product(s): Microsoft SNA Server
Version(s): 3.0,4.0
Operating System(s): 
Keyword(s): kbDSupport kbsna300sp1 kbsna300sp2 kbsna300sp3 kbsna300sp4 sna4 kbsna400sp1 kbsna400sp2
Last Modified: 07-NOV-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft SNA Server, versions 3.0, 4.0 
- Microsoft Host Integration Server 2000 
-------------------------------------------------------------------------------

SUMMARY
=======

In some circumstances it may be necessary to use a Printer Definition File
compiled to a Printer Definition Table (PDT) to control print output. Setting
and defining fonts can be problematic in that changing the font characteristics
in a PDT may not be reflected in the printed output as expected. This is due to
the printer ignoring commands that are inappropriate in the current
circumstances. This is by design. It is important, therefore, to understand how
fonts are defined.

In a printer control language (PCL) environment, fonts have a distinct set of
parameters that must be set in a sequential manner. A font is described by
symbol set, spacing, height, pitch, style, stroke weight, typeface family, and
orientation. If, for example, a particular font is chosen whose characteristics
do not fit in the default symbol set, then the default font or another font may
be used. To ensure that the expected font will be used it is best practice to
fully qualify or describe the font.

MORE INFORMATION
================

To fully describe a font the characteristics must be defined in the previously
mentioned order: symbol set, spacing, and so on. Code strings that have
identical leading characters may use a continuation character instead of a
termination character and be added together. The continuation character is
usually the value of the lower case letter with the termination character being
the value of the upper case letter.

As an example, to send a font command sequence to the printer to set the
following

  Symbol Set = ASCII
  Spacing = fixed
  Pitch = 10 CPI
  Height = 8.5
  Style = Upright
  Stroke Weight = Medium
  Typeface = Line Printer

these codes would be used:

+----------------------------------+
| ESC(U     | 1B 28 55             | 
+----------------------------------+
| ESC(sP    | 1B 28 73 50          | 
+----------------------------------+
| ESC(s10H  | 1B 28 73 31 30 48    | 
+----------------------------------+
| ESC(s8.5V | 1B 28 73 38 2E 35 56 | 
+----------------------------------+
| ESC(sS    | 1B 28 73 53          | 
+----------------------------------+
| ESC(sB    | 1B 28 73 42          | 
+----------------------------------+
| ESC(sT    | 1B 28 73 54          | 
+----------------------------------+
|           |                      | 
+----------------------------------+

Note that most of the sequences start with an "ESC(s" or "1B 28 73". The entire
string can be compressed by concatenating the codes leading with "28 73". The
termination characters must also be converted to their respective lowercase
values with the exception of the final value.

The resultant string is:

  ESC(U ESC(sp10h8.5vsbT

  -or-

  1B 28 55 1B 28 73 70 31 30 68 38 2E 35 76 73 62 54

This is the code that would be placed in a macro and the macro would be referred
to in the Start_Job line. The macros in the Start_Job line will be sent to the
printer when a job is started. Frequently it is easier to create a set of macros
and then call individual macros, bearing in mind that the macros must be called
in the specified order, and even then unexpected results may occur.

More detailed information on creating Printer Definition Files is available in
the SNA Print Service white paper, which is available at the following Microsoft
Web site:

  http://www.microsoft.com/hiserver/evaluation/previousversions/snatechinfo.asp

REFERENCES
==========

Hewlett Packard PCL5 Comparison Guide

Hewlett Packard PCL5 Technical Reference Manual

Additional query words:

======================================================================
Keywords          : kbDSupport kbsna300sp1 kbsna300sp2 kbsna300sp3 kbsna300sp4 sna4 kbsna400sp1 kbsna400sp2 kbsna400sp3 _IK954 
Technology        : kbAudDeveloper kbSNAServSearch kbHostIntegServ2000 kbSNAServ300 kbSNAServ400
Version           : :3.0,4.0
Issue type        : kbhowto kbinfo

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.