home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-01 | 283.4 KB | 5,450 lines |
- %@1@%%@AB@%Microsoft Windows Device Development Kit - Printers and Fonts Kit%@AE@%%@EH@%%@NL@%
-
-
-
-
-
-
-
-
- ────────────────────────────────────────────────────────────────────────────%@NL@%
- %@AB@%Microsoft (R) Windows (tm) Device Development Kit - Printers and Fonts Kit%@AE@%%@NL@%
-
- %@AB@%development tools for providing Microsoft Windows device support
- %@AB@%VERSION 3.0%@AE@%
- ────────────────────────────────────────────────────────────────────────────%@NL@%
-
-
- for the MS-DOS (R) or PC-DOS Operating System%@NL@%
-
-
-
-
-
-
-
- Microsoft Corporation %@NL@%
-
- Information in this document is subject to change without notice and does
- not represent a commitment on the part of Microsoft Corporation. The
- software described in this document is furnished under a license agreement
- or nondisclosure agreement. The software may be used or copied only in
- accordance with the terms of the agreement. It is against the law to copy
- the software on any medium except as specifically allowed in the license or
- nondisclosure agreement. No part of this manual may be reproduced or
- transmitted in any form or by any means, electronic or mechanical, including
- photocopying and recording, for any purpose without the express written
- permission of Microsoft.
- U.S. Government Restricted Rights
-
-
- The SOFTWARE and documentation are provided with RESTRICTED RIGHTS. Use,
- duplication, or disclosure by the Government is subject to restrictions as
- set forth in subparagraph (c) (1) (ii) of the Rights in Technical Data and
- Computer Software clause at DFARS 252.227-7013 or subparagraphs (c) (1) and
- (2) of the Commercial Computer Software
- ─ Restricted Rights at 48 CFR 52.227-19, as applicable.
- Contractor/manufacturer is Microsoft Corporation/One Microsoft Way/Redmond,
- WA 98052-6399.%@NL@%
-
-
- (C) Copyright Microsoft Corporation, 1990. All rights reserved.
-
- Simultaneously published in the U.S. and Canada.%@NL@%
-
-
- Printed and bound in the United States of America.%@NL@%
-
-
- Microsoft, MS, MS-DOS, GW-BASIC, QuickC, CodeView, the
- Microsoft logo, and XENIX are registered trademarks and Windows is
- a trademark of Microsoft Corporation.%@NL@%
-
- Aldus and PageMaker are registered trademarks of Aldus
- Corporation.%@NL@%
-
- Apple, LaserWriter, and Macintosh are registered trademarks
- of Apple Computer, Inc.%@NL@%
-
- Hewlett-Packard, HP, LaserJet, and PCL are registered
- trademarks of Hewlett-Packard Company.%@NL@%
-
- IBM and PS/2 are registered trademarks of International
- Business Machines Corporation.%@NL@%
-
- Micrografx is a trademark of Micrografx, Inc.%@NL@%
-
- PostScript is a registered trademark and Adobe and Adobe
- Illustrator are trademarks of Adobe Systems, Inc.%@NL@%
-
- The Symbol fonts provided with Windows 3.0 are based
- on the CG Times font, a product of AGFA Compugraphic Division of Agfa
- Corporation.%@NL@%
-
- Document No. SY0329c-300-R00-1089%@NL@%
-
- %@NL@%
-
-
-
-
- %@1@%%@AB@%Table of Contents%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
-
-
- %@AB@%Introduction%@AE@%%@BO: 2d65@%
- Background%@BO: 3381@%
- Windows Font Requirements%@BO: 3ccf@%
- Bitmap Screen Fonts%@BO: 1ed1d@%
- Downloadable Fonts%@BO: 453f@%
- Printer Font Metrics Files%@BO: 4890@%
-
-
- %@AB@%PART I%@AE@%%@BO: 4baf@% %@AB@%Fonts%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
-
- %@AB@%Chapter 1%@AE@%%@BO: 4ded@% %@AB@%Screen Fonts for Windows%@AE@%
-
- 1.1%@BO: 511c@% The Aspect-Ratio Classes of Display Devices
- 1.2%@BO: 5457@% Translating Point Sizes into Line Sizes
- 1.3%@BO: 58f2@% Choosing the Correct Range of Line Sizes
- 1.3.1%@BO: 6053@% Greeking
- 1.3.2%@BO: 6178@% Proof Versus Draft (Doubling and Tripling) Quality
- 1.3.3%@BO: 6491@% Vector Font Substitution
- 1.3.4%@BO: 6604@% Down-sizing to Match Widths
- 1.4%@BO: 688f@% Recommended Screen Font Sizes
-
- %@AB@%Chapter 2%@AE@%%@BO: 741e@% %@AB@%Printer Font Metrics (PFM) Files%@AE@%
-
- 2.1%@BO: 7779@% Listing .PFM Files in WIN.INI
- 2.2%@BO: 9135@% Printer Font Install Directory File
- 2.3%@BO: 945b@% .PFM File Organization
- 2.3.1%@BO: 99d7@% PFM Header and Width Table
- 2.3.2%@BO: a140@% PFMEXTENSION Data Structure
- 2.3.3%@BO: b0e5@% EXTTEXTMETRIC Data Structure
- 2.3.4%@BO: d027@% Font Scaling: etmMasterHeight and etmMasterUnits
- 2.3.5%@BO: e431@% KERNPAIR Data Structure
- 2.3.6%@BO: ebe3@% KERNTRACK Data Structure
- 2.4%@BO: f466@% Printer Cartridge Metrics (PCM) Files
- 2.4.1%@BO: fbb2@% WIN.INI Additions
- 2.4.2%@BO: fe7f@% Cartridge Installation
- 2.4.3%@BO: 1040e@% FINSTALL.DIR Syntax
-
- %@AB@%Chapter 3%@AE@%%@BO: 10730@% %@AB@%The PFM Editor%@AE@%
-
- 3.1%@BO: 110c5@% The Main Window
- 3.2%@BO: 11d34@% The File Menu
- 3.3%@BO: 1242e@% The Metrics Menu
- 3.3.1%@BO: 1272b@% The Basic Metrics Dialog Box
- 3.3.2%@BO: 13706@% The Extended Metrics Dialog Box
- 3.3.3%@BO: 143cb@% The Effects Metrics Dialog Box
- 3.4%@BO: 147c0@% The Tables Menu
- 3.4.1%@BO: 14993@% The Width Table Dialog Box
- 3.4.2%@BO: 14e1c@% The Pair Kerning Table Dialog Box
- 3.4.3%@BO: 15332@% The Track Kerning Table Dialog Box
- 3.5%@BO: 155f5@% The Driver Menu
- 3.6%@BO: 161b5@% Creating .PCM Files
- 3.7%@BO: 16d76@% The PFM Editor Error Messages
-
- %@AB@%Chapter 4%@AE@%%@BO: 17f96@% %@AB@%.PFM Files for PostScript Printers%@AE@%
-
- 4.1%@BO: 18144@% Format of the PostScript .PFM File
- 4.2%@BO: 18af4@% EXTTEXTMETRIC Data Structure
- 4.3%@BO: 19187@% Driver-Specific Data Structure
-
- %@AB@%Chapter 5%@AE@%%@BO: 19495@% %@AB@%.PFM Files for PCL Printers%@AE@%
-
- 5.1%@BO: 19648@% Format of the PCL .PFM File
- 5.2%@BO: 19df8@% EXTTEXTMETRIC Data Structure
- 5.3%@BO: 1a1df@% Driver-Specific Data Structure
- 5.4%@BO: 1bb98@% Kerning Tables
- 5.5%@BO: 1bce9@% Scalable PCL Fonts
-
-
- %@AB@%PART II%@AE@%%@BO: 1cbf5@% %@AB@%The PCL Driver%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
-
- %@AB@%Chapter 6%@AE@%%@BO: 1d0b5@% %@AB@%Overview of the PCL Driver%@AE@%
-
-
- %@AB@%Chapter 7%@AE@%%@BO: 3381@% %@AB@%WIN.INI Flags%@AE@%
-
- 7.1%@BO: 3ccf@% Summary of Flags
- 7.2%@BO: 1ed1d@% Details on Flags
- 7.2.1%@BO: 453f@% Cartindex%@AB@%n%@AE@%
- 7.2.2%@BO: 4890@% Cartridgen
- 7.2.3%@BO: 1f3e1@% Copies
- 7.2.4%@BO: 1fad9@% Duplex
- 7.2.5%@BO: 1fe93@% <Filename>
- 7.2.6%@BO: 200d4@% FontSummary
- 7.2.7%@BO: 20a2a@% Fsvers
- 7.2.8%@BO: 20d8d@% MaxFontSummary
- 7.2.9%@BO: 211fb@% Numcart
- 7.2.10%@BO: 215f4@% Options
- 7.2.11%@BO: 2294e@% Orient
- 7.2.12%@BO: 22b22@% Paper
- 7.2.13%@BO: 22d90@% Prtcaps
- 7.2.14%@BO: 24081@% Prtindex
- 7.2.15%@BO: 2421a@% Prtresfac
- 7.2.16%@BO: 24432@% Sfdir
- 7.2.17%@BO: 24505@% Sfdlbat
- 7.2.18%@BO: 2477e@% Sfdlstyle
- 7.2.19%@BO: 24b75@% SoftFontn
- 7.2.20%@BO: 26009@% SoftFonts
- 7.2.21%@BO: 26096@% Tray
- 7.2.22%@BO: 26356@% White_text
-
- %@AB@%Chapter 8%@AE@%%@BO: 26c8e@% %@AB@%Permanent Soft Fonts%@AE@%
-
- 8.1%@BO: 26fe9@% Setting Up Fonts for Download
- 8.2%@BO: 2946b@% Tracking Permanent Fonts in the WIN.INI File
-
- %@AB@%Chapter 9%@AE@%%@BO: 2a826@% %@AB@%FINSTALL.DIR%@AE@%
-
- 9.1%@BO: 2af4d@% Logical Drive Definition
- 9.2%@BO: 2bc22@% Font Family Definition
- 9.3%@BO: 2ec42@% Installing Without the FINSTALL.DIR File
- 9.4%@BO: 2f0c4@% Sample FINSTALL.DIR File
-
- %@AB@%Chapter 10%@AE@%%@BO: 2fae0@% %@AB@%Developers' Tools%@AE@%
-
- 10.1%@BO: 2fc79@% Building an FINSTALL.DIR File
- 10.2%@BO: 3013c@% Adding Fonts
-
- %@AB@%Chapter 11%@AE@%%@BO: 30b6c@% %@AB@%.PFM Generator%@AE@%
-
- 11.1%@BO: 30eac@% Installer PFM Versus Vendor-Supplied PFM
- 11.2%@BO: 31186@% File Naming Scheme
- 11.3%@BO: 3164a@% Regenerating .PFM Files
- 11.4%@BO: 322a1@% PFM Data From Font Data
- 11.4.1%@BO: 323fe@% PFM Header
- 11.4.2%@BO: 33a19@% EXTTEXTMETRIC Data Structure
- 11.4.3%@BO: 3470f@% Device-Specific Data Structure
-
- %@AB@%Chapter 12%@AE@%%@BO: 34bc7@% %@AB@%Installer Scenarios%@AE@%
-
- 12.1%@BO: 34eb6@% Selecting Printer Fonts
- 12.2%@BO: 35c64@% Selecting Screen Fonts
- 12.3%@BO: 36c2d@% Recovering Soft Fonts From a WIN.INI Change
- 12.4%@BO: 37726@% A Quick Method for Moving Fonts
- 12.5%@BO: 388c5@% Building a Floppy Disk Set of Fonts
- 12.6%@BO: 39e19@% Setting Up Fonts on a Network
- 12.7%@BO: 3b331@% Setting Up .PFM Files for Resident and Cartridge Fonts
-
-
- %@AB@%PART III%@AE@%%@BO: 3cbcf@% %@AB@%The PostScript Driver%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
-
- %@AB@%Chapter 13%@AE@%%@BO: 3cff1@% %@AB@%Overview of the PostScript Driver%@AE@%
-
-
- %@AB@%Chapter 14%@AE@%%@BO: 3d822@% %@AB@%New Features%@AE@%
-
- 14.1%@BO: 3d9d3@% Color
- 14.2%@BO: 3dd76@% Device-Independent Bitmaps
- 14.3%@BO: 3e0c1@% External Printer and Printer Font Metrics Support
- 14.4%@BO: 3e406@% PostScript Header Support
- 14.5%@BO: 3e756@% The Error Handler
- 14.6%@BO: 3eab5@% GDI StretchBlt() Support
- 14.7%@BO: 3ee27@% Device Initialization
- 14.8%@BO: 3f03e@% Rotated Text
- 14.9%@BO: 3f1ab@% EPS Printing
-
- %@AB@%Chapter 15%@AE@%%@BO: 3f586@% %@AB@%Escapes%@AE@%
-
-
- %@AB@%Chapter 16%@AE@%%@BO: 3fb17@% %@AB@%WIN.INI Settings%@AE@%
-
- 16.1%@BO: 3fc54@% Global Initialization Section
- 16.2%@BO: 3fef3@% Per-Port Initialization Section
- 16.3%@BO: 402a8@% Use of Soft Fonts
- 16.3.1%@BO: 4075e@% Adobe Soft Font Format (.AGB)
- 16.3.2%@BO: 40a09@% Non-Adobe Soft Font Format
-
- %@AB@%Chapter 17%@AE@%%@BO: 40b0f@% %@AB@%External Printer Descriptions Support%@AE@%
-
- 17.1%@BO: 412df@% Tools Provided
- 17.2%@BO: 41998@% Building an External Printer Distribution Disk
- 17.3%@BO: 42235@% The MKPRN Compiler
- 17.4%@BO: 4258e@% The .PPD File Format
- 17.5%@BO: 42845@% Keywords and Extensions
- 17.6%@BO: 4540f@% Running the MKPRN Compiler
- 17.7%@BO: 45a7a@% Installing the .WPD File
- 17.8%@BO: 462c1@% Limitations
-
- %@AB@%Chapter 18%@AE@%%@BO: 46528@% %@AB@%PostScript Printer Communications%@AE@%
-
-
-
- %@CR:C6A-Intro @%%@1@%%@AB@%Introduction%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- The %@AI@%Microsoft%@AE@%(R) %@AI@%Windows%@AE@%(tm) %@AI@%Printers and Fonts Kit%@AE@% provides documentation
- for third-party developers working on printer and screen fonts for use with
- Windows applications on the PC. Specific information is provided on how to
- ma ke fonts compatible with the Microsoft Windows environment. The %@AI@%Microsoft
- %@AI@%Windows Printers and Fonts Kit%@AE@% is intended for use by both hardware and
- software engineers and is divided into the following three parts: %@NL@%
-
-
- ■ Part 1, "Fonts," which contains information on generating standard
- Windows .PFM and .PCM files plus details on .PFM files for
- PostScript(R) and PCL(R) printers and .PCM files for PCL printers. It
- also discusses screen fonts for Windows.%@NL@%
-
- ■ Part 2, "The PCL Driver," which explains version 3.3 of the Windows
- PCL/HP(R) LaserJet(R) printer driver.%@NL@%
-
- ■ Part 3, "The PostScript Driver," which explains version 3.3 of the
- Windows PostScript printer driver.%@NL@%
-
-
- If you have questions regarding information in this document, please contact
- Microsoft Product Support Services. For additional information on
- miscellaneous device-specific topics, as well as information that became
- available after this document went to press, see the README.TXT file on the
- last disk of the %@AI@%Microsoft Wind ows Device Development%@AE@% Kit set of disks. %@NL@%
-
-
- %@2@%%@CR:C6A00070001 @%%@AB@%Background%@AE@%%@EH@%%@NL@%
-
- Laser printer output, which features a rich variety of fonts, has made
- today's personal computer users more aware of typography and quality output.
- Dot-matrix printer output, once considered acceptable for final copy, is now
- regarded as draft quality. Daisywheel printers, which use typewriter-like
- fonts, are also less acceptable. And new font offerings, such as those of
- the Apple(R) LaserWriter(R) Plus, HP LaserJet III, and the IBM(R) Personal
- Pageprinter, promise to continue the trend toward typographic-quality
- output. %@NL@%
-
- The Microsoft Windows and OS/2 Presentation Manager operating environments
- are becoming the standard graphics environment for PC-compatible computers,
- particularly in the areas of WYSIWYG word processing, desktop publishing,
- and marketing presentations. %@NL@%
-
- Print devices and device fonts that adhere to the Windows standard will be
- automatically supported by Windows application software. The needs of many
- applications can be addressed by a single investment in a Windows device
- driver and a set of matching WYSIWYG screen fonts. %@NL@%
-
- A WYSIWYG screen representation of the document removes the limitations
- inherent in old-style composition packages, making typographic-quality
- output possible by the non-typographer. WYSIWYG capabilities were once
- available only to users of expensive, dedicated systems. Now, however, they
- are becoming possible, and even expected, on most mass-market personal
- computers. %@NL@%
-
- The shift from dedicated to mass-market personal computers has created
- opportunities for people, other than printer manufacturers, to provide the
- market with WYSIWYG screen fonts. The key is the development, acquisition,
- or licensing of efficient and reliable font-generation technology. With such
- technology, a retail font supplier could generate both printer and screen
- fonts in a wide variety of sizes quickly and inexpensively. Third parties
- who wish to provide screen fonts to match a particular printer's fonts
- should work closely with the printer manufacturer to ensure screen and
- printer font fidelity. %@NL@%
-
- Font distributors who can provide both printer and matching screen fonts in
- the %@AI@%same%@AE@% retail package will be in an advantageous position in a marketplace
- where the majority of font suppliers provide only printer fonts. %@NL@%
-
-
- %@2@%%@CR:C6A00070002 @%%@AB@%Windows Font Requirements%@AE@%%@EH@%%@NL@%
-
- Regardless of how the vendor distributes fonts, the Windows environment must
- ultimately receive the following items for each font. %@NL@%
-
- For downloadable fonts: %@NL@%
-
-
- ■ An appropriate aspect-ratio, bitmap, screen font file in Windows .FON
- file format usable by Windows GDI%@NL@%
-
- ■ The printer download file in printer-specific format%@NL@%
-
- ■ A printer font metrics file in Windows .PFM file format usable by the
- printer's Windows printer driver%@NL@%
-
-
- For cartridges: %@NL@%
-
-
- ■ The font .FON file%@NL@%
-
- ■ A printer cartridge metrics (.PCM) file, containing .PFM file
- definitions for each font, that can be used by both the PCL/HP
- LaserJet and HP LaserJet III printer drivers.%@NL@%
-
- ■ A font cartridge%@NL@%
-
-
- You must update the Windows initialization file, WIN.INI, to make the screen
- driver and printer driver aware of these fonts. Ideally, the printer driver
- will contain an installer that will read the font vendor's floppy disks and
- install these files. In the absence of such a utility, clear directions on
- how to copy files to the user's hard disk and how to add entries to WIN.INI
- are important. However, we encourage font suppliers to provide their own
- user-friendly installer as a way to add value to their offering. (Windows
- Control Panel can install screen fonts; only downloadable soft fonts, .PFM
- files, and cartridge .PCM files need to be installed by the driver.) %@NL@%
-
-
- %@3@%%@CR:C6A00070003 @%%@AB@%Bitmap Screen Fonts%@AE@%%@EH@%%@NL@%
-
- Printer fonts should be accompanied by bitmap screen fonts in the
- apppropriate aspect ratio. Minimally, we recommend you supply line sizes
- that match the frequently used graphic arts point sizes (i.e., 8, 9, 10, 12,
- 14, 18, and 24). %@NL@%
-
- You measure screen fonts in line sizes (dots or lines per inch) rather than
- typographic point sizes. Specific line sizes of the fonts may be different
- from their nominal point sizes. %@NL@%
-
- For more information on screen fonts, see Chapter 1, "Screen Fonts for
- Windows," and Chapter 12, "Installer Scenarios." %@NL@%
-
-
- %@3@%%@CR:C6A00070004 @%%@AB@%Downloadable Fonts%@AE@%%@EH@%%@NL@%
-
- Downloadable fonts are the most cost-effective way to distribute additional
- fonts for a printer device. This approach enables third-party vendors to
- create and/or distribute downloadable soft fonts for a device. %@NL@%
-
- Downloadable fonts also enable users to access a larger variety of fonts
- than could be held in their printer's memory. This is possible because the
- driver selectively downloads the fonts only when needed. %@NL@%
-
- Each downloadable font must have a font file in printer-specific format.
- This file is in the printer's font command language. For the Windows printer
- driver to download the file, it must know where the file resides on the
- user's hard disk. Chapter 2, "Printer Font Metrics (PFM) Files," describes
- the Windows font management mechanism. %@NL@%
-
-
- %@3@%%@CR:C6A00070005 @%%@AB@%Printer Font Metrics Files%@AE@%%@EH@%%@NL@%
-
- Each downloadable printer font needs a printer font metrics (PFM) file in
- the Windows .PFM file format. The Windows printer driver uses the
- information in the .PFM file to prepare the width and kerning tables used by
- the application during composition. %@NL@%
-
- A printer font metrics file shares a common header with a Windows screen
- font file. The differences between the screen font file and the printer font
- metrics file occur after the common header. For a description of the
- contents of .PFM files, see Chapter 2, "Printer Font Metrics (PFM) Files,"
- and, then, Chapter 4, ".PFM Files for PostScript Printers," and Chapter 5,
- ".PFM Files for PCL Printers," for specific descriptions of those .PFM
- files. %@NL@%
-
-
-
-
-
-
- %@CR:C6A-Part 01 @%%@1@%%@AB@%PART I Fonts%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This first part discusses printer and screen font issues in the Microsoft
- Windows environment. It also includes detailed descriptions of .PFM and .PCM
- files, the PFM Editor tool, and the specific .PFM file formats for
- PostScript and PCL printers. %@NL@%
-
- This information forms the basis for understanding the technical notes
- provided in Part 2, "The PCL Driver," and Part 3, "The PostScript Driver." %@NL@%
-
-
-
-
-
-
- %@CR:C6A00010001 @%%@1@%%@AB@%Chapter 1 Screen Fonts for Windows%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter presents the factors you should consider when creating screen
- fonts. We recommend that you provide at least two (although three would be
- better) sets of screen fonts for the important display classes. We also
- recommend a range of screen line sizes, taking into account the trade-off
- between performance and WYSIWYG quality. %@NL@%
-
- Microsoft Windows applications must compose text for the target output
- device and display an approximation of that output on the screen. To have a
- WYSIWYG display, the screen fonts must match the printer fonts. The more
- accurate the representation, the more WYSIWYG the display. %@NL@%
-
-
- %@2@%%@CR:C6A00010002 @%%@AB@%1.1 The Aspect-Ratio Classes of Display Devices%@AE@%%@EH@%%@NL@%
-
- Actual dots-per-inch resolution is not a factor in determining the class of
- the device; only the aspect ratio is used. %@NL@%
-
- Windows recognizes three aspect-ratio classes of display devices: %@NL@%
-
-
- ■ 2:1%@NL@%
-
- ■ 1.33:1 (4:3)%@NL@%
-
- ■ 1:1%@NL@%
-
-
- These classes roughly correspond to: %@NL@%
-
-
- ■ The IBM Color Graphics Adapter (2:1)%@NL@%
-
- ■ The IBM Enhanced Graphics Adapter (4:3)%@NL@%
-
- ■ The IBM PS/2(R) MCGA, VGA, and 8514/a (1:1)%@NL@%
-
-
- If you pre-digitize the screen fonts, we suggest you distribute three sets
- of %@AI@%each%@AE@% font for the three aspect ratios. (Vendors wanting to distribute
- only two sets should exclude the 2:1 class, as it clearly represents old
- technology.) %@NL@%
-
-
- %@2@%%@CR:C6A00010003 @%%@AB@%1.2 Translating Point Sizes into Line Sizes%@AE@%%@EH@%%@NL@%
-
- Because of the variation in screen resolutions, screen font sizes are
- discussed in terms of screen line sizes, not typographic point sizes. Those
- familiar with the Macintosh(R) environment have become used to line sizes
- and point sizes being the same. This is %@AI@%not %@AE@%true in the PC environment. %@NL@%
-
- Windows defines a logical page size (that is, lines-per-inch) for each
- device it supports. When possible, this logical page size will closely match
- the physical size and aspect ratio of the device. Common screen
- lines-per-inch sizes are as follows: %@NL@%
-
-
- ■ For a 2:1 aspect ratio, 96:48 (IBM Color Graphics Adapter)%@NL@%
-
- ■ For a 1:1 aspect ratio, 96:96 (VGA), 108:108, 120:120 (8514/a), and
- 144:144%@NL@%
-
- ■ For a 4:3 aspect ratio, 96:72 (IBM Enhanced Graphics Adapter)%@NL@%
-
-
- The equation for relating point size to equivalent screen line size is as
- follows: %@NL@%
-
- Truncate the quotient on the right-hand side if the result is a fractional
- line size; it is always better to select a smaller size when an exact match
- is not possible. %@NL@%
-
-
- %@2@%%@CR:C6A00010004 @%%@AB@%1.3 Choosing the Correct Range of Line Sizes%@AE@%%@EH@%%@NL@%
-
- To represent accurately a printer font on the screen, you must make
- available a reasonable range of screen fonts. However, each screen font
- consumes valuable memory. Therefore, as a font vendor, you should weigh
- carefully performance against large screen-font variety. For each printer
- font, you should distribute at least two, and preferably three, .FON files
- containing screen fonts for the following: %@NL@%
-
-
- ■ 1:1 aspect-ratio screens%@NL@%
-
- ■ 4:3 aspect-ratio screens%@NL@%
-
- ■ 2:1 aspect-ratio screens (optional)%@NL@%
-
-
- The most important factor to consider when creating screen-font files is
- memory consumption. Fewer and smaller screen fonts use less memory, but may
- degrade the WYSIWYG quality of the display. Other factors to consider
- include the following: %@NL@%
-
-
- ■ Legibility threshold. There is a certain size at which the fonts are
- difficult, if not impossible, to read. For most screens, the value is
- 6 lines. For high-resolution screens, the value is around 9-10 lines.
- Therefore, it does not make sense to provide fonts below these sizes.%@NL@%
-
- ■ Doubling and tripling. The screen driver may double or triple a
- small-size font to take the place of an unavailable large font. For
- example, it may double an 18-line font to make a 36-line font, or it
- may triple a 24-line font to make a 72-line font. Doubling is ugly,
- but acceptable and difficult to avoid. Tripling is unacceptable and
- can be avoided by providing a well-chosen range of screen line sizes.%@NL@%
-
- ■ Specific applications. The application can control how the screen
- driver will select a font for such things as text greeking, doubling
- and tripling, vector font substitution, and down-sizing to match
- widths.
- %@NL@%
-
-
-
- %@3@%%@CR:C6A00010005 @%%@AB@%1.3.1 Greeking%@AE@%%@EH@%%@NL@%
-
- Some applications stop displaying screen fonts below a certain line size and
- may display a gray shaded box or other graphic representation. This is
- referred to as "greeked" text. Greeking speeds up the screen display. %@NL@%
-
-
- %@3@%%@CR:C6A00010006 @%%@AB@%1.3.2 Proof Versus Draft (Doubling and Tripling) Quality%@AE@%%@EH@%%@NL@%
-
- In Windows, %@AI@%proof%@AE@% usually means good and %@AI@%draft%@AE@% means poor but quick. The
- screen driver will never double- or triple-size a font for proof quality.
- However, it will double- or triple-size smaller fonts to get the exact size
- it wants for draft quality. If the correct size is available, the screen
- driver will always choose it. %@NL@%
-
- Doubling and tripling occur only when the exact size is not available. For
- example, assume the only screen sizes are 10 and 19 lines, and the
- application wants a 20-line screen font. In proof quality, the screen driver
- would choose the 19-line font. In draft quality, the screen driver would
- double the 10-line font. %@NL@%
-
-
- %@3@%%@CR:C6A00010007 @%%@AB@%1.3.3 Vector Font Substitution%@AE@%%@EH@%%@NL@%
-
- Vector outline fonts do not look as good as well-made raster screen fonts,
- but they look better than doubled or tripled screen fonts. Also, the amount
- of memory used by vector fonts is constant while the amount of memory used
- by raster fonts increases as the font size increases. %@NL@%
-
-
- %@3@%%@CR:C6A00010008 @%%@AB@%1.3.4 Down-sizing to Match Widths%@AE@%%@EH@%%@NL@%
-
- When the screen fonts do not accurately represent the printer fonts (i.e.,
- the height-to-width ratio on the printer font is different from that of the
- screen font), an application can ask for a smaller font to get the correct
- width. By doing this, the application can display the line more quickly and
- prevent the characters from overlapping. %@NL@%
-
- This behavior can most often be observed when the font vendor does not
- supply matching screen fonts, or the screen fonts do not contain the same
- height-to-width ratio as their corresponding printer fonts. %@NL@%
-
-
- %@2@%%@CR:C6A00010009 @%%@AB@%1.4 Recommended Screen Font Sizes%@AE@%%@EH@%%@NL@%
-
- Nothing produces better WYSIWYG than a wide range of screen font sizes. On
- the other hand, nothing degrades system performance faster than a large
- number of screen fonts. Therefore, the selection of screen fonts must
- balance desired WYSIWYG quality with system performance. %@NL@%
-
- Suppose, for example, you have two machines with different screen font
- configurations. Machine A contains the screen font sizes 7, 10, and 16
- lines. Machine B contains the sizes 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- and 18 lines. If the user creates a page using all the fonts from Machine B,
- the differences in sizes will be visible. However, the machine will load 12
- screen fonts to display the page. %@NL@%
-
- On Machine A, with doubling and tripling disabled, the machine displays the
- same range of sizes as follows: %@NL@%
-
-
- ■ 7, 8, and 9 lines displayed with the 7-line font%@NL@%
-
- ■ 10, 11, 12, 13, 14, and 15 lines displayed with the 10-line font%@NL@%
-
- ■ 16, 17, and 18 lines displayed with the 16-line font%@NL@%
-
-
- Much of the WYSIWYG would be lost because several sizes are displayed with
- the same font. However, the machine had to load only three fonts to display
- the page. %@NL@%
-
- Thus, Machine B %@AI@%slowly%@AE@% displayed with high WYSIWYG quality, what Machine A
- %@AI@%quickly%@AE@% displayed with poor WYSIWYG quality. %@NL@%
-
- As the font vendor, you need to consider the application the user will run
- under Windows. For example, Windows Excel generally uses body-size fonts
- (fonts in the size range of 8 to 12 points). Therefore, a wide range of font
- sizes is unnecessary. And Aldus(R) PageMaker(R), although it uses a large
- range of sizes, switches to vector fonts above 24 lines (i.e., the default
- "Vector text above" setting). %@NL@%
-
- Ideally, the user should decide which is more important: WYSIWYG quality or
- performance. Many font products are available that allow for exactly that:
- the product contains a font generator that requires the user to specify
- which point sizes to build. For such programs, we recommend the user be
- given the option to select a pre-determined range of sizes: %@NL@%
-
-
- ■ "Publishing" size range of 8, 9, 10, 12, 14, 18, and 24 lines%@NL@%
-
- ■ "Artwork" size range of 7, 8, 9, 10, 11, 12, 14, 16, 18, 21, 24, 28,
- and 32 lines%@NL@%
-
- ■ "General use" or "Performance" range of 8, 10, 12, 18, and 24 lines%@NL@%
-
-
- If the font-creation program requires the user to indicate exactly which
- sizes should be built (that is, there are no pre-determined ranges), then we
- recommend that the documentation provide specific instructions on what
- numbers to enter, based upon the user's needs or intended use for the
- product. %@NL@%
-
- For font packages that give the user no choice in the size range, we
- recommend that the vendor supply the "Publishing" size range of 8, 9, 10,
- 12, 14, 18, and 24 lines. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00020001 @%%@1@%%@AB@%Chapter 2 Printer Font Metrics (PFM) Files%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter presents the format for listing printer font metrics (PFM)
- files and soft fonts in the WIN.INI file, and the format for .PFM and .PCM
- files. %@NL@%
-
- Most drivers have the text metrics for a small number of device-resident
- fonts built in as resources. But the majority of the printer font metrics
- will be external to the driver in the form of Microsoft Windows printer font
- metrics files. %@NL@%
-
- The driver retrieves information about which fonts are available by reading
- profile strings from the Windows initialization file, WIN.INI. Drivers
- maintain their default settings across invocations of the driver by saving
- the information in WIN.INI. %@NL@%
-
-
- %@2@%%@CR:C6A00020002 @%%@AB@%2.1 Listing .PFM Files in WIN.INI%@AE@%%@EH@%%@NL@%
-
- Most of this discussion pertains to .PFM files for soft fonts (i.e., fonts
- that must be downloaded to the printer from the computer). However,
- cartridge and printer-resident fonts can be handled in the same manner. %@NL@%
-
- There are two forms of soft fonts: %@NL@%
-
-
- ■ Permanent soft fonts. These are copied from the computer to the
- printer when the printer is first turned on and remain there until the
- printer is turned off. The Windows printer driver has access to
- permanent soft fonts for all the documents that it prints.%@NL@%
-
- ■ Temporary soft fonts. These are copied from the computer to the
- printer on an as-needed basis during the print job. They are deleted
- from the printer's memory at the end of a print job.%@NL@%
-
-
- For the Windows printer driver to correctly locate .PFM files, the driver,
- or a utility provided by the font vendor, must perform the following
- operations: %@NL@%
-
-
- ■ Transfer .PFM, screen font, and downloadable font files (i.e., soft
- fonts) from the font manufacturer's floppy disks to the user's hard
- disk.%@NL@%
-
- ■ Add the entries in the WIN.INI file using the format described in the
- following sample listing of .PFM files:%@NL@%
-
-
- %@AS@% [HPPCL,LPT1]
- %@AS@% SoftFonts=4
- %@AS@% SoftFont1=C:\PCLFONTS\HVPB0140.PFM
- %@AS@% SoftFont2=C:\PCLFONTS\TRPR0120.PFM
- %@AS@% SoftFont3=C:\PCLFONTS\TRPB0120.PFM,C:\PCLFONTS\TR120BPN.USP
- %@AS@% SoftFont4=C:\PCLFONTS\TRPI0120.PFM,C:\PCLFONTS\TR120IPN.USP
- %@AS@% Cartridge100=C:\PCLFONTS\MYCART.PCM%@AE@%
-
- The Windows Printer Font Installer, used in conjunction with the PCL / HP
- LaserJet driver, also requires these entries for permanently downloaded
- fonts: %@NL@%
-
- %@AS@% C:\PCLFONTS\HVPB0140.PFM=C:\PCLFONTS\HV140BPN.USP
- %@AS@% C:\PCLFONTS\TRPR0120.PFM=C:\PCLFONTS\TR120BPN.USP%@AE@%
-
- The WIN.INI entries in the preceding examples have these meanings: %@NL@%
-
- %@TH: 48 2932 02 34 44 @%
- WIN.INI entry Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- [HPPCL,LPT1] The driver stores all its information in a
- special section in the WIN.INI file. The
- format for the heading is:
-
- [%@AI@%driver name%@AE@%,%@AI@%port name%@AE@%]
-
- This enables the driver to maintain
- different information for each printer
- port to which the driver is connected. For
- example, the printer on LPT1 may be a
- standard LaserJet incapable of handling
- soft fonts while the printer on LPT2 may
- be a LaserJet Series II.
-
- %@AB@%SoftFonts=%@AE@% The number of %@AB@%SoftFontn= %@AE@%entries.
-
- %@AB@%SoftFontn=%@AE@% The first two entries list the soft fonts
- that the user indicated have been
- previously downloaded to the printer (that
- is, permanently downloaded fonts). For
- these fonts, only a Windows printer font
- metrics (.PFM) file is referenced.
-
- These entries could also represent .PFM
- files for cartridge fonts. The driver
- detects cartridge fonts by the presence of
- a printer escape in the .PFM file. This is
-
- described in Part 2, "The PCL Driver."
-
- The last two %@AB@%SoftFontn=%@AE@% fields list the
- fonts that the driver is to download
- dynamically (i.e., temporary fonts) if
- called for in the document.
-
- %@AB@%Cartridgen=%@AE@%%@AI@%%@AE@% The definition of a cartridge. A .PCM file
- contains one PFM structure for each font
- in the cartridge.
-
- %@AB@%PFM file=%@AE@% The Printer Font Installer in the PCL / HP
- LaserJet driver uses these entries to
- preserve the filenames of the permanently
- downloaded fonts (first two %@AB@%SoftFontn=%@AE@%
- entries). The Printer Font Installer is
- described in Part 2, "The PCL Driver."
-
- %@TE: 48 2932 02 34 44 @%
-
- The %@AB@%SoftFonts=%@AE@% and%@AB@% SoftFontn=%@AE@% entries in the WIN.INI file may be entered by
- the user or, ideally, entered automatically by an installation utility. Some
- Windows drivers, such as the PCL / HP LaserJet driver, contain an
- installation utility. %@NL@%
-
- If the driver does not contain an installation utility, we recommend that
- the font vendor provide a utility that: %@NL@%
-
-
- ■ Transfers .PFM, screen font, and printer font files from the font
- vendors' disks to the user's hard disk.%@NL@%
-
- ■ Writes the necessary changes to the WIN.INI file.%@NL@%
-
-
- If .PFM files are not supplied, the driver may elect to generate them from
- the download files. The PCL / HP LaserJet driver, for example, does this.
- However, the PCL driver's PFM generator does not create pair-kern tables or
- very accurate extended text metrics structures; only the font's designer can
- create these structures accurately. It also cannot expand compressed font
- files or decrypt encrypted files. In this case, the font vendor must supply
- an installer utility that will convert the font files into regular HP soft
- font files. %@NL@%
-
- The current Windows PostScript driver is not equipped with a soft font
- installation utility. Even if it were, it would not attempt to generate .PFM
- files from downloadable font files due to the complexity of PostScript
- fonts. Instead, it would build .PFM files from Adobe(tm) font metrics (.AFM)
- files. As a font vendor, you must supply the .PFM files to guarantee an
- accurate description of the font metrics. Optionally, you may supply .AFM
- files since a future driver may also read them. %@NL@%
-
-
- %@2@%%@CR:C6A00020003 @%%@AB@%2.2 Printer Font Install Directory File%@AE@%%@EH@%%@NL@%
-
- The printer font install directory file, FINSTALL.DIR, is a standard file
- format read by font install utilities. The purpose of this file is to link
- each downloadable font file to its corresponding .PFM and screen font file.
- The utility uses this file to locate the .PFM, screen, and printer font
- files on the disks in a distribution package. We recommend that font vendors
- use this file format when designing a font package for installation by the
- Windows Printer Font Installer. %@NL@%
-
- As of this writing, the printer font install directory file is supported
- only by the Printer Font Installer in the Windows PCL / HP LaserJet driver.
- The format for the file is documented in Part 2, "The PCL Driver." %@NL@%
-
-
- %@2@%%@CR:C6A00020004 @%%@AB@%2.3 .PFM File Organization%@AE@%%@EH@%%@NL@%
-
- The printer font metrics file consists of the following data structures (in
- this order): %@NL@%
-
-
- 1. .PFM header structure (PFMHEADER)%@NL@%
-
- 2. Array of character widths from %@AB@%dfFirstChar%@AE@% through%@AB@% dfLastChar%@AE@% plus one
- WORD%@NL@%
-
- 3. .PFM extension structure (PFMEXTENSION)%@NL@%
-
- 4. Driver name pointed to by%@AB@% dfDevice%@AE@%%@NL@%
-
- 5. Windows font name pointed to by %@AB@%dfFace%@AE@%%@NL@%
-
- 6. Extended Text Metric structure (EXTTEXTMETRIC) pointed to by
- %@AB@%dfExtMetricsOffset%@AE@%%@NL@%
-
- 7. Extent table pointed to by %@AB@%dfExtentTable%@AE@%%@NL@%
-
- 8. Driver-specific structure pointed to by%@AB@% dfDriverInfo%@AE@%%@NL@%
-
- 9. Pair-kern table pointed to by %@AB@%dfPairKernTable%@AE@%%@NL@%
-
- 10. Track-kern table pointed to by %@AB@%dfTrackKernTable%@AE@%%@NL@%
-
-
- Of these structures, the .PFM header, .PFM extension, and font name must be
- present in every Windows .PFM file. The existence of the remaining
- structures depends upon the printer driver and the font vendor's
- preferences. The specific requirements for the Windows PostScript and PCL
- drivers are described in Chapter 4, ".PFM Files for PostScript Printers,"
- and Chapter 5, ".PFM Files for PCL Printers." The rest of this section
- describes the data structures in the .PFM file. %@NL@%
-
-
- %@3@%%@CR:C6A00020005 @%%@AB@%2.3.1 PFM Header and Width Table%@AE@%%@EH@%%@NL@%
-
- The header for the .PFM file begins with the same information stored in a
- Windows raster font file or vector font file (see the %@AI@%Microsoft Windows
- %@AI@%Device Driver Adaptation Guide%@AE@% for descriptions of those fields). %@NL@%
-
- The .PFM file header contains the following fields: %@NL@%
-
- %@AS@% WORD dfVersion
- %@AS@% WORD dfSize
- %@AS@% char dfCopyright[60]
- %@AS@% WORD dfType
- %@AS@% WORD dfPoints
- %@AS@% WORD dfVertRes
- %@AS@% WORD dfHorizRes
- %@AS@% WORD dfAscent
- %@AS@% WORD dfInternalLeading
- %@AS@% WORD dfExternalLeading
- %@AS@% BYTE dfItalic
- %@AS@% BYTE dfUnderline
- %@AS@% BYTE dfStrikeOut
- %@AS@% WORD dfWeight
- %@AS@% BYTE dfCharSet
- %@AS@% WORD dfPixWidth
- %@AS@% WORD dfPixHeight
- %@AS@% BYTE dfPitchAndFamily
- %@AS@% WORD dfAvgWidth
- %@AS@% WORD dfMaxWidth
- %@AS@% BYTE dfFirstChar
- %@AS@% BYTE dfLastChar
- %@AS@% BYTE dfDefaultChar
- %@AS@% BYTE dfBreakChar
- %@AS@% WORD dfWidthBytes
- %@AS@% DWORD dfDevice
- %@AS@% DWORD dfFace
- %@AS@% DWORD dfBitsPointer
- %@AS@% DWORD dfBitsOffset%@AE@%
-
- The fields in PFMHEADER are identical to the fields for Windows screen font
- files, which are documented in the %@AI@%Microsoft Windows Device Driver
- %@AI@%Adaptation Guide%@AE@%. %@NL@%
-
- The width table is an array of %@AB@%dfLastChar - dfFirst%@AE@% + 2 WORDs. (The last
- extra entry is 0.) If present, it is placed between the PFMHEADER and
- PFMEXTENSION structures. There is a width table for variable-width PCL
- fonts, but none for PostScript .PFM files. See Chapters 4 and 5 for
- descriptions of driver-specific implementations. %@NL@%
-
- The width table is present only in .PFM files for variable-pitch PCL fonts.
- Fixed-pitch PCL fonts do not require width information beyond the width
- fields in the header; PostScript fonts use the extent table instead. %@NL@%
-
-
- %@3@%%@CR:C6A00020006 @%%@AB@%2.3.2 PFMEXTENSION Data Structure%@AE@%%@EH@%%@NL@%
-
- The PFMEXTENSION data structure is as follows: %@NL@%
-
- %@AS@% WORD dfSizeFields
- %@AS@% DWORD dfExtMetricsOffset
- %@AS@% DWORD dfExtentTable
- %@AS@% DWORD dfOriginTable
- %@AS@% DWORD dfPairKernTable
- %@AS@% DWORD dfTrackKernTable
- %@AS@% DWORD dfDriverInfo
- %@AS@% DWORD dfReserved%@AE@%
-
- The fields are defined as follows: %@NL@%
-
- %@TH: 54 3555 02 34 44 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%dfSizeFields%@AE@% The size in bytes of this structure.
-
- %@AB@%dfExtMetricsOffset%@AE@% The byte offset in the file to the
- EXTTEXTMETRIC structure for this font.
-
- %@AB@%dfExtentTable%@AE@% The byte offset in the file to the extent
- table. The size of the table is %@AB@%dfLastChar%@AE@%
- %@AB@%%@AE@%- %@AB@%dfFirstChar %@AE@%+ 1 WORD. The extent table
- contains the unscaled widths (in 1/1000's
- of an em) of the characters in the font.
- This table must be present in PostScript
- .PFM files (see Chapter 4, ".PFM Files for
- PostScript Printers").
-
- %@AB@%dfOriginTable%@AE@% The byte offset in the file to the table
- of character origins. The size of the
- table is %@AB@%dfLastChar - dfFirstChar %@AE@%+ 1 WORD.
- For screen font files, this table gives
- the signed amount of left adjustment to
- add to the current position before drawing
- the characters. Negative values indicate
- left movement; positive values indicate
- right movement. This should be NULL for
- printer font metrics files.
-
- %@AB@%dfPairKernTable%@AE@% The byte offset in the file to the
- optional pair-kerning table. This should
- be NULL if no kerning pairs are defined
- for this font. The size of the table is
- given by the %@AB@%etmKernPairs %@AE@%member of the
- EXTTEXTMETRIC structure.
-
- %@AB@%dfTrackKernTable%@AE@% The byte offset in the file to the
- optional track-kerning table. This should
- be NULL if no kerning tracks are defined
- for this font. The size of the table is
- given by the %@AB@%etmKernTracks %@AE@%member of the
- EXTTEXTMETRIC structure.
-
- %@AB@%dfDriverInfo%@AE@% The byte offset in the file to additional
- driver-specific information. Each driver
- writer is responsible for documenting the
- format of the data pointed to by this
- member. These formats will be made public
- so that third parties that want to create
- compatible printer font metrics files may
- do so. For the Windows PostScript and PCL
- drivers, these structures are described in
- Chapters 4 and 5.
-
- %@AB@%dfReserved%@AE@% Reserved; must be NULL.
-
- %@TE: 54 3555 02 34 44 @%
-
-
- %@3@%%@CR:C6A00020007 @%%@AB@%2.3.3 EXTTEXTMETRIC Data Structure%@AE@%%@EH@%%@NL@%
-
- The EXTTEXTMETRIC data structure contains the following fields: %@NL@%
-
- %@AS@% typedef struc{
- %@AS@% short etmSize;
- %@AS@% short etmPointSize;
- %@AS@% short etmOrientation;
- %@AS@% short etmMasterHeight;
- %@AS@% short etmMinScale;
- %@AS@% short etmMaxScale;
- %@AS@% short etmMasterUnits;
- %@AS@% short etmCapHeight;
- %@AS@% short etmXHeight;
- %@AS@% short etmLowerCaseAscent;
- %@AS@% short etmUpperCaseDescent;
- %@AS@% short etmSlant;
- %@AS@% short etmSuperScript;
- %@AS@% short etmSubScript;
- %@AS@% short etmSuperScriptSize;
- %@AS@% short etmSubScriptSize;
- %@AS@% short etmUnderlineOffset;
- %@AS@% short etmUnderlineWidth;
- %@AS@% short etmDoubleUpperUnderlineOffset;
- %@AS@% short etmDoubleLowerUnderlineOffset;
- %@AS@% short etmDoubleUpperUnderlineWidth;
- %@AS@% short etmDoubleLowerUnderlineWidth;
- %@AS@% short etmStrikeOutOffset;
- %@AS@% short etmStrikeOutWidth;
- %@AS@% WORD etmKernPairs;
- %@AS@% WORD etmKernTracks;
- %@AS@% }EXTTEXTMETRIC;%@AE@%
-
- The EXTTEXTMETRIC fields are described in the following table. All the
- measurements are given in the specified units, regardless of the current
- mapping mode of the display context. %@NL@%
-
- %@TH: 128 6707 02 23 53 @%
- Field Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%etmSize%@AE@% The size of this structure in bytes. Future changes
- to this structure will be additions to the existing
- structure; the position and meaning of existing
- members will not change.
-
- %@AB@%etmPointSize%@AE@% The nominal point size of this font in twips
- (twentieths of a point). This is the intended
- graphic arts size of the font; the actual size may
- differ slightly depending on the resolution of the
- device.%@AI@%%@AE@%
-
- %@AB@%etmOrientation%@AE@% The font's orientation:
-
- 0 = Either orientation
- 1 = Portrait
- 2 = Landscape
-
- This value refers to the ability of this font to be
- imaged on a page of the given orientation.
- Landscape pages are those whose width (x-dimension)
- is greater than their height (y-dimension).
-
- %@AB@%etmMasterHeight%@AE@% Specifies the font size in device units for which
- the values in this font's extent table are exact.
- This is described in detail in Section 2.3.4,"Font
- Scaling: etmMasterHeight and etmMasterUnits."
-
- %@AB@%etmMinScale%@AE@% Specified in device units, the minimum valid size
- for this font. That is:
-
-
-
- Where:
- 72 represents the number of points-per-inch.%@AB@%%@AE@%
- %@AB@%dfVertRes%@AE@% contains the number of dots-per-inch.
-
- %@AB@%etmMaxScale %@AE@% Specified in device units, the maximum valid size
- for this font. That is:
-
-
-
- Where:
- 72 represents the number of points-per-inch. %@AB@%%@AE@%
- %@AB@%dfVertRes%@AE@% contains the number of dots-per-inch.
-
- %@AB@%etmMasterUnits%@AE@% The integer number of units-per-em where an em
- equals%@AB@% etmMasterHeight%@AE@%. In other words, %@AB@%%@AE@%
- %@AB@%etmMasterHeight %@AE@%expressed in font units rather than
- device units. This is described in detail in
- Section 2.3.4, "Font Scaling: etmMasterHeight and
- etmMasterUnits."
-
- %@AB@%etmCapHeight%@AE@% The height in font units of uppercase characters in
- the font. Typically, the height of the capital H.
-
- %@AB@%etmXHeight%@AE@% The height in font units of lowercase characters in
- the font. Typically, the height of the lowercase x.
-
- %@AB@%etmLowerCase-%@AE@% The distance in font units that the ascender of
- %@AB@%Ascent%@AE@% lowercase letters extends above the baseline,
- typically specified for a lowercase d.
-
- %@AB@%etmLowerCase-%@AE@% The distance in font units that the descender of
- %@AB@%Descent%@AE@% lowercase letters extends below the baseline,
- typically specified for a lowercase p.%@AI@%%@AE@%
-
- %@AB@%etmSlant%@AE@% The angle in tenths of degrees clockwise (to the
- right) from the upright version of the font
- (assuming this font is slanted or italicized).
-
- %@AB@%etmSuperScript%@AE@% The recommended amount in font units to offset
- superscript characters from the baseline (see the
- discussion of font units in Section 2.3.4, "Font
- Scaling: etmMasterHeight. and etmMasterUnits").
- This is typically a negative offset.
-
- %@AB@%etmSubScript%@AE@% The recommended amount in font units to offset
- subscript characters from the baseline (see the
- discussion of font units in Section 2.3.4, "Font
- Scaling: etmMasterHeight and etmMasterUnits"). This
- is typically a positive offset.
-
- %@AB@%etmSuperScriptSize%@AE@% The recommended size in font units of superscript
- characters for this font.
-
- %@AB@%etmSubScriptSize%@AE@% The recommended size in font units of subscript
- characters for this font.%@AI@%%@AE@%
-
- %@AB@%etmUnderlineOffset%@AE@% The offset in font units downward from the baseline
- where the top of a single underline bar should
- appear.
-
- %@AB@%etmUnderlineWidth%@AE@% The thickness in font units of the underline bar.
-
- %@AB@%etmDoubleUpper-%@AE@% The offset in font units downward from the baseline
- %@AB@%UnderlineOffset%@AE@% where the top of the upper double underline bar
- should appear.
-
- %@AB@%etmDoubleLower-%@AE@% The offset in font units downward from the baseline
- %@AB@%UnderlineOffset%@AE@% where the top of the lower double underline bar
- should appear.
-
- %@AB@%etmDoubleUpper-%@AE@% The thickness in font units of the upper double
- %@AB@%UnderlineWidth%@AE@% underline bar.
-
- %@AB@%etmDoubleLower-%@AE@% The thickness in font units of the lower double
- %@AB@%UnderlineWidth%@AE@% underline bar.
-
- %@AB@%etmStrikeOutOffset%@AE@% The offset in font units upward from the baseline
- where the top of a strike-out bar should appear.
-
- %@AB@%etmStrikeOutWidth%@AE@% The thickness in font units of the strike-out bar
- (see the discussion of font units in Section 2.3.4,
- "Font Scaling: etmMasterHeight and etmMasterUnits").
-
- %@AB@%etmKernPairs%@AE@% The number of character kerning pairs defined for
- this font. You can use this value to calculate the
- size of the pair-kern table returned by the
- GETPAIRKERNTABLE escape. It will not be greater
- than 512 kern pairs.
-
- %@AB@%etmKernTracks%@AE@% The number of kerning tracks defined for this font.
- You can use this value to calculate the size of the
- track-kern table returned by the GETTRACKKERNTABLE
- escape. It will not be greater than 16 kern tracks.
-
- %@TE: 128 6707 02 23 53 @%
-
-
- %@3@%%@CR:C6A00020008 @%%@AB@%2.3.4 Font Scaling: etmMasterHeight and etmMasterUnits%@AE@%%@EH@%%@NL@%
-
- This section describes how a driver uses the values %@AB@%etmMasterHeight%@AE@% and
- %@AB@%etmMasterUnits%@AE@% to scale the character width values in the extent table. It
- also describes how the mechanism %@AI@%should%@AE@% work; Chapters 4 and 5 describe how
- each driver implements or intends to implement the mechanism. %@NL@%
-
- A driver allows two methods for measuring character widths: %@NL@%
-
-
- ■ Device units or "pixels"%@NL@%
-
- ■ Font units%@NL@%
-
-
- Device units are the number of dots in the physical device (dots-per-inch);
- %@AB@%etmMasterHeight%@AE@% is expressed in device units. It may be converted to points
- using the formula: %@NL@%
-
- Where: 72 represents the number of points-per-inch. %@AB@%dfVertRes%@AE@% contains the
- number of dots-per-inch in device units. %@NL@%
-
- Font units may differ from device units as a convenience to the font vendor.
- If the font is targeted for devices that differ in resolution, there
- typically is no benefit from tying the resolution of the font to the
- resolution of a particular printer. The vendor uses the units that are most
- convenient for designing the font. For example, 1000 units-per-cell or em is
- the Adobe standard for PostScript fonts; %@AB@%etmMasterUnits%@AE@% is expressed in font
- units-per-em where an em equals %@AB@%etmMasterHeight%@AE@%. %@NL@%
-
- A number may be converted from device units to font units using the formula:
- %@NL@%
-
- The formula for the inverse operation is: %@NL@%
-
-
- %@4@%%@AB@%Determining Character Widths%@AE@%%@EH@%%@NL@%
-
- The values in the extent table are the widths of the characters when the
- font height equals %@AB@%etmMasterHeight%@AE@%. When the font height does not equal
- %@AB@%etmMasterHeight%@AE@%, the driver must scale the values from the extent table
- (always assume linear scaling fonts). %@NL@%
-
- The values in the extent table are in font units. The width of a character
- for a particular font height may be computed by using the ratio of character
- extent over %@AB@%etmMasterUnits%@AE@%. That is: %@NL@%
-
- By multiplying font height through the equation, we have the formula for
- computing character width: %@NL@%
-
- Notice that character width takes on the units of font height. If the font
- height is in device units, the resulting width will be in device units. If
- the font height is in font units, the resulting width will be in font units.
- %@NL@%
-
- In its normal mode of operation, the driver simply plugs the font height
- into the above equation to compute the character width. Font height is
- normally in device units, so the resulting width is normally in device
- units. %@NL@%
-
- For example, assume the device resolution is 300 dpi and the font units are
- expressed as 1000 units-per-em. Assuming that %@AB@%etmMasterHeight%@AE@% represents a
- 72-point font, the values would look like this: %@NL@%
-
- %@AB@%dfVertRes%@AE@% = 300 %@NL@%
-
- %@AB@%etmMasterHeight%@AE@% = 300 %@NL@%
-
- %@AB@%etmMasterUnits%@AE@% = 1000 %@NL@%
-
- Furthermore, assume the value in the width table for a capital H is 500 font
- units, or half the em height. Assume the height of the font for which you
- want the character width is 12 points, or 50 device units. With relative
- widths disabled, the character width would be computed using the first width
- formula: %@NL@%
-
-
- %@4@%%@AB@%Using the ENABLERELATIVEWIDTHS Escape%@AE@%%@EH@%%@NL@%
-
- When the application calls the ENABLERELATIVEWIDTHS escape, the driver
- expects the application to request a font height in device units, but will
- return the character width in font units. The application may want to obtain
- widths in font units to alleviate any error that may result from rounding
- widths to device units. It is the responsibility of the driver to correct
- for this error when relative widths are disabled, but the application may
- choose to enable relative widths and perform its own error correction. %@NL@%
-
- The driver converts the font height (in device units) to font units prior to
- computing the character width. The resultant formula is: %@NL@%
-
- This formula was computed by replacing the "font height" from the first
- formula for character width with the formula for converting a value from
- device units to font units and, then, simplifying the equation. %@NL@%
-
- Using the same assumptions given in the previous subsection, you can now
- work through some more examples. You know that the width of the character is
- 25 device units (i.e., dots or pixels) or half the height of 50 device
- units. With relative widths enabled, the character width would be computed
- using the second width formula: %@NL@%
-
- The width of the character is 83.333 font units. The driver will round
- non-integer results. %@NL@%
-
- To demonstrate that the width in font units is equivalent to the width in
- device units, it can be converted to device units using the formula provided
- in the previous subsection: %@NL@%
-
- As stated earlier, this section describes how %@AB@%etmMasterUnits %@AE@%and
- %@AB@%etmMasterHeight %@AE@%should be used. Chapters 4 and 5 describe restrictions
- imposed by the drivers. %@NL@%
-
-
- %@3@%%@CR:C6A00020009 @%%@AB@%2.3.5 KERNPAIR Data Structure%@AE@%%@EH@%%@NL@%
-
- The KERNPAIR data structure contains the following fields: %@NL@%
-
- %@AS@% typedef struc{
- %@AS@% union {
- %@AS@% BYTE each[2]; /* UNION: 'each' and 'both' share the */
- %@AS@% /* same memory */
- %@AS@% WORD both;
- %@AS@% } kpPair;
- %@AS@% short kpKernAmount;
- %@AS@% } KERNPAIR;%@AE@%
-
- The KERNPAIR fields are described in the following table. All the
- measurements are given in the font units of the device, regardless of the
- current mapping mode of the display context. %@NL@%
-
- %@TH: 17 889 02 16 60 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%kpPair.each[0]%@AE@% The character code for the first character in the kerning
- pair.
-
- %@AB@%kpPair.each[1]%@AE@% The character code for the second character in the kerning
- pair.
-
- %@AB@%kpPair.both%@AE@% A WORD type in which the first character of the kerning
- pair is in the low-order byte and the second character is
- in the high-order byte.
-
- %@AB@%kpKern-%@AE@% The signed amount that this pair will be kerned if they
- %@AB@%Amount%@AE@% appear side by side in the same font and size. This value
- is typically negative since pair-kerning usually results
- in two characters being set more tightly than normal.
-
- %@TE: 17 889 02 16 60 @%
-
- The number of kern pairs is stored in the EXTTEXTMETRIC structure's %@AB@%
- %@AB@%etmKernPairs%@AE@% field. The array of KERNPAIR structures returned by the
- GETPAIRKERNTABLE escape must be sorted in increasing order by the
- %@AB@%kpPair.both%@AE@% member (or in order of %@AB@%kpPair.each[1]%@AE@%, %@AB@%lpPair.each[0]%@AE@%. However,
- an integer sort on %@AB@%kpPair.both %@AE@%is faster). This enables the application to
- do a binary search on the kerning table. %@NL@%
-
-
- %@3@%%@CR:C6A00020010 @%%@AB@%2.3.6 KERNTRACK Data Structure%@AE@%%@EH@%%@NL@%
-
- The KERNTRACK data structure contains the following fields: %@NL@%
-
- %@AS@% typedef struc{
- %@AS@% short ktDegree;
- %@AS@% short ktMinSize;
- %@AS@% short ktMinAmount;
- %@AS@% short ktMaxSize;
- %@AS@% short ktMaxAmount;
- %@AS@% }KERNTRACK;%@AE@%
-
- The KERNTRACK fields are described in the following table. All measurements
- are given in font units of the currently selected font, regardless of the
- current mapping mode of the display context. %@NL@%
-
- %@TH: 24 1438 02 34 44 @%
- Field Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%ktDegree%@AE@% A short integer value in which
- increasingly negative values represent
- tighter track-kerning and increasingly
- positive values represent looser
- track-kerning.
-
- %@AB@%ktMinSize%@AE@% A short integer specifying in device units
- the minimum font size for which linear
- track-kerning applies.
-
- %@AB@%ktMinAmount%@AE@% A short integer specifying in font units
- the amount of track-kerning to apply to
- font sizes %@AB@%ktMinSize %@AE@%and below.
-
- %@AB@%ktMaxSize%@AE@% A short integer specifying in device units
- the maximum font size for which linear
- track-kerning applies.
-
- %@AB@%ktMaxAmount%@AE@% A short integer specifying in font units
- the amount of track-kerning to apply to
- font sizes %@AB@%ktMaxSize %@AE@%and above.
-
- %@TE: 24 1438 02 34 44 @%
-
- Between the %@AB@%ktMinSize%@AE@% and %@AB@%ktMaxSize%@AE@% font sizes, track-kerning is a linear
- function from %@AB@%ktMinAmount%@AE@% to %@AB@%ktMaxAmount%@AE@%. %@NL@%
-
-
- %@2@%%@CR:C6A00020011 @%%@AB@%2.4 Printer Cartridge Metrics (PCM) Files%@AE@%%@EH@%%@NL@%
-
- A .PCM file consists of a global information header followed by a series of
- .PFM file structures. The file structure is as follows: %@NL@%
-
- %@AS@% struct _pcmheader {
- %@AS@% WORD pcmMagic;
- %@AS@% WORD pcmVersion;
- %@AS@% DWORD pcmSize;
- %@AS@% DWORD pcmTitle;
- %@AS@% DWORD pcmPFMList;
- %@AS@% }%@AE@%
-
- The %@AB@%pcmMagic%@AE@% field must contain the magic number 3244 (0x0CAC). The Printer
- Font Installer uses it to recognize .PCM files when no FINSTALL.DIR file is
- supplied with the .PCM file. %@NL@%
-
- The %@AB@%pcmVersion%@AE@% field contains the version number of the .PCM file. The upper
- byte contains the version number and the lower byte the revision number,
- both in BCD. The current version number is 3.10, represented as 0x0310. %@NL@%
-
- The %@AB@%pcmSize%@AE@% field contains the size in bytes of the entire .PCM file. %@NL@%
-
- Following this structure is the title string for the cartridge. The file
- offset of this string appears in the %@AB@%pcmTitle%@AE@% field of the header. This
- string is terminated by zero. This title is used normally in the cartridge
- list box in the Printer Setup (device-mode) dialog box. A non-zero offset
- and a non-empty name string at that offset is required. %@NL@%
-
- The list of font PFMs is a collection of .PFM files (one for each cartridge
- font) that are appended together. Each PFM contains (in a doubleword at
- offset 2) the size of the .PFM file, which you can consider the offset of
- the next PFM relative to the current one. All file positions in the PFM
- itself are offsets from the file position of the beginning of the individual
- PFM. The absolute file offset of the first PFM in the file is placed in the
- %@AB@%pcmPFMList%@AE@% field. One .PFM file is required for each individual font in the
- cartridge. %@NL@%
-
-
- %@3@%%@CR:C6A00020012 @%%@AB@%2.4.1 WIN.INI Additions%@AE@%%@EH@%%@NL@%
-
- You should specify non-driver resident cartridges by adding to the WIN.INI
- file in the driver section a switch similar to the following one: %@NL@%
-
- %@AS@% [HPPCL, port]
- %@AS@% cartridgen=PCM-file%@AE@%
-
- where the given .PCM file defines the cartridge with index %@AI@%n%@AE@%. You may use
- this index with the %@AB@%cartindexn %@AE@%switch to select the cartridge. The index of
- a cartridge must be at least 50 in version 3.2. %@NL@%
-
- The standard cartridges defined by the %@AB@%cartridge%@AE@%%@AI@%n%@AE@% switch are listed in the
- Cartridge list box in the Printer Driver dialog box, and may be easily
- selected and unselected. %@NL@%
-
-
- %@3@%%@CR:C6A00020013 @%%@AB@%2.4.2 Cartridge Installation%@AE@%%@EH@%%@NL@%
-
- You install cartridges the same way as soft fonts by clicking the Fonts
- button to invoke the Printer Font Installer. All the user-defined cartridges
- that appear in the WIN.INI file are listed, along with the soft fonts, in
- the Fonts list box. Cartridges are labeled with a "(c)" symbol or, if
- running version 3.3 of the PCL driver, a bitmapped representation of a
- cartridge. %@NL@%
-
- You can also add new cartridges the same way as fonts by clicking the Add
- Fonts... button and selecting a source from which to read. There are two
- ways to find cartridges. You can either specify them in the FINSTALL.DIR
- file or scan the disk. The syntax for specifying cartridges in FINSTALL.DIR
- is given in the next subsection. If no FINSTALL.DIR file is found on the
- source disk, the scanning process will search for files in the PCM format
- (i.e., containing valid %@AB@%pcmMagic%@AE@% and %@AB@%pcmVersion%@AE@% fields and a valid title)
- and place those it finds in the install list box along with any downloadable
- fonts it finds. %@NL@%
-
- You manipulate cartridges basically the same way you would manipulate soft
- fonts. You can add, delete, copy, and/or move them between ports. However,
- the Edit button and the Permanent and Temporary radio buttons are disabled
- if any cartridges are selected since these operations do not apply to
- cartridges. %@NL@%
-
-
- %@3@%%@CR:C6A00020014 @%%@AB@%2.4.3 FINSTALL.DIR Syntax%@AE@%%@EH@%%@NL@%
-
- A new structure for installing cartridges has been added to the FINSTALL.DIR
- syntax. The syntax is as follows: %@NL@%
-
- %@AS@% CARTRIDGE {
- %@AS@% aspectratio = description, screenfontfile
- %@AS@% .
- %@AS@% .
- %@AS@% .
- %@AS@% "cartridge title" = cartridgefile
- %@AS@% .
- %@AS@% .
- %@AS@% .
- %@AS@% }%@AE@%
-
- This syntax enables you to install matching screen fonts along with a
- cartridge. More than one cartridge may appear in a CARTRIDGE block. The
- %@AB@%cartridge title%@AE@% field is the name of the cartridge placed in the list box at
- installation time. It should, but does not need to, match the title in the
- .PCM file. For more information on the FINSTALL.DIR file, see Part 2, "The
- PCL Driver." %@NL@%
-
-
-
-
-
-
- %@CR:C6A00030001 @%%@1@%%@AB@%Chapter 3 The PFM Editor%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- One of the responsibilities of a Microsoft Windows printer driver is to
- provide a list of the fonts available on the printer. Because of the large
- number of downloadable and cartridge fonts available for HP LaserJet
- printers, the driver can only have a few of these fonts built into it. %@NL@%
-
- The driver supports the installation of additional fonts by supplying a
- utility called the Printer Font Installer. (See Part 2, "The PCL Driver,"
- for a description of this utility.) The Printer Font Installer, in the PCL
- driver, requires one .PFM file per-font per-size, with an additional .PFM
- file if there is a font variation such as an italic font or a font with a
- different weight. Thus, a font cartridge containing Helv and TmsRmn fonts at
- 8, 10, 12, and 14 points will require eight .PFM files. If the cartridge
- also contains boldface and italic versions of the 10 and 12 point fonts, an
- additional eight .PFM files are required. These individual cartridge font
- .PFM files are then combined into a single .PCM file. %@NL@%
-
- The information Windows requires about each font includes identifying
- information such as the face name, family, and point size; size information
- such as heights, extents, leading, and widths of individual characters;
- information on how to synthesize effects such as underlining and strikeout;
- and hardware information such as the amount of printer memory required (for
- downloadable fonts) and the printer escape string used to select the font. %@NL@%
-
- The font supplier generally provides .PFM files on the soft font disks or a
- .PCM file on a disk with the cartridge. The font supplier may optionally
- supply matching WYSIWYG screen fonts, which greatly enhance the usability of
- the fonts with Windows applications. %@NL@%
-
- The PFM Editor is a Windows application that the supplier can use to create
- and edit .PFM files and create .PCM files for the PCL driver. The PFM Editor
- simplifies and accelerates the task of creating .PFM files by not requiring
- a great deal of knowledge about either the .PFM file format or Windows
- device drivers. %@NL@%
-
- The PFM Editor reads the filename of a .PFM file from the command line if it
- is passed one. Thus, defining the .PFM extension in WIN.INI allows the user
- to double-click .PFM files to edit them. %@NL@%
-
-
- %@2@%%@CR:C6A00030002 @%%@AB@%3.1 The Main Window%@AE@%%@EH@%%@NL@%
-
- The main window of the PFM Editor contains several fields that give general
- identifying information about the font. All of these fields appear in the
- PFM header structure, which is identical to a font file header. Details of
- the field definitions appear in the %@AI@%Microsoft Windows Device Driver
- %@AI@%Adaptation Guide%@AE@%. You should always specify at least the %@AB@%Pitch%@AE@% field before
- selecting any of the metrics or tables dialogs described in the following
- subsections. %@NL@%
-
- The fields appearing in the main window are as follows: %@NL@%
-
- %@TH: 42 2523 02 34 44 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%Face Name%@AE@% The face name of the font such as Courier.
-
- %@AB@%Char Set%@AE@% The character set that the font represents.
- The most common values are 0 for Windows
- ANSI and 255 for the OEM character set.
-
- In Part 2, "The PCL Driver," additional
- character sets for the PCL driver are
- defined in Section 11.4.1, "PFM Header,"
- as follows: 180 = Math-8; 181 = PI Font;
- 182 = LineDraw; 183 = PC Line; 184 = Tax
- Line, and 185 = US Legal.
-
- %@AB@%Pitch%@AE@% Two radio buttons: Fixed and Proportional.
-
- %@AB@%Effects%@AE@% Three options indicating the appearance of
- the font: Italic, Underline, Strikeout.
-
- %@AB@%Font Family%@AE@% Six selections: Don't Care, Roman, Swiss,
- Modern, Script, and Decorative. The driver
- uses the family to classify fonts for
- identification and selection purposes. The
- terms are documented in the %@AI@%Microsoft %@AE@%
- %@AI@%Windows %@AE@%
- %@AI@%Device Driver Adaptation Guide%@AE@%.
-
- %@AB@%Points%@AE@% The point size of a font, or its height in
- units of 1/72 of an inch.
-
- %@AB@%Weight%@AE@% The weight of the font ─ a number from 0
- to 1000. 400 represents a normal, medium
- font. Larger numbers represent heavier
- (bolder) fonts. A more exact
- correspondence appears in Part 2, "The PCL
- Driver," under Section 11.4.1, "PFM
- Header."
-
- %@AB@%Copyright%@AE@% A 60-character string containing the font
- supplier's copyright notice.
-
- %@TE: 42 2523 02 34 44 @%
-
-
- %@2@%%@CR:C6A00030003 @%%@AB@%3.2 The File Menu%@AE@%%@EH@%%@NL@%
-
- The File menu contains all the standard Windows File menu items along with
- one extra item: Create PCM File... . The following is a list with
- descriptions of those items: %@NL@%
-
- %@TH: 26 1335 02 34 44 @%
- Item Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- New Causes the PFM Editor to re-initialize
- itself and display an empty, untitled .PFM
- file.
-
- Open... Displays a standard Open File Name dialog
- box. .PFM is the default file extension.
-
- Save Saves the .PFM file with the same name as
- previously used in a Load or Save
- operation. If the file is untitled, the
- Save As... dialog appears.
-
- Save As... Allows the user to specify a filename
- before saving.
-
- Create PCM File.. Allows the user to create a cartridge
- metrics file for the HPPCL driver. For a
- more detailed description, see Section 3.6,
- "Creating .PCM Files."
-
- Exit Exits the PFM Editor.
-
- About... Displays an informational dialog box.
-
- %@TE: 26 1335 02 34 44 @%
-
- As with all applications, the user is given the opportunity to save or
- cancel if New, Open, or Exit is invoked when the current file has been saved
- but not changed. %@NL@%
-
-
- %@2@%%@CR:C6A00030004 @%%@AB@%3.3 The Metrics Menu%@AE@%%@EH@%%@NL@%
-
- This menu allows you to activate dialog boxes to specify dimensional
- information about the font. The Metrics popup menu contains three
- selections: Basics..., Extended..., and Effects... . %@NL@%
-
- Basic metrics includes information about character range heights and such
- things as average widths, device resolution, and leading. %@NL@%
-
- Extended metrics is detailed information about the geometry of the font,
- including such things as baseline, ascents/descents, orientation, scale,
- etc. %@NL@%
-
- Effects metrics is information about how to synthesize effects such as
- underlining and strikeout. To get to this menu, though, you must first go
- through the Extended Metrics dialog box. %@NL@%
-
-
- %@3@%%@CR:C6A00030005 @%%@AB@%3.3.1 The Basic Metrics Dialog Box%@AE@%%@EH@%%@NL@%
-
- You access this dialog by choosing Basics... from the Metrics menu. It
- contains information about font size. The dialog box fields are as follows:
- %@NL@%
-
- %@TH: 66 3235 02 24 52 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%Characters:%@AE@%
-
- %@AI@%First%@AE@% The first character in the character set. This is
- the numeric character code of the first character
- for which the font contains a printable character.
-
- %@AI@%Last%@AE@% The last character in the character set. This is
- usually 127 for a 7-bit character set or 255 for
- an 8-bit character set.
-
- %@AI@%Default%@AE@% The code of the character printed if the driver is
- asked to print a character that falls outside the
- range First through Last.
-
- %@AI@%Break%@AE@% The character that delimits words in word wrapping.
- If an application or the %@AB@%DrawText()%@AE@% function is
- asked to word wrap a string in a box, it will
- break the word into multiple lines only at break
- character positions. This is generally the space
- character (32 in both ANSI and ASCII).
-
- %@AB@%Leading: %@AE@%
-
- %@AI@%Internal%@AE@% The leading that appears within the height
- specified by the height of the font. Diacritical
- marks appear in this space.
-
- %@AI@%External%@AE@% The recommended additional space to insert between
- lines. This space is not already accounted for in
- the height of the font.
-
- %@AB@%Resolution: %@AE@%
-
- %@AI@%Horizontal%@AE@% The number of dots-per-inch at which the font was
- and %@AI@%Vertical%@AE@% digitized. For an HP LaserJet, for example, both
- of these numbers should be 300.
-
-
-
-
-
- %@AB@%Widths: %@AE@%
-
- %@AI@%Average%@AE@% For proportional space fonts, the average width of
- all the characters in the font. This field is
- relabeled All for fixed- pitch fonts, since all
- fixed-pitch characters have the same width. It is
- represented in font units. The PFM Editor does not
- calculate the average width from the width table;
- it must be explicitly entered. It is generally the
- width of the lowercase x.
-
- %@AI@%Maximum%@AE@% The width in font units of the widest character in
- the font. Again, this is not calculated from the
- user width table. For fixed-pitch fonts, this
- field is not used and is disabled.
-
- %@AB@%Height%@AE@% The height in font units of the character cell,
- including internal leading.
-
- %@AB@%Ascent%@AE@% The ascent in font units of the font. The distance
- from the top of the character cell to the baseline
- of the font.
-
- %@TE: 66 3235 02 24 52 @%
-
- With the exception of the width table for proportional fonts, this dialog
- fills in the remainder of the Microsoft-defined font file header. The field
- definitions are from the %@AI@%Microsoft Windows Device Driver Adaptation Guide%@AE@%.
- If the .PFM file is to be of any use, all of these fields must be specified
- accurately. %@NL@%
-
- There are also two pushbuttons: OK, which causes the changes to be committed
- into the .PFM file, and Cancel, which rolls the .PFM file back to the state
- in which it was when the user invoked the menu selection. %@NL@%
-
-
- %@3@%%@CR:C6A00030006 @%%@AB@%3.3.2 The Extended Metrics Dialog Box%@AE@%%@EH@%%@NL@%
-
- The extended font metrics are a more detailed description of the font's
- geometry. The major fields are as follows: %@NL@%
-
- %@TH: 50 2622 02 34 44 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%Lower Case: %@AE@%
-
- %@AI@%Ascent%@AE@% The distance in font units from the
- baseline to the top of lowercase ascenders,
- typically measured from the lowercase d.
-
- %@AI@%Descent%@AE@% The distance in font units from the
- baseline to the bottom of descenders,
- usually specified for lowercase p.
-
- %@AB@%Point Size%@AE@% The intended size of the font in twips
- (1/20th of a point, or 1/1440 of an inch).
-
- %@AB@%Cap Height%@AE@% The height in font units of the font's
- uppercase characters, usually taken for
- the character H.
-
- %@AB@%X Height%@AE@% The height in font units of lowercase
- characters, usually the height of the
- lowercase x.
-
- %@AB@%Slant%@AE@% The angle in tenths of a degree clockwise
- from the
- vertical.
-
- %@AB@%Master Height%@AE@% The size in device units at which the
- values in the extent table are exact.
-
- %@AB@%Master Units%@AE@% The Master Height field expressed in font
- units. If the two are different, then the
- device is a linear scaling de-
- vice and the application needs to scale
- all values by the ratio of the requested
- size to this value. (See Section 2.3.4,
- "Font Scaling: etmMasterHeight and
- etmMasterUnits," for a detailed
- description of these two fields.)
-
- %@AB@%Scale%@AE@%:
-
- %@AI@%Min%@AE@% and %@AI@%Max%@AE@% The minimum and maximum sizes to which a
- linear scaling device can scale a font.
-
- %@AB@%Orientation%@AE@%:
-
- %@AI@%Portrait%@AE@% and %@AI@%Landscape%@AE@% Specify the orientation of the font, which
- may be either or both.
-
- %@TE: 50 2622 02 34 44 @%
-
- The Master Height, Master Units, and Min and Max Scale fields are used on
- devices that can scale fonts linearly to any size. On devices that do not
- scale fonts, these numbers should all be equal to the value in the Height
- field from the Basic Metrics dialog box. %@NL@%
-
- All these fields come from the EXTTEXTMETRIC structure, which was defined in
- Section 2.3.3, "EXTTEXTMETRIC Data Structure." %@NL@%
-
-
- %@3@%%@CR:C6A00030007 @%%@AB@%3.3.3 The Effects Metrics Dialog Box%@AE@%%@EH@%%@NL@%
-
- This menu item is disabled (gray) until you specify the extended metrics.
- The information you can then specify in this dialog box tells the driver how
- to synthesize effects such as underlining and superscripting while allowing
- for the per-font, per-size customization of these effects. It also forms the
- remainder of the EXTTEXTMETRIC structure in the .PFM file. %@NL@%
-
- The effects of interest are superscripting, subscripting, underlining,
- double underlining, and strikethroughs. Two numbers are required: the
- vertical position of the effect and its size. Offsets are measured downward
- from the baseline of the font, which means that strikeouts and superscripts
- will generally have negative offsets. The size specifies the thickness of
- lines in font units for the line effects, or the height in font units for
- super- and subscripts. For double underlines, you may specify the upper and
- lower lines independently. %@NL@%
-
-
- %@2@%%@CR:C6A00030008 @%%@AB@%3.4 The Tables Menu%@AE@%%@EH@%%@NL@%
-
- This popup menu contains three selections: Widths..., Kerning Pairs..., and
- Kerning Track... . Since these are only appropriate for proportional-width
- fonts, they are grayed for fixed-pitch fonts. %@NL@%
-
- The width table contains the exact specification, per-character, of the
- widths of characters in proportional fonts. Track- and pair-kerning are used
- to fine tune character spacing. %@NL@%
-
-
- %@3@%%@CR:C6A00030009 @%%@AB@%3.4.1 The Width Table Dialog Box%@AE@%%@EH@%%@NL@%
-
- The Width Table dialog box has a scrollable list box containing all the
- characters and their widths, represented by decimal numbers in font units.
- Notice that, since this table is an absolute requirement for all
- proportional fonts, you must set the font pitch to proportional and the
- first and last characters in the Basics... dialog box before entering a
- width table. %@NL@%
-
- Just above the list box is a label number with an edit control next to it.
- Whenever a character is selected from the list box, the label changes to the
- character's code, and the edit control is changed to its width. The width
- can then be changed. %@NL@%
-
- To commit the width change to the width table in the listbox, you must click
- on the Width pushbutton. Since Width is the default button in this dialog
- box, you can also just press ENTER after working in the edit control box. If
- the character is not the last one in the font, clicking on Width or pressing
- ENTER also causes the selection to be advanced to the next character, which
- enables you to enter quickly the entire width table. %@NL@%
-
-
- %@3@%%@CR:C6A00030010 @%%@AB@%3.4.2 The Pair Kerning Table Dialog Box%@AE@%%@EH@%%@NL@%
-
- You can fine tune character spacing for proportional fonts by using
- pair-kerning. The Pair Kerning Table dialog box consists of a list box
- containing character pairs and the amount of space to insert or delete
- between them. A negative kern amount (given in font units) specifies tighter
- spacing, while a positive amount spreads characters out. %@NL@%
-
- The three edit controls are for the From and To characters and the kerning
- amount. If you select a kern pair in the list box, the editor displays for
- modification the values in the structure. %@NL@%
-
- There are three buttons for manipulating the Pair Kerning Table: %@NL@%
-
-
- ■ Add, which adds to the table the kern pair in the edit controls.%@NL@%
-
- ■ Delete, which removes from the list box the selected kern pair.%@NL@%
-
- ■ Change, which replaces the selected kern pair with the contents of the
- edit control.%@NL@%
-
-
- Notice that the Pair Kerning Table is sorted; adding or replacing a pair
- does not give it a particular position in the table. %@NL@%
-
- As in the other dialog boxes, the OK button causes the table to be committed
- to the .PFM file, and the Cancel button will end the dialog without saving
- the changes to the table. %@NL@%
-
-
- %@3@%%@CR:C6A00030011 @%%@AB@%3.4.3 The Track Kerning Table Dialog Box%@AE@%%@EH@%%@NL@%
-
- You enter values into the Track Kerning Table in the same manner as for the
- Pair Kerning Table. There are five fields to consider. %@NL@%
-
- For the kerning degree, negative values specify tighter kerning, and
- positive values specify looser kerning. The minimum size specifies the
- smallest size in font units for which track-kerning applies, and the maximum
- size specifies the largest font. %@NL@%
-
- The minimum amount specifies the amount of track-kerning to apply to fonts
- of the minimum size and below. The maximum amount is the track-kerning to
- apply to all fonts at least as large as the maximum size. %@NL@%
-
-
- %@2@%%@CR:C6A00030012 @%%@AB@%3.5 The Driver Menu%@AE@%%@EH@%%@NL@%
-
- The PCL printer is currently the only supported printer in the Driver menu.
- The PCL Driver dialog box contains information specific to the PCL driver
- for HP LaserJet-type printers. The fields are as follows: %@NL@%
-
- %@TH: 70 2522 02 15 32 32 @%
- Field Description
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%Symbol Set%@AE@% Specifies the HP-defined
- symbol set for a font. (See
- the %@AI@%HP LaserJet Printer %@AE@%
- %@AI@%Technical Reference Manual%@AE@% for
- definitions of these symbol
- sets.) The following are the
- currently defined symbol sets
- (selectable with individual
- radio buttons):
-
- User Defined
- Roman 8
- Kana 8
- Math 8
- U.S. ASCII
- Line Draw
- Math Symbols
- U.S. Legal
- Roman Ext.
- E.C.M.A. 94
- ISO Den/Nor
- ISO U.K.
- ISO France
- ISO Germany
- ISO Italy
- ISO Sweden/Finland
- ISO Spain
- Generic 8
- Generic 7
-
- %@AB@%Mem Usage%@AE@% An approximation of the amount
- in the printer of memory that
- the soft font requires. This
- is given in Section 11.4.3,
- "Device-Specific Data
- Structure," of Part 2, "The
- PCL Driver," as the following
- formula:
-
- ((sum of all character widths
- + 7) >> 3) * height + 63
-
- %@AB@%Escape String%@AE@% This is the escape string you
- send to the printer to select
- the font. It may contain any
- PCL commands. You may use the
- following special sequences to
- enter control characters:
-
- \e - escape (ASCII 27, 0x1b)
-
- \[ - escape (ASCII 27, 0x1b)
-
- \n - line feed (ASCII 10, 0xa)
-
- \r - carriage return (ASCII 13,
- 0xd)
-
- \xnn - hexadecimal character code
-
- \nnn - octal character code
-
- Notice that when the PFM
- Editor displays an escape
- string, it converts all
- non-ASCII printing characters
- to the hexadecimal format \xnn.
-
- %@TE: 70 2522 02 15 32 32 @%
-
- As in the other dialog boxes, the OK button causes the items to be committed
- to the .PFM file, and the Cancel button ends the dialog without saving
- changes. %@NL@%
-
-
- %@2@%%@CR:C6A00030013 @%%@AB@%3.6 Creating .PCM Files%@AE@%%@EH@%%@NL@%
-
- The PCL driver uses printer cartridge metric (PCM) files to define
- cartridges other than built-in Hewlett-Packard(R) cartridges. .PCM files are
- essentially a collection of .PFM files (one for each font in the cartridge).
- %@NL@%
-
- To make a .PCM file, first create the individual .PFM files for each of the
- cartridge fonts. You can create .PFM files easily with the Printer Font
- Installer. Simply add the font, which must be in the HPPCL format. The
- Printer Font Installer will scan automatically the PCL font and create the
- .PFM file. Use the PFM Editor to edit the file. We recommend that you verify
- all the fields and values. Also, notice that the Printer Font Installer does
- %@AI@%not%@AE@% enter the font escape string. You must do this in the PFM Editor. %@NL@%
-
- After you have created all the .PFM files and saved them to disk in one
- directory, choose the File menu's Create PCM File... option to have a dialog
- box appear and prompt you for a .PCM filename. Put this file in the same
- directory as its constituent .PFM files. %@NL@%
-
- After you enter a filename and click on the OK button, a second dialog box
- will appear with the .PCM filename in a static control at the top. The first
- edit control in the dialog box enables you to enter the cartridge title,
- which must be a non-empty title (i.e., you must fill in the edit control).
- This title is the string placed in the cartridge selection list box in the
- driver's Printer Setup (device-mode) dialog box. Verify that the correct
- font escape string is defined for each .PFM file. %@NL@%
-
- The PFM Editor places a list of .PFM files, that are in the same directory
- as the target .PCM file, in a list box on the left side of the dialog box.
- You may select one or more of these files and move them to the right-hand
- "selected" list box by clicking the Select button (or double-clicking a
- filename). You can remove selected .PFM files or place them back in the
- left-hand "available" list box by selecting filenames in the same manner in
- the right-hand "selected" list box. %@NL@%
-
- When you click the OK button, the .PFM files that appear in the right-hand
- list box are placed in the .PCM file. To create the .PCM file, you must
- select at least one .PFM file and have a non-empty title string. %@NL@%
-
- When the editor creates the .PCM file, it also creates a text file in the
- same directory with the same name and the extension .INI. On the first line
- of this .INI file is the title of the cartridge; the list of .PFM files
- follows on subsequent lines, one filename per line. Whenever the PCM dialog
- box is chosen, the PFM Editor looks for the .INI file and uses the stored
- data to initialize the title string and the list of selected .PFM files. %@NL@%
-
- Notice, however, that editing a .PFM file will not cause the .PCM file to be
- updated. The PFM Editor cannot directly edit .PCM files. Therefore, if you
- make a change in a .PFM file, you must rebuild the .PCM file. %@NL@%
-
-
- %@2@%%@CR:C6A00030014 @%%@AB@%3.7 The PFM Editor Error Messages%@AE@%%@EH@%%@NL@%
-
- The following error messages can appear when using the PFM Editor. A brief
- explanation of why it appears is given after each message. %@NL@%
-
-
- %@4@%%@AB@%%@AB@%Break character not in character set%@AE@%%@AE@%%@EH@%%@NL@%
-
- The break character must be between the first and last character in the
- character set, inclusive. %@NL@%
-
-
- %@4@%%@AB@%%@AB@%Can't find filename, ignored%@AE@%%@AE@%%@EH@%%@NL@%
-
- The .INI file for a .PCM file contained a reference to a .PFM file that is
- not in the same directory or that does not have the .PFM extension. %@NL@%
-
-
- %@4@%%@AB@%%@AB@%Can't open filename, ignored%@AE@%%@AE@%%@EH@%%@NL@%
-
- The given .PFM file was in the current directory when the list box of
- available .PFM files was created. However, when the attempt to write the
- .PCM file out was made, the .PFM file could not be opened to read it. %@NL@%
-
-
- %@4@%%@AB@%%@AB@%Can't write the PCM file%@AE@%%@AE@%%@EH@%%@NL@%
-
- An error occurred while writing to the .PCM file or to the associated .INI
- file. %@NL@%
-
-
- %@4@%%@AB@%Changing the character range will invalidate the width table%@AE@%%@EH@%%@NL@%
-
- If you enter a width table and, then, change the first and last characters,
- the width table will no longer be valid. This really should not occur if you
- have a specific font in mind when you create a .PFM file. %@NL@%
-
-
- %@4@%%@AB@%Couldn't save file %@AB@%filename%@AE@%%@AE@%%@EH@%%@NL@%
-
- The file specified could not be saved to disk due to an error opening or
- writing the file, or to attempting to write over a Read-Only file, or to
- running out of disk space. %@NL@%
-
-
- %@4@%%@AB@%Default character not in character set%@AE@%%@EH@%%@NL@%
-
- The default character must be between the first and last character in the
- character set, inclusive. %@NL@%
-
-
- %@4@%%@AB@%Driver information not specified%@AE@%%@EH@%%@NL@%
-
- You attempted to save a file that does not contain PCL driver information. %@NL@%
-
-
- %@4@%%@AB@%Error creating the initialization file for %@AB@%filename%@AE@%%@AE@%%@EH@%%@NL@%
-
- The .INI file corresponding to the given file could not be opened. %@NL@%
-
-
- %@4@%%@AB@%Error creating the PCM file %@AB@%filename%@AE@%%@AE@%%@EH@%%@NL@%
-
- The .PCM file could not be opened due to a bad filename (such as a
- non-existent directory), to a pre-existing Read-Only file of the same name,
- or to being out of disk space. %@NL@%
-
-
- %@4@%%@AB@%filename contains the wrong driver information version%@AE@%%@EH@%%@NL@%
-
- This is a warning indicating that while the .PFM file appears to be in the
- correct format, the driver specific information contains a version number
- that this PFM Editor does not support. %@NL@%
-
-
- %@4@%%@AB@%filename contains the wrong header version number%@AE@%%@EH@%%@NL@%
-
- This is a warning indicating that the PFM header has a version number that
- this PFM Editor does not recognize. %@NL@%
-
-
- %@4@%%@AB@%filename does not contain driver information%@AE@%%@EH@%%@NL@%
-
- The .PFM file does not contain a PCL driver structure. %@NL@%
-
-
- %@4@%%@AB@%filename does not contain extended text metrics%@AE@%%@EH@%%@NL@%
-
- This is a warning that the .PFM file being read into the PFM Editor does not
- contain extended text metrics. %@NL@%
-
-
- %@4@%%@AB@%filename has been modified. Save before continuing?%@AE@%%@EH@%%@NL@%
-
- Enables you to save a file or abort an operation before doing something that
- will abandon a modified .PFM file, such as choosing New, Open..., or Exit. %@NL@%
-
-
- %@4@%%@AB@%filename is not a valid file name%@AE@%%@EH@%%@NL@%
-
- The filename given is invalid because it contains illegal characters or
- syntax errors. %@NL@%
-
-
- %@4@%%@AB@%filename is not a valid PFM file%@AE@%%@EH@%%@NL@%
-
- The specified file does not contain a .PFM file, or the .PFM file is either
- corrupted or from the wrong version. %@NL@%
-
-
- %@4@%%@AB@%Proportional font requires a width table%@AE@%%@EH@%%@NL@%
-
- You attempted to save a .PFM file that specifies a proportional font but
- does not contain a width table. %@NL@%
-
-
- %@4@%%@AB@%Unrecognized device %@AB@%devicename%@AE@%%@AE@%%@EH@%%@NL@%
-
- The PFM contains a device name that the PFM Editor does not recognize. The
- only name recognized currently is "PCL/HP Laserjet." %@NL@%
-
-
- %@4@%%@AB@%Width table will need to be reentered%@AE@%%@EH@%%@NL@%
-
- This is another warning that changing your character range invalidates your
- width table. %@NL@%
-
-
- %@4@%%@AB@%Write over original %@AB@%filename?%@AE@%%@AE@%%@EH@%%@NL@%
-
- A file with the same name as the filename you specified in the Save As...
- dialog already exists. Click Yes to write over the old file or No to choose
- a new name. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00040001 @%%@1@%%@AB@%Chapter 4 .PFM Files for PostScript Printers%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter discusses the format of .PFM files designed specifically for
- PostScript printers. We recommend that you read Chapter 2, "Printer Font
- Metrics (PFM) Files," first for a description of the general format of .PFM
- files. %@NL@%
-
-
- %@2@%%@CR:C6A00040002 @%%@AB@%4.1 Format of the PostScript .PFM File%@AE@%%@EH@%%@NL@%
-
- The PostScript .PFM file does not contain a width table. Because PostScript
- fonts are scalable, the widths are contained in the extent table. The
- structures in the file are organized as follows: %@NL@%
-
-
- 1. PFM header structure (PFMHEADER)%@NL@%
-
- 2. PFM extension structure (PFMEXTENSION), must contain a non-NULL
- pointer to %@AB@%dfExtMetricsOffset%@AE@%, %@AB@%dfExtentTable, %@AE@%and %@AB@%dfDriverInfo%@AE@%%@NL@%
-
- 3. Driver name pointed to by %@AB@%dfDevice%@AE@%%@NL@%
-
- 4. Microsoft Windows font name pointed to by %@AB@%dfFace%@AE@%%@NL@%
-
- 5. Extended Text Metric structure (EXTTEXTMETRIC) pointed to by%@AB@%
- %@AB@% dfExtMetricsOffset%@AE@%%@NL@%
-
- 6. Extent table pointed to by %@AB@%dfExtentTable%@AE@%%@NL@%
-
- 7. PostScript font name pointed to by %@AB@%dfDriverInfo%@AE@%%@NL@%
-
- %@STUB@% The file may also contain:%@NL@%
-
- 8. Pair-kern table pointed to by %@AB@%dfPairKernTable%@AE@%%@NL@%
-
- 9. Track-kern table pointed to by %@AB@%dfTrackKernTable%@AE@%%@NL@%
-
-
- This is the recommended organization of the file. The PFM header must be the
- first structure in the file and the PFM extension structure must be the
- second one. The remainder of the structures may appear in any order. Their
- locations are indicated by the offsets in the PFM header and PFM extension
- structures. %@NL@%
-
- The Windows PostScript driver assumes all PostScript fonts are scalable
- fonts, so it ignores the %@AB@%dfPoints %@AE@%and %@AB@%dfPixHeight %@AE@%fields in the PFM header.
- The fields %@AB@%dfAvgWidth %@AE@%and %@AB@%dfMaxWidth %@AE@%are in units of 1000 units-per-em. %@NL@%
-
- Although the PostScript naming convention includes the attributes of the
- font (i.e., bold and italic) in the font name, the attributes should be
- stripped from the font name and represented in the %@AB@%dfWeight %@AE@%and %@AB@%dfItalic
- %@AB@%%@AE@%fields in the PFM header. %@NL@%
-
- The extent table is an array of WORDs containing the unscaled widths of the
- characters and assuming 1000 units-per-em. The range of the table should be
- from %@AB@%dfFirstChar %@AE@%to %@AB@%dfLastChar%@AE@%. The size of the table should be %@AB@%dfLastChar %@AE@%-%@AB@%
- %@AB@%dfFirstChar %@AE@%+ 1 WORD. %@NL@%
-
- Pair-kern values should be in the same 1000 units-per-em measurement as the
- extents. As of this writing, we do not know of any application that uses the
- track-kern table. %@NL@%
-
-
- %@2@%%@CR:C6A00040003 @%%@AB@%4.2 EXTTEXTMETRIC Data Structure%@AE@%%@EH@%%@NL@%
-
- The definition of %@AB@%etmMasterHeight %@AE@%and %@AB@%etmMasterUnits%@AE@% is provided in detail
- in Chapter 2, "Printer Font Metrics (PFM) Files." The PostScript driver
- assumes the following values for each font: %@NL@%
-
- %@AB@%dfVertRes%@AE@% = 300 %@NL@%
-
- %@AB@%etmMasterHeight%@AE@% = 300 %@NL@%
-
- %@AB@%etmMasterUnits%@AE@% = 1000 %@NL@%
-
- In other words, the driver assumes all fonts use Adobe's standard 1000
- units-per-em method for describing a font. You must build the extent table
- based upon 1000 units-per-em to be consistent with this restriction in the
- driver. %@NL@%
-
- The driver also assumes that the font may be scaled to any point size the
- application requests. We recommend that the true scaling range of the font
- be indicated in %@AB@%etmMinScale %@AE@%and %@AB@%etmMaxScale%@AE@% (in device units, at 300 dpi).
- Even though the driver currently ignores these fields, it may use them in
- the future. %@NL@%
-
- Because the Windows PostScript driver assumes all PostScript fonts are
- scalable fonts, it ignores the %@AB@%etmPointSize %@AE@%field. Please notice that
- %@AB@%etmSize %@AE@%is not the point size but, rather, the size (i.e., the number of
- bytes) of the EXTTEXTMETRIC structure. %@NL@%
-
- As of this writing, we do not know of any application that uses the fields
- in the EXTTEXTMETRIC structure except for %@AB@%etmKernPairs%@AE@%. If your font
- contains kern pairs, you must fill in the EXTTEXTMETRIC structure to
- indicate the number of kern pairs. Do not leave the other fields blank; fill
- them in with reasonable values in the event an application does use them. %@NL@%
-
-
- %@2@%%@CR:C6A00040004 @%%@AB@%4.3 Driver-Specific Data Structure%@AE@%%@EH@%%@NL@%
-
- The driver-specific data structure pointed to by %@AB@%dfDriverInfo %@AE@%is a
- NULL-terminated string containing the PostScript name for the font. There
- are really two names for the font: %@NL@%
-
-
- 1. The Windows name for the font, such as "Tms-Rmn," which appears in
- the font list in the application's font dialog box.%@NL@%
-
- 2. The PostScript name for the font, which can vary by printer
- manufacturer and which the driver sends to the printer to select the
- font.%@NL@%
-
-
- Both strings must be NULL-terminated. The Windows name for the font is
- pointed to by %@AB@%dfFace %@AE@%and the PostScript name for the font is pointed to by
- %@AB@%dfDriverInfo%@AE@%. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00050001 @%%@1@%%@AB@%Chapter 5 .PFM Files for PCL Printers%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter discusses the format of .PFM files designed specifically for
- PCL printers. If you have not already done so, we recommend that you read
- Chapter 2, "Printer Font Metrics (PFM) Files," first for a general
- description of .PFM files. %@NL@%
-
-
- %@2@%%@CR:C6A00050002 @%%@AB@%5.1 Format of the PCL .PFM File%@AE@%%@EH@%%@NL@%
-
- The structures in the PCL .PFM file are organized as follows: %@NL@%
-
-
- 1. PFM header structure (PFMHEADER)%@NL@%
-
- 2. For variable-width fonts, an array of character widths from
- %@AB@%dfFirstChar %@AE@%to%@AB@% dfLastChar%@AE@%%@NL@%
-
- 3. PFM extension structure (PFMEXTENSION)%@NL@%
-
- 4. Driver name pointed to by %@AB@%dfDevice%@AE@%%@NL@%
-
- 5. Microsoft Windows font name pointed to by %@AB@%dfFace%@AE@%%@NL@%
-
- %@STUB@% The file may also contain:%@NL@%
-
- 6. Extended Text Metric structure (EXTTEXTMETRIC) pointed to by %@AB@%
- %@AB@% dfExtMetricsOffset%@AE@%%@NL@%
-
- 7. Driver-specific structure pointed to by %@AB@%dfDriverInfo%@AE@%%@NL@%
-
- 8. Pair-kern table pointed to by %@AB@%dfPairKernTable%@AE@%%@NL@%
-
- 9. Track-kern table pointed to by %@AB@%dfTrackKernTable%@AE@%%@NL@%
-
-
- This is the recommended organization of the file. The PFM header must be the
- first structure in the file followed by the width table and the PFM
- extension structure. The remainder of the structures may appear in any
- order. Their locations are indicated by the offsets in the PFM header and
- PFM extension structures. %@NL@%
-
- The width table is present if %@AB@%dfPixWidth%@AE@% is zero, which indicates a
- variable-width font. (Otherwise, for fixed-width fonts, the width of all the
- characters in the font equals the value in%@AB@% dfPixWidth%@AE@%.) The width table is
- an array of WORDs containing the widths in device units of characters in the
- range from %@AB@%dfFirstChar%@AE@% to %@AB@%dfLastChar%@AE@%. The width of a character %@AI@%c %@AE@%can be
- located using the formula: %@NL@%
-
- %@AS@% width = WidthTable [c - dfFirstChar]%@AE@%
-
- The size of the table is %@AB@%dfLastChar%@AE@% - %@AB@%dfFirstChar%@AE@% + 2 WORDs. The last WORD
- is not used and is set to NULL; it should be present for compatability with
- the Windows screen-font file format. %@NL@%
-
-
- %@2@%%@CR:C6A00050003 @%%@AB@%5.2 EXTTEXTMETRIC Data Structure%@AE@%%@EH@%%@NL@%
-
- As of this writing, we do not know of any application that uses the fields
- in the EXTTEXTMETRIC structure except for %@AB@%etmKernPairs%@AE@%. If your font
- contains kern pairs, you must fill in the EXTTEXTMETRIC structure to
- indicate the number of kern pairs. Do not leave the other fields blank; fill
- them in with reasonable values in the event an application does use them. %@NL@%
-
- In the future, there will be .PFM files that describe scalable PCL fonts. To
- guarantee that your raster fonts are never interpreted as scalable fonts,
- make sure that the fields for scaling information in the EXTTEXTMETRIC
- structure indicate a non-scaling font: %@NL@%
-
- %@AB@%etmMasterHeight %@AE@%= %@AB@%etmMasterUnits %@AE@%= %@AB@%etmMinScale %@AE@%= %@AB@%etmMaxScale %@AE@%= %@AB@%dfPixHeight %@AE@%%@NL@%
-
- See Section 5.5, "Scalable PCL Fonts," for information on how to write a
- .PFM file for scalable PCL fonts. %@NL@%
-
-
- %@2@%%@CR:C6A00050004 @%%@AB@%5.3 Driver-Specific Data Structure%@AE@%%@EH@%%@NL@%
-
- The SYMBOLSET field is defined as follows: %@NL@%
-
- %@AS@% typedef enum{
- %@AS@% epsymUserDefined,/* Enumerated type SYMBOLSET */
- %@AS@% epsymRoman8,
- %@AS@% epsymKana8,
- %@AS@% epsymMath8,
- %@AS@% epsymUSASCII,
- %@AS@% epsymLineDraw,
- %@AS@% epsymMathSymbols,
- %@AS@% epsymUSLegal,
- %@AS@% epsymRomanExt,
- %@AS@% epsymISO_DenNor,
- %@AS@% epsymISO_UK,
- %@AS@% epsymISO_France,
- %@AS@% epsymISO_German,
- %@AS@% epsymISO_Italy,
- %@AS@% epsymISO_SwedFin,
- %@AS@% epsymISO_Spain,
- %@AS@% epsymGENERIC7,
- %@AS@% epsymGENERIC8,
- %@AS@% epsymECMA94
- %@AS@% }SYMBOLSET;%@AE@%
-
- The TRANSTABLE field is defined as follows: %@NL@%
-
- %@AS@% typedef struct{
- %@AS@% /* type TRANSTABLE */
- %@AS@% SYMBOLSET symbolSet; /* kind of translation table */
- %@AS@% DWORD offset; /* location of user-defined table */
- %@AS@% WORD len; /* length (in bytes) of table */
- %@AS@% BYTE firstchar,lastchar; /* table range */
- %@AS@% }TRANSTABLE%@AE@%
-
- The following is the driver-specific data structure pointed to by
- %@AB@%dfDriverInfo %@AE@%: %@NL@%
-
- %@AS@% typedef struct{
- %@AS@% WORD epSize; /* size of this data structure */
- %@AS@% WORD epVersion; /* number indicating version of struct */
- %@AS@% DWORD epMemUsage; /* amt of memory font takes up in printer */
- %@AS@% DWORD epEscape; /* pointer to escape that selects the font */
- %@AS@% TRANSTABLE xtbl; /* character set translation info */
- %@AS@% }DRIVERINFO;%@AE@%
-
- The fields in the structure are defined as follows: %@NL@%
-
- %@TH: 26 1320 02 34 44 @%
- Field Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%epSize%@AE@% The size of this structure (number of
- bytes)
-
- %@AB@%epVersion%@AE@% The version of this structure, currently 1
-
- %@AB@%epMemUsage%@AE@% The amount of %@AI@%printer%@AE@% memory, in bytes,
- that this font uses
-
- %@AB@%epEscape%@AE@% The byte offset from the beginning of the
- file to an escape string invoking the font.
-
- %@AB@%xtbl.xtSymbolSet%@AE@% Symbol set ID, such as%@AB@% epsymRoman8 %@AE@%or %@AB@%%@AE@%
- %@AB@%epsymECMA94%@AE@%
-
- %@AB@%xtbl.xtOffset%@AE@% The byte offset from beginning of the file
- to a custom translation table
-
- %@AB@%xtbl.xtLen%@AE@% The size of the custom translation table
-
- %@AB@%xtbl.xtFirstChar%@AE@% The first character translated in the
- table
-
- %@AB@%xtbl.xtLastChar%@AE@% The last character translated
-
- %@TE: 26 1320 02 34 44 @%
-
- The purpose of the translation table is to enable the driver to translate
- the font from the character set indicated in the %@AB@%dfCharSet %@AE@%field into the
- printer-specific character set. When %@AB@%xtbl.xtSymbolSet%@AE@% equals
- %@AB@%epsymUserDefined%@AE@%, the driver would use the custom translation table pointed
- to by %@AB@%xtbl.xtOffset%@AE@%. However, the Windows PCL driver currently ignores all
- fields in the TRANSTABLE structure except %@AB@%xtbl.xtSymbolSet%@AE@%. In other words,
- even if you put in a custom translation table for future support, the
- current driver will ignore it. %@NL@%
-
- The Windows PCL driver supports five possible character translations. It
- determines which internal translation table to use based upon the value of
- %@AB@%xtbl.xtSymbolSet%@AE@%. The tables are as follows: %@NL@%
-
- %@TH: 7 487 02 28 48 @%
- Symbol Set Translation Table
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%epsymRoman8%@AE@% Roman8_Trans%@AI@%%@AE@%
- %@AB@%epsymUSASCII%@AE@% USASCII_Trans%@AB@%%@AE@%
- %@AB@%epsymGENERIC7%@AE@% GENERIC7_Trans
- %@AB@%epsymGENERIC8%@AE@% GENERIC8_Trans%@AB@%%@AE@%
- %@AB@%epsymECMA94%@AE@% ECMA94_Trans%@AB@%%@AE@%
- %@TE: 7 487 02 28 48 @%
-
- The translation tables are stored in TRANS.H. For %@AB@%epsymRoman8%@AE@%, %@AB@%epsymUSASCII%@AE@%,
- and%@AB@% epsymECMA94%@AE@%, the driver attempts to derive Windows ANSI from the symbol
- set. For %@AB@%epsymGENERIC8 %@AE@%and %@AB@%epsymGENERIC7%@AE@%, the driver simply lets an 8- or
- 7-bit symbol set pass through to the printer unchanged. %@NL@%
-
- The driver assumes the width table in the .PFM file contains the widths of
- the characters %@AI@%after%@AE@% translation. If you set %@AB@%epsymRoman8%@AE@%, %@AB@%epsymUSASCII%@AE@%, or
- %@AB@%epsymECMA94 %@AE@%for %@AB@%xtbl.xtSymbolSet%@AE@%, you must use the appropriate translation
- table in TRANS.H to do an inverse translation when building the width table.
- %@NL@%
-
- A portion of the translation table for %@AB@%epsymRoman8 %@AE@%looks like this: %@NL@%
-
- %@AS@% #define HP_DF_CH ((BYTE) 0x7F)
- %@AS@%
- %@AS@% unsigned char <+>Roman8_Trans[] = {
- %@AS@% HP_DF_CH, NULL, /* 80 */
- %@AS@% HP_DF_CH, NULL, /* 81 */
- %@AS@% ...
- %@AS@% 'Y' , 0xa8, /* dd */
- %@AS@% 0xf0, NULL, /* de */
- %@AS@% 0xde, NULL, /* df */
- %@AS@% 0xc8, NULL, /* e0 */
- %@AS@% ...
- %@AS@% 0xef, NULL }; /* ff */%@AE@%
-
- The table translates characters in the range from 128 to 255. The driver
- uses the character it receives from the application to index into the
- translation table. It replaces the character with the first entry in the
- table. If the second entry is non-NULL, it overstrikes the first character
- with the second character. %@NL@%
-
- For example, when the driver detects character hex 0xDD (i.e., the Y-acute
- (Y) in the text stream), the driver will output a capital "Y" overstruck by
- the acute accent. When the overstrike character is present, the driver
- guarantees that the width of the character pair equals the width of the
- first character. %@NL@%
-
- If the driver-specific data structure is not present or %@AB@%xtbl.xtSymbolSet%@AE@%
- equals a symbol set other than %@AB@%epsymRoman8%@AE@%, %@AB@%epsymUSASCII%@AE@%, %@AB@%epsymECMA94%@AE@%,
- %@AB@%epsymGENERIC8%@AE@%, or %@AB@%epsymGENERIC7%@AE@%, the driver will default to %@AB@%epsymGENERIC8
- %@AB@%%@AE@%translation if %@AB@%dfLastChar %@AE@%is greater than 127 (an 8-bit font). Otherwise, it
- will use the %@AB@%epsymGENERIC7 %@AE@%translation. %@NL@%
-
-
- %@2@%%@CR:C6A00050005 @%%@AB@%5.4 Kerning Tables%@AE@%%@EH@%%@NL@%
-
- The pair-kern table follows the format described in Chapter 2, "Printer Font
- Metrics (PFM) Files." The kern amounts are in the same units as the
- character widths. %@NL@%
-
- As of this writing, we do not know of any application that uses the
- track-kern table. %@NL@%
-
-
- %@2@%%@CR:C6A00050006 @%%@AB@%5.5 Scalable PCL Fonts%@AE@%%@EH@%%@NL@%
-
- Currently, the Windows PCL driver supports only non-scaling PCL fonts. In
- the future, however, it may support scalable fonts if PCL printers with
- scaling fonts become available. The driver will detect scalable fonts by
- examining the %@AB@%etmMinScale %@AE@%and %@AB@%etmMaxScale %@AE@%fields in the EXTTEXTMETRIC
- structure. If they are equal, it will assume a non-scaling font. The font
- vendor should provide a .PFM file that follows this format: %@NL@%
-
-
- 1. PFM header structure (PFMHEADER). The %@AB@%dfPixHeight %@AE@%field must contain
- the height of a default font size (same as 12 points).%@NL@%
-
- 2. For variable-width fonts, an array of character widths from
- %@AB@%dfFirstChar %@AE@%to %@AB@%dfLastChar %@AE@%for the default point size (%@AB@%dfPixHeight%@AE@%)%@NL@%
-
- 3. PFM extension structure (PFMEXTENSION)%@NL@%
-
- 4. Driver name pointed to by %@AB@%dfDevice%@AE@%%@NL@%
-
- 5. Windows font name pointed to by %@AB@%dfFace%@AE@%%@NL@%
-
- 6. Extended Text Metric structure (EXTTEXTMETRIC) pointed to by
- %@AB@%dfExtMetricsOffset%@AE@%%@NL@%
-
- 7. Extent table pointed to by %@AB@%dfExtentTable%@AE@%%@NL@%
-
- 8. Device-specific data structure pointed to by %@AB@%dfDriverInfo%@AE@%. The
- %@AB@%epEscape%@AE@% field must be non-NULL (that is, a printer escape must be
- provided).%@NL@%
-
-
- Optionally, pair-kern and track-kern tables may be provided. The default
- font size and width table should be provided for consistency with the
- existing driver. A future release of the driver will check for the
- difference between %@AB@%etmMinScale %@AE@%and %@AB@%etmMaxScale%@AE@%. If they differ and
- %@AB@%dfExtMetricsOffset %@AE@%is non-NULL, the driver will assume a scalable font. %@NL@%
-
- An extent table must be supplied for scalable fonts. The extent table is an
- array of words containing the unscaled widths of the characters. The range
- of the table should be from %@AB@%dfFirstChar %@AE@%to %@AB@%dfLastChar%@AE@%. The size of the table
- should be %@AB@%dfLastChar %@AE@%-%@AB@% dfFirstChar %@AE@%+ 1 WORD. %@NL@%
-
- The driver will scale the characters using the formulas described in Section
- 2.3.4, "Font Scaling: etmMasterHeight and etmMasterUnits." The driver will
- not support the ENABLERELATIVEWIDTHS escape, as this would be difficult to
- support with scaling and non-scaling fonts intermixed (scaling fonts use
- font units; non-scaling fonts use device units). %@NL@%
-
- The driver will assume %@AB@%dfVertRes%@AE@% equals 300 dpi. Remember that
- %@AB@%etmMasterHeight%@AE@%, %@AB@%etmMinScale%@AE@%, and %@AB@%etmMaxScale%@AE@% must be expressed in device
- units. %@NL@%
-
- If the target printer does not force its widths to 300 dpi units (i.e.,
- %@AB@%etmMasterUnits%@AE@% does not equal %@AB@%etmMasterHeight%@AE@%), the driver will attempt to
- correct for roundoff error between the printer's units and the driver's
- imposed 300 dpi units. The driver will correct for the error by maintaining
- a running roundoff value during output of a single line of text. %@NL@%
-
- You must provide the driver-specific data structure. As described earlier,
- %@AB@%xtbl.xtSymbolSet%@AE@% must be equal to %@AB@%epsymRoman8%@AE@%, %@AB@%epsymUSASCII%@AE@%, %@AB@%epsymECMA94%@AE@%,
- %@AB@%epsymGENERIC8%@AE@%, or %@AB@%epsymGENERIC7%@AE@%. Remember to use an inverse translation of
- the tables provided in TRANS.H to build the extent table if you select
- %@AB@%epsymRoman8%@AE@%, %@AB@%epsymUSASCII%@AE@%, or %@AB@%epsymECMA94%@AE@%. %@NL@%
-
- You must also provide an escape string pointed to by %@AB@%epEscape%@AE@% in the
- driver-specific data structure. The driver will send this escape to the
- printer to select the font. %@NL@%
-
- If pair or track kerns exist, they should use the same units as the
- character widths in the extent table. %@NL@%
-
-
-
-
-
-
- %@CR:C6A-Part 02 @%%@1@%%@AB@%PART II The PCL Driver%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This part presents technical aspects of the version 3.3 Microsoft Windows
- PCL / HP LaserJet printer driver. It should be read by technical support
- specialists, font vendors, Windows application developers, and advanced
- users. Because most of the issues with PCL printing under Windows involve
- fonts, most of this document is dedicated to a discussion of fonts and font
- management. %@NL@%
-
- We assume that the audience for this document has knowledge of how to use
- the PCL driver's Printer Font Installer (documented in Part 1, "Fonts," and
- under Help in the "Printer Font Installer" dialog box), build a Windows .PFM
- (Printer Font Metrics) file, and use MS-DOS(R) and a text editor. %@NL@%
-
- Knowledge of the Printer Font Installer is the basic requirement for
- understanding Chapters 8 through 12. Knowledge of .PFM files is important
- for developers and font vendors reading the sections involving .PFM file
- generation. Knowledge of MS-DOS is important for executing the
- recommendations outlined in Chapter 12, "Installer Scenarios." %@NL@%
-
-
-
-
-
-
- %@CR:C6A00060001 @%%@1@%%@AB@%Chapter 6 Overview of the PCL Driver%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- The version 3.3 Microsoft Windows PCL/HP LaserJet printer driver includes
- many enhancements over the previous versions, along with a few bug fixes.
- The following is a brief list highlighting the most important ones: %@NL@%
-
-
- 1. Carried over from version 3.2 was the ability to add additional font
- support for cartridges by using the Soft Font Installer and for
- providing an easy mechanism, with our new PFM Editor, for technicians
- with some font experience to create the information file needed by the
- driver to support the cartridge.%@NL@%
-
- %@STUB@% With the PFMEDIT utility, printer and font vendors will find it easy
- to create .PFM files by simply plugging in the relevant font data.
- They can then define all the fonts in a cartridge in multiple .PFM
- files and consolidate this information into one .PCM file.%@NL@%
-
- %@STUB@% Once the .PCM file is installed, you can "Exit" to the main
- device-mode dialog box and see the cartridge listed at the end of the
- "Cartridges" list box. The cartridge can now be selected in the same
- manner as the other cartridges listed in the box.%@NL@%
-
- 2. The name of the Soft Font Installer was changed to the Printer Font
- Installer to better describe its versatility. The installer was also
- removed from the driver and made into a separate dynamic-link library
- (DLL) called FINSTALL.DLL.%@NL@%
-
- 3. All the cartridge font information was removed from the driver and
- placed into individual Printer Cartridge Metrics (PCM) files. Several
- .PCM files are prebuilt into the driver.%@NL@%
-
- 4. We enhanced the dialog box interface for the main driver and the
- Printer Font Installer for the following reasons:
-
- ■ To take advantage of new controls supported in Windows 3.0.%@NL@%
-
- ■ To make the interface more consistent with Presentation Manager
- printer dialogs.%@NL@%
- %@NL@%
-
- 5. We fine tuned the driver to use less fixed memory and did other
- performance tuning.%@NL@%
-
- 6. We provided support for the new driver initialization API, which is
- documented in the %@AI@%Microsoft Windows Software Development Kit%@AE@%. %@NL@%
-
- 7. We provided support for raster compression on the HP LaserJet IIP.
- %@NL@%
-
-
-
-
-
-
-
- %@CR:C6A00070001 @%%@1@%%@AB@%Chapter 7 WIN.INI Flags%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter describes the flags that the Microsoft Windows PCL / HP
- LaserJet printer driver writes to and reads from the WIN.INI file. Most of
- these flags are controlled either directly or indirectly by the user via the
- driver-specific device-mode dialog box and the Printer Font Installer.
- Normally, the user should have no need to modify these flags manually. %@NL@%
-
- The %@AI@%options%@AE@% and %@AI@%white_text%@AE@% flags are the only flags to which the user does
- not have access via a dialog box. The user would have to edit the WIN.INI
- file to modify these flags. %@NL@%
-
- The driver places and updates flags in WIN.INI via Windows functions.
- However, notice that: %@NL@%
-
-
- 1. The driver has no control over the order of entries in the WIN.INI
- file.%@NL@%
-
- 2. The driver does not currently "delete" entries from the WIN.INI file.%@NL@%
-
-
- The order of entries in the WIN.INI file is insignificant and has no effect
- on the operation of the driver. The driver does not delete an entire entry
- line from WIN.INI; it removes only everything to the right of the equal sign
- (=). The title text to the left of the equal sign remains there forever, or
- until the user manually removes it. %@NL@%
-
-
- %@2@%%@CR:C6A00070002 @%%@AB@%7.1 Summary of Flags%@AE@%%@EH@%%@NL@%
-
- The WIN.INI flags are summarized below. A detailed description of each flag
- and its use is provided in the next section. %@NL@%
-
- %@AB@%Flag%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%cartindex%@AE@%%@AI@%n%@AE@% The cartridge(s) selected in the
- cartridge listbox
-
- %@AB@%Cartridge%@AE@%%@AI@%n%@AE@% The name of a .PCM file
-
- %@AB@%copies%@AE@% The number of uncollated copies of each
- page
-
- %@AB@%duplex%@AE@% The duplex printing option (0=simplex)
-
- <%@AB@%filename%@AE@%> Used by Printer Font Installer to track
- permanently downloaded font filenames
-
- %@AB@%Flag%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AI@%%@AE@%
-
- %@AB@%FontSummary%@AE@% The name of the font information file
- built by the driver
-
- %@AB@%fsvers%@AE@% The version of the FontSummary file
-
- %@AB@%MaxFontSummary%@AE@% The maximum allowable size (in Mb) of
- the FontSummary file
-
- %@AB@%numcart%@AE@% The number of cartridges the user has
- selected
-
- %@AB@%options%@AE@% On/off settings for printer rest, force
- load of soft font information, and allow
- vertical clipping
-
- %@AB@%orient%@AE@% Printer orientation
-
- %@AB@%paper%@AE@% Paper size selection
-
- %@AB@%prtcaps%@AE@% A bit field representing the printer
- capabilities
-
- %@AB@%prtindex%@AE@% The index to the currently selected
- printer (includes memory option)
-
- %@AB@%prtresfac%@AE@% The printer resolution factor
- (determines resolution in dots-per-inch)
-
- %@AB@%sfdir%@AE@% The path to the directory containing
- soft fonts
-
- %@AB@%sfdlbat%@AE@% The path and filename of the batch file
- that downloads permanent fonts to the
- printer
-
- %@AB@%sfdlstyle%@AE@% The manner in which permanent soft fonts
- should be downloaded
-
- %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% The soft font entry or entries in the
- WIN.INI file
-
- %@AB@%SoftFonts%@AE@% The number of soft fonts and cartridges
- listed in the WIN.INI file
-
- %@AB@%tray%@AE@% The input paper tray
-
- %@AB@%white_text%@AE@% Used for setting the driver's
- sensitivity to detecting white text
-
-
- %@2@%%@CR:C6A00070003 @%%@AB@%7.2 Details on Flags%@AE@%%@EH@%%@NL@%
-
- This section contains a detailed description of each flag and how to use it.
- %@NL@%
-
-
- %@3@%%@CR:C6A00070004 @%%@AB@%7.2.1 Cartindex%@AB@%n%@AE@%%@AE@%%@EH@%%@NL@%
-
- This flag provides the cartridge selected in the cartridge list box. The
- number of selectable cartridges depends on the printer. The driver is
- capable, though, of selecting up to eight cartridges at one time. %@NL@%
-
- The following is the flag for the first cartridge the user selects: %@NL@%
-
- %@AB@%cartindex%@AE@%=%@AI@%n%@AE@% %@NL@%
-
- The flag for the second cartridge that the user selects is as follows: %@NL@%
-
- %@AB@%cartindex1%@AE@%=%@AI@%n%@AE@% %@NL@%
-
- Subsequent flags are %@AB@%cartindex2%@AE@%, %@AB@%cartindex3%@AE@%, %@AB@%cartindex4%@AE@%, %@AB@%cartindex5%@AE@%,
- %@AB@%cartindex6%@AE@%, and %@AB@%cartindex7%@AE@%. The number of flags in use (i.e., the number of
- cartridges the user has selected) is contained in the %@AB@%numcarts%@AE@% flag. %@NL@%
-
- The cartridge index (%@AI@%n%@AE@% in the above examples) is a number representing the
- selected font cartridge. The cartridge index depends on the order in which
- the user selects available cartridges or installs new ones. %@NL@%
-
-
- %@3@%%@CR:C6A00070005 @%%@AB@%7.2.2 Cartridgen%@AE@%%@EH@%%@NL@%
-
- This flag is used in conjunction with the %@AB@%cartindex%@AE@%%@AI@%n%@AE@% flag. If another value
- is used in the %@AB@%cartindex%@AE@%%@AI@%n%@AE@% flag, the PCL driver looks for a cartridge<number>
- = PCMfile entry, which defines an external cartridge selected by the driver.
- %@NL@%
-
- For example, %@AB@%cartindex%@AE@%=100 causes the driver to select the cartridge defined
- by the %@AB@%Cartridge100%@AE@%= line. %@NL@%
-
-
- %@3@%%@CR:C6A00070006 @%%@AB@%7.2.3 Copies%@AE@%%@EH@%%@NL@%
-
- This flag provides the number of uncollated copies of each page that the
- driver should request from the printer. It may be a number between 1 and 99.
- "Copies" is a printer feature; the driver sends down one image of the page
- and requests the printer to repeat it for the requested number of copies.
- For example, if the user specifies two copies of a three page document, the
- driver will print two copies of page 1, two copies of page 2, and two copies
- of page 3 (i.e., the printing order would be pages 1, 1, 2, 2, 3, 3). %@NL@%
-
- Collated copies (printing order 1, 2, 3, 1, 2, 3) is not a function of the
- driver. It is a function of the application. The application sends an image
- of the page to the printer for each copy requested, which is considerably
- slower than printing uncollated copies. %@NL@%
-
- The driver always writes "%@AB@%copies%@AE@%=1" to the WIN.INI file, even if the user
- requested more than one copy. The driver remembers that the user requested
- more than one copy (via the driver's memory-resident device-mode structure),
- but it does not write the actual number of copies requested to the WIN.INI
- file. The result is the driver will print the desired number of copies as
- long as the user stays in Windows. If the user exits Windows and re-enters,
- the driver reverts back to 1 copy. %@NL@%
-
- If the user manually changes the %@AB@%copies=%@AE@% line in the WIN.INI file before
- entering Windows, the driver will use that as the default number of copies.
- However, the next time the user pulls up the driver-specific dialog, the
- driver will overwrite the user's manually entered value with a 1. The next
- time the user exits and re-enters Windows, the default number of copies will
- revert to 1. %@NL@%
-
-
- %@3@%%@CR:C6A00070007 @%%@AB@%7.2.4 Duplex%@AE@%%@EH@%%@NL@%
-
- This flag contains a value between 0 and 3 that indicates the type of duplex
- printing: %@NL@%
-
- %@TH: 5 322 02 15 15 46 @%
- Value ver 3.2 Value ver 3.3 Printing option
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0 1 Simplex
- 1 2 Duplex/Vertical binding
- 2 3 Duplex/Horizontal binding
- %@TE: 5 322 02 15 15 46 @%
-
- %@AI@%Duplexing%@AE@% is the ability of the printer to print on both sides of the page.
- %@AI@%Vertical%@AE@% (or long-edge) binding means that the printer turns the sheet along
- the long edge, %@AI@%horizontal%@AE@% (or short-edge) binding means that the printer
- turns the sheet along the short edge. See Figure 7.1 for examples of
- vertical and horizontal binding. %@NL@%
-
- %@AU@%(This figure may be found in the printed book).%@AE@%%@NL@%
-
-
- %@3@%%@CR:C6A00070008 @%%@AB@%7.2.5 <Filename>%@AE@%%@EH@%%@NL@%
-
- The <%@AB@%filename%@AE@%> flag is used by the PCL driver's Printer Font Installer to
- keep track of the names of permanently downloaded font files. In the
- Window's convention for listing soft fonts (described in Section 7.2.19,
- "SoftFontn"), a permanently downloaded font file is specified by a soft font
- entry without a download file. The installer stores the name under the
- <%@AB@%filename%@AE@%> flag. For example, %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% = PFM File and, then, PFM File =
- Download File. %@NL@%
-
-
- %@3@%%@CR:C6A00070009 @%%@AB@%7.2.6 FontSummary%@AE@%%@EH@%%@NL@%
-
- This flag is the name of the font information file that the driver builds.
- The file contains the internal font data structure used by the driver.
- Because it may take a long time to build this data structure, the driver
- saves it to file whenever it builds it. The driver constructs the name of
- the file from the prefix "FS" combined with the port name. It then truncates
- the resultant name to eight characters (maximum MS-DOS filename length) and
- concatenates the .PCL file extension to the name. For example, the
- FontSummary file for LPT1 is called FSLPT1.PCL. %@NL@%
-
- The driver maintains a different copy of the data structure in the
- FontSummary file for every configuration the user has selected from the
- driver-specific dialog. For example, if the user changed the printer in the
- printer list box, the driver will build a new font data structure and %@AI@%add%@AE@% it
- to the FontSummary file. If the user reverts to the originally selected
- printer, the driver will revert to the original font data structure (still
- in the FontSummary file). %@NL@%
-
- The driver maintains a "most recently used" list of the data structures in
- the FontSummary file. It will delete the least recently used structures to
- shorten the size of the FontSummary file if necessary. By default, the
- driver limits the file to 100K, but the user may change it with the
- %@AB@%MaxFontSummary%@AE@% flag. %@NL@%
-
- The driver also maintains a different FontSummary file for every port.
- Because the user may have loaded soft fonts or cartridges under certain
- ports, the font information may change from port to port. %@NL@%
-
- If the user has loaded soft fonts, it may take the driver a long time to
- build its internal font data structure, which is why the structure is saved
- to file once it is built. If the user has more than 15 soft fonts loaded
- under a given port, the driver will show a "Building font database" message
- whenever it has to build its font data structure. When the driver reads the
- font data structure from the FontSummary file, it will not show the
- "Building font database" message. %@NL@%
-
- The driver places the FontSummary file in the directory that contains the
- driver executable file HPPCL.DRV. For example, a typical entry for the PCL /
- HP LaserJet on LPT1 would be: %@NL@%
-
- %@AS@% FontSummary=C:\WINDOWS\FSLPT1.PCL%@AE@%
-
-
- %@3@%%@CR:C6A00070010 @%%@AB@%7.2.7 Fsvers%@AE@%%@EH@%%@NL@%
-
- The FontSummary file version number is a value that starts at 1 and is
- incremented every time the driver modifies the FontSummary file. The value
- of %@AB@%fsvers%@AE@% resides in both the WIN.INI file and the header of the FontSummary
- file. The driver verifies that the two version numbers are the same every
- time it attempts to read a font data structure from the FontSummary file. If
- the version numbers are different, then the driver discards the FontSummary
- file and builds a new one. %@NL@%
-
- This flag exists primarily for the Printer Font Installer. Whenever the user
- modifies soft font information via the installer, it increments the value in
- %@AB@%fsvers%@AE@%. This causes the driver to rebuild its internal font database instead
- of reading an invalid one from the FontSummary file. %@NL@%
-
-
- %@3@%%@CR:C6A00070011 @%%@AB@%7.2.8 MaxFontSummary%@AE@%%@EH@%%@NL@%
-
- The %@AB@%MaxFontSummary%@AE@% flag is the maximum allowable size (in kilobytes) of the
- FontSummary file. The driver keeps a "most recently used" list of the
- internal font databases it builds and saves to the FontSummary file. It
- deletes the least recently used structures to ensure that the file size is
- less than %@AB@%MaxFontSummary%@AE@%. %@NL@%
-
- The size of the FontSummary file depends upon the number of soft fonts the
- user has loaded. On the average, the file will range from 3 to 10 kilobytes.
- By default, the maximum allowable size of the file is 100K. %@NL@%
-
- If %@AB@%MaxFontSummary%@AE@% is 1 or greater, the minimum FontSummary file size is
- equal to the size of the most recently used font data structure. In other
- words, if there is only one data structure in the file, the driver will not
- trim the FontSummary file even if its size exceeds %@AB@%MaxFontSummary%@AE@%. %@NL@%
-
- To force the driver never to build a FontSummary file, the user should add
- "%@AB@%MaxFontSummary%@AE@%=0" to the driver-specific section of the WIN.INI file. %@NL@%
-
-
- %@3@%%@CR:C6A00070012 @%%@AB@%7.2.9 Numcart%@AE@%%@EH@%%@NL@%
-
- The %@AB@%numcart%@AE@% flag contains the number of cartridges the user has selected. If
- it is zero, no cartridges have been selected (i.e., "none" in the cartridge
- list box). %@NL@%
-
- If it is 1, then the flag %@AB@%cartindex%@AE@% contains the index to the selected
- cartridge. If it is 2, then %@AB@%cartindex%@AE@% and %@AB@%cartindex1%@AE@% contain the cartridge
- indexes. This pattern repeats up to %@AB@%cartindex7%@AE@% for the eighth cartridge
- selected. %@NL@%
-
- The driver %@AI@%can%@AE@% allow the user to select up to eight cartridges at one time.
- However, the number of cartridges the driver %@AI@%does%@AE@% allow the user to select
- depends upon the printer selected in the printer list box. %@NL@%
-
- You can deteremine the number of cartridges that a printer supports by
- selecting the appropriate printer name from the PCL/HP LaserJet dialog box.
- The maximum number of cartridges supported is indicated above the cartridges
- list. %@NL@%
-
-
- %@3@%%@CR:C6A00070013 @%%@AB@%7.2.10 Options%@AE@%%@EH@%%@NL@%
-
- The %@AB@%options%@AE@% flag is a bit-field of on/off settings. The bits (in
- hexadecimal) and their meaning are as follows: %@NL@%
-
- %@TH: 6 474 02 08 48 20 @%
- Value Meaning Default setting
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0x0002 Reset the printer (ESC + E) between print jobs ON
- 0x0004 Force the driver to load soft fonts OFF
- 0x0008 Enable vertical text clipping OFF
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@TE: 6 474 02 08 48 20 @%
-
- The default %@AB@%options%@AE@% value is 0x0003. %@NL@%
-
- To modify the other bits, the user must edit the WIN.INI file. Here are some
- examples: %@NL@%
-
-
- ■ To disable printer reset between jobs:%@NL@%
-
- %@STUB@% %@AB@%options%@AE@%=2%@NL@%
-
- ■ To force the driver to load soft fonts on a standard LaserJet, as well
- as options 1 and 2:%@NL@%
-
- %@STUB@% %@AB@%options%@AE@%=7 (4+2+1)%@NL@%
-
- ■ To enable vertical text clipping, as well as options 1 and 2:%@NL@%
-
- %@STUB@% %@AB@%options%@AE@%=11 (8+2+1)%@NL@%
-
- ■ To force the loading of soft fonts and to enable vertical text
- clipping, as well as everything else:%@NL@%
-
- %@STUB@% %@AB@%options%@AE@%=15 (8+4+2+1)%@NL@%
-
-
- By default, the driver always resets the printer between print jobs if bit 1
- is set. This clears any macros and temporarily downloaded fonts that resided
- in the printer's memory before the job was sent. If the user does not want
- to have the printer reset between print jobs, this bit may be set to zero. %@NL@%
-
- ────────────────────────────────────────────────────────────────────────────%@NL@%
- NOTE
-
- %@AI@%The driver %@AI@%always%@AE@%%@AI@% assumes it has all%@AE@%%@AI@% the printer's memory available to it to
- %@AI@%print the job. It also always assumes it must download any temporary soft
- %@AI@%fonts in the job.%@AE@%%@AE@%
- ────────────────────────────────────────────────────────────────────────────%@NL@%
-
- The "force the driver to load soft fonts" bit causes the driver to load soft
- font information even for printers that cannot handle soft fonts. Normally,
- the driver loads soft font information based upon the printer's ability to
- handle them. However, sometimes users list .PFM files for %@AI@%cartridge%@AE@% fonts or
- %@AI@%printer-resident%@AE@% fonts that the driver does not know about (for more
- information on this topic, see Section 12.7, "Setting Up .PFM Files for
- Resident and Cartridge Fonts"). In this situation, the user would want the
- driver to load soft font information even on a printer that does not
- normally handle soft fonts. %@NL@%
-
- Enabling this bit will cause the driver to assume that the printer can
- handle all the soft font information listed in the WIN.INI file. In other
- words, if there are normal soft fonts listed in WIN.INI along with the
- special .PFM files for %@AI@%cartridge%@AE@% or %@AI@%printer-resident%@AE@% fonts, the driver will
- load %@AI@%all%@AE@% the fonts. If the user selects one of the real soft fonts, the
- driver will attempt to download it to the printer. %@NL@%
-
- Because PCL does not allow text clipping, the driver must simulate text
- clipping for the application. Text clipping is the ability of the driver to
- %@AI@%not print%@AE@% text that lies outside of a clip region defined by the
- application. The driver always clips text horizontally, but it only clips
- text vertically if the "enable vertical text clipping" bit is set. %@NL@%
-
- The driver clips text in an all-or-none fashion. If any part of the letter
- is outside of the clip rectangle, the whole letter is not printed. If any
- part of the line is on the top or bottom edge of the clip rectangle, the
- whole line is not printed (if vertical text clipping is enabled). %@NL@%
-
- In most cases, vertical text clipping is unnecessary. For example, if a user
- modifies the height of a row in Microsoft Excel by a small amount, the
- driver will (vertically) clip all the text in that row and not print it.
- This can be confusing to the user. Therefore, it is best to set the driver
- to print the text in this case. %@NL@%
-
- However, Aldus PageMaker's clipping logic assumes that the driver can clip
- partial lines. If any part of the line is within the clip rectangle,
- PageMaker will send it to the driver. There may be situations (most likely
- to occur if the user is printing a tiled publication) in which PageMaker
- will send a line to the driver that straddles the top or bottom of the page
- image area. If vertical text clipping is disabled, the driver will send the
- line to the printer. Since it is beyond the printer's image area, the
- printer will randomly print the line somewhere on the page. This problem may
- be corrected by enabling vertical text clipping which will simply clip the
- line and not print it. %@NL@%
-
-
- %@3@%%@CR:C6A00070014 @%%@AB@%7.2.11 Orient%@AE@%%@EH@%%@NL@%
-
- The %@AB@%orient%@AE@% flag is the orientation in which the document should be printed.
- The values are as follows: %@NL@%
-
- %@TH: 4 247 02 15 15 46 @%
- Value ver 3.2 Value ver 3.3 Orientation
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 15 1 Portrait
- 16 2 Landscape
- %@TE: 4 247 02 15 15 46 @%
-
-
- %@3@%%@CR:C6A00070015 @%%@AB@%7.2.12 Paper%@AE@%%@EH@%%@NL@%
-
- The %@AB@%paper%@AE@% variable selects the paper size on which to print. The values are
- as follows: %@NL@%
-
- %@TH: 9 417 02 15 15 46 @%
- Value ver 3.2 Value ver 3.3 Paper
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 20 1 Letter
- 21 9 A4
- 22 5 Legal
- 23 13 B5
- 24 7 Executive
- 25 8 A3
- 26 4 Ledger
- %@TE: 9 417 02 15 15 46 @%
-
-
- %@3@%%@CR:C6A00070016 @%%@AB@%7.2.13 Prtcaps%@AE@%%@EH@%%@NL@%
-
- This flag is a bit-field of the capabilities of the currently selected
- printer. The driver reads its value from an internal data structure; it
- %@AI@%never%@AE@% reads this flag from the WIN.INI file. It then writes its value to the
- WIN.INI file so other applications may read it. %@NL@%
-
- This flag exists for applications that need to know the capabilities of the
- printer that the user has selected. For example, font generation utilities
- may need to know if the printer can handle soft fonts, or if the printer can
- handle soft fonts above 30 points. %@NL@%
-
- The values of this field changed between the version 3.0 and 3.1 driver. The
- fields that represented paper information in the 3.0 driver were removed.
- Two new fields (for handling envelope feed) were added where paper
- information fields used to exist. The definition of some fields was slightly
- modified. %@NL@%
-
- The %@AI@%old%@AE@% list of capabilities bits (in hexadecimal) was as follows: %@NL@%
-
- %@TH: 38 1198 02 08 08 62 @%
- Status Value Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0x0001 Printer has capabilities of a standard LaserJet
-
- 0x0002 Printer has capabilities of a LaserJet Plus
-
- 0x0004 Printer has capabilities of a LaserJet 500
-
- 0x0008 Lower tray is handled
-
- 0x0010 Printer does %@AI@%not%@AE@% support downloadable fonts
-
- 0x0020 Manual feed is %@AI@%not%@AE@% supported
-
- 0x0040 Printer cannot support internal bit stripping
-
- old 0x0080 Printer can handle B5 paper
-
- old 0x0100 Printer emulates an HP LaserJet
-
- old 0x0200 Printer can handle Exec paper
-
- old 0x0400 Printer can handle A3 paper
-
- old 0x0800 Printer can handle ledger paper
-
- 0x1000 Printer can print duplex
-
- 0x2000 Printer selects paper bin based on paper size (auto paper
- select)
-
- 0x4000 Printer can print fonts in any orientation (auto font
- rotation)
-
- old 0x8000 Printer uses new paper select strings
-
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- %@TE: 38 1198 02 08 08 62 @%
-
- The %@AI@%new%@AE@% list of capabilities bits (in hexadecimal) is as follows: %@NL@%
-
- %@TH: 39 1316 02 08 08 62 @%
- Status Value Definition
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0x0001 Printer has capabilities of a standard LaserJet
-
- 0x0002 Printer has capabilities of a LaserJet Plus
-
- 0x0004 Printer has capabilities of a LaserJet 500
-
- 0x0008 Lower tray is handled
-
- 0x0010 Printer does %@AI@%not%@AE@% support downloadable fonts
-
- 0x0020 Manual feed is %@AI@%not%@AE@% supported
-
- 0x0040 Printer cannot support internal bit stripping
-
- new 0x0080 Printer supports manual/envelope feed
-
- new 0x0100 Printer is an HP PCL emulation printer
-
- new 0x0200 Printer supports new (LaserJet IID) envelope feed
-
- new 0x0400 Printer can print duplex like the LaserJet IID
-
- new 0x0800 Printer has white rules and compression like the LaserJet
- IIP
-
- 0x1000 Printer can print duplex
-
- 0x2000 Printer selects paper bin based on paper size (auto paper
- select)
-
- 0x4000 Printer can print fonts in any orientation (auto font
- rotation)
-
- new 0x8000 Printer has the capabilities of a LaserJet Series II
-
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- %@TE: 39 1316 02 08 08 62 @%
-
- The bits for envelope feed are new to the version 3.1 driver. Bit 0x0080 is
- set if the printer selects envelopes using the manual/envelope feed escape
- defined in the %@AI@%HP LaserJet Technical Reference Manual%@AE@%. Even though most HP
- printers and clones support this escape, the bit is set only for printers
- that actually have an envelope feed attachment for the printer. %@NL@%
-
- The second envelope feed escape, bit 0x0200, is set for the HP LaserJet IID.
- The driver uses the HP-defined escape, which is special for this printer's
- envelope feeder. %@NL@%
-
- The second duplex bit is also new to the version 3.1 driver. The first
- duplex bit, 0x8000, supports duplex for the LaserJet 2000. The second duplex
- bit, 0x0400, supports duplex in the same manner that the LaserJet IID prints
- two-sided pages. %@NL@%
-
- As stated earlier, the driver writes only the %@AB@%prtcaps%@AE@% flag to the WIN.INI
- file. It reads it from its internal data structure, based upon the currently
- selected printer. %@NL@%
-
- If the %@AB@%prtcaps%@AE@% flag is not present, outside applications should assume that
- the capabilities of the standard LaserJet are in use. %@NL@%
-
-
- %@3@%%@CR:C6A00070017 @%%@AB@%7.2.14 Prtindex%@AE@%%@EH@%%@NL@%
-
- The %@AB@%prtindex%@AE@% flag is the index to the currently selected printer. %@NL@%
-
- As printers are added, the index values will shuffle. No application outside
- of the PCL driver should access these numbers. Applications that want to
- determine the capabilities of the selected printer should look at the
- %@AB@%prtcaps%@AE@% flag. %@NL@%
-
-
- %@3@%%@CR:C6A00070018 @%%@AB@%7.2.15 Prtresfac%@AE@%%@EH@%%@NL@%
-
- The %@AB@%prtresfac%@AE@% flag is the printer resolution factor. 300 dpi shifted right
- by this number yields the printer resolution. Possible values are as
- follows: %@NL@%
-
- %@AB@%Value%@AE@% %@AB@%Resolution%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0 300 dpi
-
- 1 150 dpi
-
- 2 75 dpi
-
-
- %@3@%%@CR:C6A00070019 @%%@AB@%7.2.16 Sfdir%@AE@%%@EH@%%@NL@%
-
- The %@AB@%sfdir%@AE@% flag is the path to the directory containing the soft fonts. This
- is typically C:\PCLFONTS, C:\PCLPFM, or C:\FONTS. %@NL@%
-
-
- %@3@%%@CR:C6A00070020 @%%@AB@%7.2.17 Sfdlbat%@AE@%%@EH@%%@NL@%
-
- The %@AB@%sfdlbat%@AE@% flag contains the path and name of the batch file that downloads
- permanent soft fonts to the printer. The Printer Font Installer generates
- this file whenever the user sets up permanent soft fonts. %@NL@%
-
- A typical entry would look like the following: %@NL@%
-
- %@AS@% sfdlbat=C:\PCLPFM\SFLPT1.BAT%@AE@%
-
- The name of the file is constructed from the prefix "SF" combined with the
- port name. The resultant name is truncated to eight characters (maximum
- MS-DOS filename length) and the .BAT file extension is concatenated to the
- name. %@NL@%
-
-
- %@3@%%@CR:C6A00070021 @%%@AB@%7.2.18 Sfdlstyle%@AE@%%@EH@%%@NL@%
-
- The %@AB@%sfdlstyle%@AE@% flag is the manner in which soft fonts should be downloaded.
- This flag is a bit-field, and the values (in hexadecimal) are as follows: %@NL@%
-
- %@AB@%Value%@AE@% %@AB@%Meaning%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0x10 Download fonts "now" (when the user
- exits the installer)
-
- 0x20 Download fonts when the user turns on
- the computer
-
- Potential %@AB@%sfdlstyle%@AE@% values would be as follows: %@NL@%
-
-
- ■ Do not download fonts:%@NL@%
-
- %@STUB@% %@AB@%sfdlstyle%@AE@%=0%@NL@%
-
- ■ Download fonts at startup only:%@NL@%
-
- %@STUB@% %@AB@%sfdlstyle%@AE@%=32%@NL@%
-
- ■ Download fonts when the user exits the installer and at startup:%@NL@%
-
- %@STUB@% %@AB@%sfdlstyle%@AE@%=48%@NL@%
-
-
-
- %@3@%%@CR:C6A00070022 @%%@AB@%7.2.19 SoftFontn%@AE@%%@EH@%%@NL@%
-
- This is the soft font entry in the WIN.INI file. The format for listing soft
- fonts in the WIN.INI file is a Microsoft Windows standard (i.e., all printer
- drivers should list soft fonts in this manner). This format is described in
- Part 1, "Fonts." The mechanism is described briefly here. A typical soft
- font entry would look like the following example: %@NL@%
-
- %@AS@% SoftFonts=9
- %@AS@% SoftFont1=C:\PCLFONTS\OPPR0090.PFM
- %@AS@% SoftFont2=C:\PCLFONTS\OPPB0090.PFM
- %@AS@% SoftFont3=C:\PCLFONTS\OPPI0090.PFM
- %@AS@% SoftFont4=C:\PCLFONTS\OPPR0110.PFM
- %@AS@% SoftFont5=C:\PCLFONTS\OPPB0110.PFM,C:\PCLFONTS\OP110BPN.R8P
- %@AS@% SoftFont6=C:\PCLFONTS\OPPI0110.PFM,C:\PCLFONTS\OP110IPN.R8P
- %@AS@% SoftFont7=C:\PCLFONTS\OPPR0240.PFM,C:\PCLFONTS\OP240RPN.R8P
- %@AS@% SoftFont8=C:\PCLFONTS\OPPB0240.PFM,C:\PCLFONTS\OP240BPN.R8P
- %@AS@% SoftFont9=C:\PCLFONTS\OPPI0240.PFM,C:\PCLFONTS\OP240IPN.R8P%@AE@%
-
- In addition to these entries, which are defined as the "standard" format for
- listing soft fonts, the PCL driver's Printer Font Installer would add the
- following entries: %@NL@%
-
- %@AS@% C:\PCLFONTS\OPPR0090.PFM=C:\PCLFONTS\OP090RPN.R8P
- %@AS@% C:\PCLFONTS\OPPB0090.PFM=C:\PCLFONTS\OP090BPN.R8P
- %@AS@% C:\PCLFONTS\OPPI0090.PFM=C:\PCLFONTS\OP090IPN.R8P
- %@AS@% C:\PCLFONTS\OPPR0110.PFM=C:\PCLFONTS\OP110RPN.R8P%@AE@%
-
- The %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% entry lists the two files necessary for a soft font to be used
- in Windows. The first file is the Windows Printer Font Metrics (PFM) file.
- The second file is the downloadable font file. The .PFM file contains the
- metrics used by the driver to provide Windows applications with information
- about the fonts. Information such as font height, character widths, and
- pair-kern tables are contained in the .PFM file. Part 1, "Fonts," contains
- descriptions of the contents of .PFM files. %@NL@%
-
- The .PFM portion of the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% entry must always be listed in the WIN.INI
- file. The downloadable font file, if listed, follows the name of the .PFM
- file. The two names are separated by a comma. The presence of the
- downloadable font filename indicates that the font is set up for %@AI@%temporary%@AE@%
- download. This means that the driver should download the font to the printer
- the first time it encounters text in the font during a print job. The font
- will be deleted at the end of the print job. %@NL@%
-
- The absence of the downloadable font filename indicates to the driver that
- the font has been permanently downloaded to the printer and is also used to
- indicate that the font is a printer-resident or cartridge font (see Section
- 12.7, "Setting Up .PFM Files for Resident and Cartridge Fonts"). Permanently
- downloaded fonts are sent to the printer when it is turned on and remain in
- the printer's memory until it is turned off. The driver uses the font by
- sending the Font ID string to the printer. The Font ID must equal the value
- of %@AI@%n%@AE@% in the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% flag. %@NL@%
-
- The PCL driver's Printer Font Installer adds one more convention: for every
- font set up for permanent download, it adds an entry to the WIN.INI file in
- the form: %@NL@%
-
- %@STUB@% <PFM filename>=<downloadable font filename>%@NL@%
-
- The installer does this because it needs to keep track of the downloadable
- font filename. If a font is set up for %@AI@%permanent%@AE@% download, that means that
- the downloadable font filename is not present. To keep track of the download
- filename, the installer adds the "<PFM filename>=<downloadable font
- filename>" entry. %@NL@%
-
- The PCL driver also supports two other aspects of the soft font entries.
- These are not considered to be part of the standard for setting up soft
- fonts in Windows: %@NL@%
-
-
- ■ The driver allows the user to abbreviate the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% flag.%@NL@%
-
- ■ The driver does not require the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% entries to be in order.%@NL@%
-
-
- The PCL driver looks for a match in the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% flag up to the length of
- the flag in the WIN.INI file. If, for example, the flag in WIN.INI were
- "%@AB@%soft1%@AE@%=<etc>," or even "%@AB@%so1%@AE@%=<etc>," the driver would recognize the flag as a
- %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% entry. However, this capability exists in the driver only for
- historical reasons; it is recommended that users not abbreviate the
- %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% flag. %@NL@%
-
- The PCL driver does not require that soft fonts be listed in one contiguous
- range. Some drivers, on the other hand, require contiguous ranges. For
- example, if "%@AB@%SoftFonts%@AE@%=3," the driver would expect the three soft font
- entries to be as follows: %@NL@%
-
- %@STUB@% %@AB@%SoftFont1%@AE@%=<etc>%@NL@%
-
- %@STUB@% %@AB@%SoftFont2%@AE@%=<etc>%@NL@%
-
- %@STUB@% %@AB@%SoftFont3%@AE@%=<etc>%@NL@%
-
- For the PCL driver, though, the entries could just as easily be %@AB@%SoftFont2%@AE@%,
- %@AB@%SoftFont8%@AE@%, and %@AB@%SoftFont10%@AE@%, or any other non-contiguous set of flags. It
- scans the WIN.INI file for all the soft font entries. It will also load %@AI@%all%@AE@%
- the soft fonts regardless of how many soft fonts the %@AB@%SoftFonts%@AE@% flag
- indicates are available. %@NL@%
-
-
- %@3@%%@CR:C6A00070023 @%%@AB@%7.2.20 SoftFonts%@AE@%%@EH@%%@NL@%
-
- This gives the number of soft fonts listed in the WIN.INI file. %@NL@%
-
-
- %@3@%%@CR:C6A00070024 @%%@AB@%7.2.21 Tray%@AE@%%@EH@%%@NL@%
-
- The %@AB@%tray%@AE@% flag contains the input paper tray. Possible values are as follows:
- %@NL@%
-
- %@TH: 6 367 02 15 15 46 @%
- Value ver 3.2 Value ver 3.3 Paper tray
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 30 1 Default paper tray ("top tray")
- 31 2 Lower paper tray
- 32 4 Manual feed
- 33 7 Auto paper feed
- %@TE: 6 367 02 15 15 46 @%
-
- The "Lower" paper tray on the LaserJet 2000 is the middle tray. The user
- gains access to the paper deck by selecting "Auto paper feed." %@NL@%
-
-
- %@3@%%@CR:C6A00070025 @%%@AB@%7.2.22 White_text%@AE@%%@EH@%%@NL@%
-
- The %@AB@%white_text%@AE@% flag controls the value of "white" text. Because the PCL
- driver does not have white text (e.g., for reverse text), the driver
- attempts to "synthesize" white text by not sending it to the printer. The
- %@AB@%white_text%@AE@% flag gives the user the ability to adjust the driver's
- sensitivity to white text. %@NL@%
-
- Please notice that PCL printers are not capable of actually printing white
- text. This section describes how the driver behaves when the application
- assigns the color "white" to text. The %@AB@%white_text%@AE@% flag is used by the driver
- to determine how to detect white text. When the driver detects that the
- color of the text is white, it does not send the text to the printer. %@NL@%
-
- The driver detects white text by looking at the RGB value passed to it by
- the application. An RGB value consists of three numbers indicating the red,
- green, and blue components of the color. Possible values range from 0 to 255
- for each color. 0 means full saturation (or black) of the color; 255 means
- no color (or white). A value between 0 and 255 means partial saturation of
- the color. If the R, G, and B components are 0, the color is black. If all
- three numbers are 255, the color is white. %@NL@%
-
- The driver applies the following logic to detect white text: %@NL@%
-
-
- ■ If all three values of red, green, and blue are greater than or equal
- to the value of %@AB@%white_text%@AE@%, then the color is white and the text
- should %@AI@%not%@AE@% be printed. %@NL@%
-
- ■ If at least one of the R, G, or B components is less than %@AB@%white_text%@AE@%,
- then the color is printed.%@NL@%
-
-
- By default, the driver uses a %@AB@%white_text%@AE@% value of 255. This means that the
- text must be truly white for the driver not to print it. The driver regards
- any text that has a value close to white, but not exactly white, as black
- and prints it. %@NL@%
-
- The user may make the driver regard all text as white text with the value: %@NL@%
-
- %@AB@%white_text%@AE@%=0 %@NL@%
-
- And always print all text with the value: %@NL@%
-
- %@AB@%white_text%@AE@%=256 %@NL@%
-
- This flag exists in the event an application wants a finer control over
- white text printing than the driver's default approach to determining what
- constitutes white text. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00080001 @%%@1@%%@AB@%Chapter 8 Permanent Soft Fonts%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- Permanent soft fonts are downloaded to the printer when the printer is
- turned on and remain there until the printer is turned off. Because
- permanent fonts are not sent to the printer during the print job, they pose
- some interesting problems. This chapter explores some of these problems and
- how the Printer Font Installer solves them. %@NL@%
-
- Permanent fonts are downloaded to the printer %@AI@%sometime%@AE@% after power up. The
- driver does not have to be active, nor does Microsoft Windows need to be
- running for permanent fonts to be downloaded to the printer. In fact,
- permanent fonts are typically downloaded to the printer when the user first
- turns on the computer. %@NL@%
-
-
- %@2@%%@CR:C6A00080002 @%%@AB@%8.1 Setting Up Fonts for Download%@AE@%%@EH@%%@NL@%
-
- The user tells the Printer Font Installer that a font should be set up for
- permanent download by selecting the font in the installer's list box and
- clicking on the "Permanent" button at the bottom of the list box. See Help
- in the "Printer Font Installer" dialog box for a description of the user
- interface to the installer. %@NL@%
-
- The installer enables the user to change the status (i.e., from temporary to
- permanent) of one font at a time. The font receiving the status change is
- the one whose name appears on the status line at the bottom of the installer
- dialog. The installer only enables one font at a time to be modified to
- prevent the user from converting a large number of fonts to permanent
- download. %@NL@%
-
- The first time a user changes a font from temporary to permanent status, the
- installer pops up a warning dialog. This dialog reminds the user that
- permanent fonts take up printer memory and, therefore, only the most
- frequently used fonts should be permanently downloaded to the printer. %@NL@%
-
- When the user exits the installer, it prompts the user for the download
- style. If the user selects "Download now," the installer will send a print
- job consisting of the permanent fonts to the printer. If the user selects
- "Download at startup," the installer will build a batch file that downloads
- the fonts to the printer and edits the AUTOEXEC.BAT file to call the batch
- file. %@NL@%
-
- The user may select both, one, or none of these options. As long as the user
- has permanent soft fonts, the installer pops up this dialog box every time
- the user exits the installer. %@NL@%
-
- As part of downloading permanent fonts, the installer sends a "delete all
- fonts" escape to the printer. This forces the printer to delete all
- permanently downloaded fonts. After downloading the new fonts, a banner page
- (in portrait format) is printed that shows the fonts that have been
- downloaded. Portrait fonts are shown in the typeface that was downloaded. %@NL@%
-
- Downloading permanent fonts "now" (i.e., upon exiting the installer) is not
- very difficult for the driver. The installer simply opens a Windows print
- job and sends down the fonts. Downloading fonts "at startup" (i.e., when the
- user turns on the machine) is more complex. %@NL@%
-
- To set up the downloading of permanent fonts at startup, the installer
- performs the following tasks: %@NL@%
-
-
- 1. Writes an executable program that prompts the user to download fonts. %@NL@%
-
- 2. Creates a batch that downloads the fonts and writes out the banner
- page.%@NL@%
-
- 3. Edits the AUTOEXEC.BAT file to call the download batch file.%@NL@%
-
-
- The executable program presents the user with a yes/no prompt for
- downloading permanent soft fonts. The program is stored in the driver's
- resources and written to its own file when the installer is setting up fonts
- for permanent download. The download batch file calls this executable
- program. %@NL@%
-
- The program presents the user with the prompt: %@NL@%
-
- Download PCL fonts to <%@AI@%port name%@AE@%>? [y/n] %@NL@%
-
- If the user responds "no," the program returns 1, and the batch file tests
- the MS-DOS ERRORLEVEL and exits without downloading fonts. %@NL@%
-
- If the user responds "yes," the program returns an MS-DOS ERRORLEVEL of 0,
- and the batch file proceeds to download fonts. For example, this sample
- download batch file downloads one permanent font, "Tms Rmn 12pt," to the
- printer: %@NL@%
-
- %@AS@% rem HPPCL -- Downloading fonts
- %@AS@% echo off
- %@AS@% C:\PCLFONTS\PCLSF0YN.EXE LPT1:
- %@AS@% if ERRORLEVEL 1 goto nodownload
- %@AS@% echo {ESC}E{ESC}*c0F > LPT1:
- %@AS@% echo {ESC}(s3t0b0s12v10h0P{ESC}&a0c0RPermanently downloaded
- %@AS@% font(s):{ESC}&l2D > %tmp%\pcl3.tmp
- %@AS@% echo {ESC}*c1D > %tmp%\pcl1.tmp
- %@AS@% echo {ESC}*c1d5F > %tmp%\pcl2.tmp
- %@AS@%
- %@AS@%
- %@AS@% echo {ESC}(1X*Tms Rmn 12pt >> %tmp%\pcl3.tmp
- %@AS@% copy %tmp%\pcl1.tmp+C:\PCLFONTS\TR120RPN.USP/b+%tmp%\pcl2.tmp/a
- %@AS@% LPT1:/b
- %@AS@% echo {FF} >> %tmp%\pcl3.tmp
- %@AS@% copy %tmp%\pcl3.tmp LPT1:
- %@AS@% erase %tmp%\pcl1.tmp
- %@AS@% erase %tmp%\pcl2.tmp
- %@AS@% erase %tmp%\pcl3.tmp
- %@AS@% :nodownload%@AE@%
-
- The download batch file creates the following three temporary files: %@NL@%
-
- %@AB@%File%@AE@% %@AB@%Function%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- TMP1 Sets up the permanent Font ID.
-
- TMP2 Assigns the Font ID to the downloaded
- font.
-
- TMP3 Downloads the banner.
-
- The sample download batch file shows how these temporary files are used.
- Notice that the batch file takes advantage of the MS-DOS batch file string
- substitution feature. That is, every reference to a temporary file is
- preceded with %tmp%. If the user has an environment variable "tmp," then
- MS-DOS will replace the string with the temporary directory path. If the
- environment variable does not exist, MS-DOS will replace the string with a
- NULL string. The temporary files will be written to the user's root
- directory. %@NL@%
-
- The batch file is invoked from the user's AUTOEXEC.BAT file. The installer
- edits the AUTOEXEC.BAT file and appends the following strings to the file: %@NL@%
-
- %@AS@% rem The Windows PCL / HP LaserJet driver added the next line
- %@AS@% command /c C:\PCLFONTS\SFLPT1.BAT%@AE@%
-
- The string that invokes the download batch file uses the MS-DOS "command /c"
- option. This enables MS-DOS to suspend execution of the AUTOEXEC.BAT file to
- execute the download file, then return to the execution of the AUTOEXEC.BAT
- file. Without "command /c," MS-DOS would not return to executing the
- AUTOEXEC.BAT file (i.e., any commands after the line in the AUTOEXEC.BAT
- file would not be executed). %@NL@%
-
- The installer appends this string to the AUTOEXEC.BAT file by stepping to
- the end of the file and then backing up until it hits a character greater
- than or equal to a space. This circumvents a problem some users may have if
- they use Windows Notepad to edit their AUTOEXEC.BAT file. Windows Notepad
- sometimes writes an end-of-file character as the last valid character in the
- file. An application that blindly appends text to the AUTOEXEC.BAT will
- append it %@AI@%after%@AE@% the end-of-file character. The added text would be ignored
- when MS-DOS executed the AUTOEXEC.BAT file. %@NL@%
-
- There are always potential problems when an application "automatically"
- edits the user's AUTOEXEC.BAT file. These programs typically will either
- append text to the file (like the installer) or place text at the beginning
- of the file. Both approaches present some problems: %@NL@%
-
-
- ■ Some users have special "menu templates" that are executed from the
- AUTOEXEC.BAT file. These templates are typically set up by dealers for
- the users. From the template, the user executes the applications he or
- she wants to use. The user never exits this template utility to return
- to the execution of the AUTOEXEC.BAT file.%@NL@%
-
- ■ Other users set up soft fonts to be permanently downloaded to a port
- that is a remote printer on a network. Typically, the network software
- is executed somewhere at the beginning of the AUTOEXEC.BAT file. The
- download commands must appear %@AI@%after%@AE@% the network software runs.%@NL@%
-
-
- If an application appends text to the AUTOEXEC.BAT file, it runs the risk of
- the commands never being executed. If the application inserts the commands
- at the beginning of the file, it runs the risk of executing the commands
- before certain other vital commands are executed. %@NL@%
-
- If a user sets up fonts for permanent download, but they are not being
- downloaded to the printer, the commands in the AUTOEXEC.BAT file are
- probably not being executed. The problem may be solved by moving the
- commands in the AUTOEXEC.BAT file. %@NL@%
-
- Although the command line the installer writes to the AUTOEXEC.BAT file may
- be moved in the file, it should never be modified. This is because the
- installer always looks for the line and modifies it appropriately. The
- installer searches the AUTOEXEC.BAT file for the line and changes it without
- changing the file size. It does not assume it is at the bottom of the file.
- %@NL@%
-
- For example, if the user sets up some soft fonts for permanent download at
- startup, the installer will build the download batch file and add this line
- to the AUTOEXEC.BAT file: %@NL@%
-
- %@AS@% rem The Windows PCL / HP LaserJet driver added the next line
- %@AS@% command /c C:\PCLFONTS\SFLPT1.BAT%@AE@%
-
- If the user then re-enters the installer and changes all the permanent fonts
- to temporary, the installer (upon exit) parses the AUTOEXEC.BAT file and
- modifes the command line to: %@NL@%
-
- %@AS@% rem The Windows PCL / HP LaserJet driver added the next line
- %@AS@% rem C:\PCLFONTS\SFLPT1.BAT%@AE@%
-
- This has the effect of disabling the download command without deleting it.
- If the user once again enters the installer and makes some fonts permanent,
- the installer (upon exit) will locate the commented line in the AUTOEXEC.BAT
- file and uncomment it: %@NL@%
-
- %@AS@% rem The Windows PCL / HP LaserJet driver added the next line
- %@AS@% command /c C:\PCLFONTS\SFLPT1.BAT%@AE@%
-
-
- %@2@%%@CR:C6A00080003 @%%@AB@%8.2 Tracking Permanent Fonts in the WIN.INI File%@AE@%%@EH@%%@NL@%
-
- The format for listing soft fonts in the WIN.INI file is a Microsoft Windows
- standard (i.e., all printer drivers should list soft fonts in this manner).
- This format is described in Part 1, "Fonts." The mechanism is briefly
- described in Section 7.2.19, "SoftFontn." %@NL@%
-
- With driver version 3.0 or earlier, users added soft fonts using PCLPFM, not
- the Printer Font Installer. PCLPFM is the utility that used to be shipped
- with the PCL driver (version 1.05a and earlier). This utility generated .PFM
- files from downloadable font files and created an APPNDWIN.INI file. After
- running PCLPFM, the user would manually edit the WIN.INI file to add the
- %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% entries. %@NL@%
-
- By default, PCLPFM set up all the fonts for temporary download. If the user
- wanted to set up fonts for permanent download, then he or she was instructed
- to %@AI@%remove%@AE@% the name of the downloadable font file from the %@AB@%SoftFont%@AE@%%@AI@%n%@AE@% line in
- the WIN.INI file. The user was responsible for setting up the mechanism for
- downloading the permanent fonts to the printer. %@NL@%
-
- For example, suppose the following entries were added to WIN.INI by the
- Printer Font Installer: %@NL@%
-
- %@AS@% [HPPCL,LPT1]
- %@AS@% SoftFonts=2
- %@AS@% SoftFont1=C:\PCLFONTS\OPPR0110.PFM
- %@AS@% SoftFont2=C:\PCLFONTS\OPPB0110.PFM,C:\PCLFONTS\OP110BPN.R8P
- %@AS@% C:\PCLFONTS\OPPR0110.PFM=C:\PCLFONTS\OP110RPN.R8P%@AE@%
-
- The same fonts added from PCLPFM (with help from the user) would look like
- this: %@NL@%
-
- %@AS@% [HPPCL,LPT1]
- %@AS@% SoftFont1=C:\PCLPFM\OP110RPP.PFM
- %@AS@% SoftFont2=C:\PCLPFM\OP110BPP.PFM,C:\PCLPFM\OP110BPN.R8P%@AE@%
-
- This mechanism posed a problem for the Printer Font Installer. With the name
- of the permanently downloaded font missing, how could the installer locate
- the font? Also, since the user may have already set up a mechanism for
- downloading those fonts to the printer, how could the installer work around
- it? %@NL@%
-
- The best approach to resolving the problem was to inform users that they
- should go back into their WIN.INI file and restore the fonts to temporary
- status (add %@AI@%back%@AE@% the name of the permanent font file). The users should also
- remove any utilities they had that downloaded the fonts %@NL@%
-
- To handle fonts set up for permanent download by PCLPFM, the installer
- applies the following logic: %@NL@%
-
-
- ■ If the installer has no record of the downloadable font filename, then
- it simply skips the filename when it sets up the permanent download
- batch file.%@NL@%
-
- ■ If the user attempts to change the font from permanent to temporary
- status, the installer requires the user to provide a name for the
- downloadable font file.%@NL@%
-
-
- When the installer creates its download batch file, it will not report an
- error if it cannot find the name of the downloadable font file. It does this
- for two reasons: %@NL@%
-
-
- 1. The installer assumes the user removed the filename. The user also
- probably has some utility that automatically downloaded those fonts.
- Those fonts will continue to be downloaded via the old mechanism,
- while any new fonts changed to permanent by the installer will be
- downloaded by the installer.%@NL@%
-
- 2. There is another mechanism by which the user can provide the driver
- with .PFM files for %@AI@%cartridge%@AE@% or %@AI@%printer-resident%@AE@% fonts unknown to the
- driver. In this mechanism, only the .PFM file is listed. The
- downloadable font file does not exist. The installer will not report
- that it cannot download fonts, which prevents confusion for the user.%@NL@%
-
-
- When the user attempts to change a font from permanent to temporary status,
- the installer prompts the user to provide the name of the downloadable font
- file. If the user cannot provide the name, then the user cannot change the
- font's status. %@NL@%
-
- The installer attempts to manufacture the name of the downloadable font file
- by assuming that it resides in the same directory as the .PFM file and that
- the name was automatically assigned by PCLPFM. Since PCLPFM derived the .PFM
- filename from the downloadable font filename, the installer simply reverses
- the logic to get the downloadable font filename from the .PFM filename. This
- manufactured name is presented to the user as part of the prompt for the
- filename. %@NL@%
-
- Once the user has provided the correct downloadable font filename (the
- installer does verify that the file actually exists before it accepts the
- filename), the installer can set up the font for temporary download. If the
- user ever reverts the font's status back to permanent, the installer
- preserves the name using the "<PFM filename>=<downloadable font filename>"
- convention. The installer also assumes that, since the user knowingly
- reverted the font back to temporary status, the user removed whatever
- utilities existed on the machine to download the permanent fonts. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00090001 @%%@1@%%@AB@%Chapter 9 FINSTALL.DIR%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- The Microsoft Windows printer font install directory file, FINSTALL.DIR,
- provides a standard way for font manufacturers to describe the contents of a
- font distribution package to the Printer Font Installer. The basic purpose
- of this file is to link each downloadable font file to its corresponding
- .PFM and screen font file. %@NL@%
-
- The printer font install directory file should be placed on the first disk
- in a package of soft fonts, or its location should be clearly marked on the
- disk that contains it. %@NL@%
-
- This chapter describes the format of the file. In this explanation, the
- following syntax conventions are used: %@NL@%
-
- %@AB@%Convention%@AE@% %@AB@%Definition%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- CAPS Indicates a reserved keyword required by
- the FINSTALL.DIR file.
-
- [ ] Square brackets indicate that the
- enclosed item is
- optional.
-
- ,... Means that the description may be
- repeated.
-
- Comments, if included in FINSTALL.DIR, have the format: %@NL@%
-
- %@STUB@% /* comment */%@NL@%
-
- The comment must begin with /* and end with */. Comments may not be nested
- (i.e., /* within a comment will be ignored, and the first occurrence of */
- will end the comment). %@NL@%
-
- The FINSTALL.DIR file consists of two primary items: the logical drive
- definition and the font family definition. A description of each of these
- items follows. %@NL@%
-
-
- %@2@%%@CR:C6A00090002 @%%@AB@%9.1 Logical Drive Definition%@AE@%%@EH@%%@NL@%
-
- The purpose of this command is to enable the font vendor to describe the
- location of files that are not on the current disk. The DRIVE definition
- must appear before it is used anywhere in the file. It is highly recommended
- that a logical drive be defined for each floppy disk in the distribution
- package, and that all files referenced be preceded by a logical drive ID. %@NL@%
-
- The format of the logical drive definition is as follows: %@NL@%
-
- %@AS@% DRIVE id[:] = label-file [, "label-descriptor" ]%@AE@%
-
- The following are descriptions of the fields in the definition: %@NL@%
-
- %@AB@%Field%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- id The logical drive's identifier. The %@AI@%id%@AE@%
- is used as a drive specifier to the
- filename. For example:
-
- DRIVE fontlib1: = fontlib1.lbl, "Font
- Library disk #1"
-
- sets up a logical drive, fontlib1.
-
- label-file The file for which the Printer Font
- Installer will look. The label file must
- use the .LBL file extension (for an
- explanation, see Section 9.3,
- "Installing Without the FINSTALL.DIR
- File."
-
- When a filename is referenced as
- FONTLIB1:
- CN010RPN.USP, the Printer Font Installer
- will look for the file FONTLIB1.LBL. If
- present, the installer will load
- CN010RPN.USP. If not present, it will
- prompt the user, for example:
-
- Please place Font Library disk #1 into
- drive A:
-
- After the user clicks OK on the prompt
- (assuming the disks have been switched),
- the installer will again look for
- FONTLIB1.LBL and, if present, will load
- CN010RPN.USP. If not present, the
- installer will repeat the prompt until
- the user has inserted the correct disk.
-
- "label-descriptor" A general description of the floppy disk.
- This argument is optional. If not
- present, the Printer Font
- Installer will prompt:
-
- Please place fontlib1 into drive A:
-
- The installer uses the name of the label
- file as the descriptor string. Quotes
- around the description are required.
-
-
- %@2@%%@CR:C6A00090003 @%%@AB@%9.2 Font Family Definition%@AE@%%@EH@%%@NL@%
-
- The format of the font family definition is as follows: %@NL@%
-
- %@AS@% FAMILY [ "family-name" ] {
- %@AS@% aspect-ratio = "description", screen-font-file
- %@AS@% "font-description" = orient, [ download-file ] [, PFM-file ]
- %@AS@% }%@AE@%
-
- Where: %@NL@%
-
- The first line is the format for specifying a screen font file. The second
- line is the format for specifying a downloadable font file. Both of these
- lines can be repeated or eliminated. %@NL@%
-
- The following are descriptions of the fields in the definition: %@NL@%
-
- %@AB@%Field%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- FAMILY The FAMILY keyword groups together a
- list of downloadable files and their
- .PFM files to their corresponding screen
- font files. Each subentry, %@AI@%aspect- ratio%@AE@%
- = and %@AI@%font-description%@AE@%=, may appear many
- times and in any order within the braces
- { }.
-
- "family-name" A general description of the font family.
- Quotes around the "family-name" field
- are required.
-
- aspect-ratio The beginning of a screen font
- definition. Its form is as follows:
-
- screen-width-in-lines/inch
- : screen-depth-in-lines/inch,...
-
- Notice that both the aspect ratio and
- the screen resolution are built into the
- aspect-ratio field. Examples of valid
- fields are as follows:
-
- ■ 72:72, 96:96 (VGA), 108:108, 120:120
- (8514/a), and 144:144 for 1:1 screens at
- different resolutions
-
- ■ 96:72 for the IBM Enhanced Graphics
- Adapter
-
- ■ 96:48 for the IBM Color Graphics
- Adapter
-
- Multiple aspect ratios may be listed in
- one aspect-ratio field, separated by
- commas. For example, 72:72, 96:96 =
- would be a valid aspect-ratio
- specification.
-
- %@AB@%Field%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- If the installer installs fonts on a
- display device with no matching
- resolution, but with matching aspect
- ratios, then the installer chooses the
- aspect-ratio field whose resolution is
- less than or equal to the desired
- resolution. (If there is no resolution
- less than or equal to the desired
- resolution, then it chooses the lowest
- resolution.) If there is no screen font
- with a matching aspect ratio, then no
- screen fonts are loaded.
-
- "description" The "descriptive-text" string used to
- describe the screen font when it was
- compiled as a resource. That is, when
- the screen font was made, a special
- entry in a Windows .DEF file was made
- for the font in the form:
-
- DESCRIPTION FONTRES FontTypeList :
- "descriptive-text"
-
- The "descriptive-text" string from the
- .DEF file should be repeated for the
- "description" field in the FINSTALL.DIR
- file. If you are unsure of the string,
- then use the Windows Control Panel to
- load the screen font. In the WIN.INI
- file, examine the section labeled
- [FONTS]. Whatever you see to the left of
- the equal sign (=) for your screen font
- is the string that should appear in the
- "description" field.
-
- Examples of "description" fields are as
- follows:
-
- ■ "Courier 8,10,12 (Set #3)"
-
- ■ "Roman (Set #1)"
-
- Quotes around the "description" field
- are required.
-
- screen-font-file The name and location of the screen font
- file. If you use a logical drive as part
- of the name, then you guarantee that the
- installer will be able to find the file
- (i.e., it will prompt the user to change
- disks if the incorrect disk is in drive
- A). Also, the path should be included in
- the filename if it is not in the root
- directory on the disk.
-
- %@AB@%Field%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- "font-description" The name that is listed in the
- installer's list box. It should include
- the following:
-
- ■ Exact face name
-
- ■ Point size (abbreviating "point" to
- "pt" is recommended)
-
- ■ "bold" if the font is a bold face
-
- ■ "italic" if the font is italic face
-
- Examples of "font-description" strings
- are as
- follows:
-
- ■ "Tms Rmn 10pt"
-
- ■ "Helv 14pt bold"
-
- ■ "Courier 8pt bold italic"
-
- Quotes around the "font-description"
- string are
- required.
-
- orient The font's orientation (portrait or
- landscape). %@AI@%Orient%@AE@% is either P (or p)
- for portrait orientation or L (or l) for
- landscape orientation. PL or LP may be
- used to indicate either orientation.
-
- download-file The name and location of the
- downloadable font file. If you use a
- logical drive as part of the name, then
- you guarantee that the installer will be
- able to find the file (i.e., it will
- prompt the user to change disks if the
- incorrect disk is in drive A). Also, the
- path should be included in the filename
- if it is not
- in the root directory on the disk. To
- omit the downloadable file, use two
- commas before the name of the PFM-file:
-
- "font-description" = orient,,PFM-file
-
- If the downloadable filename is omitted,
- the PFM-file name must be present.
-
- PFM-file The name and location of the printer
- font metrics file. If you use a logical
- drive as part of the name, then you
- guarantee that the installer will be
- able to find the file (i.e., it will
- prompt the user to change disks if the
- incorrect disk is in drive A). Also, the
- path should be included in the filename
- if it is not in the root directory on
- the disk.
-
- %@AB@%Field%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- If the PFM-file is omitted, then the
- Printer Font Installer will attempt to
- generate a .PFM file by reading metrics
- from the downloadable font file. In
- general, this approach is discouraged as
- the font manufacturer then relies on the
- driver's PFM Generator to correctly
- build .PFM files. This is also an
- inconvenience to the user who has to sit
- through the process of watching the
- Printer Font Installer build the .PFM
- files. Because we have a PFM Editor, you
- should be able to create a .PFM file
- very easily.
-
- The font manufacturer can demonstrate
- more control over the .PFM files and
- provide a convenience to the user by
- supplying the .PFM files on the
- distribution disks.
-
- CARTRIDGE %@AS@%CARTRIDGE {%@AE@%
- %@AS@% aspect-ratio = "description", screen %@AE@%
- %@AS@%font-file%@AE@%
- %@AS@% "cartridge title" = PCM-file%@AE@%
- %@AS@% }%@AE@%
-
- This defines an external cartridge for
- installation.
-
- Where:
-
- The aspect-ratio, "description", and
- screen-font-file are the same as for
- soft fonts.
-
- The "cartridge title" is the title of a
- cartridge that can be installed. This
- title will appear in the installer's
- list box.
-
- Both of these lines can be repeated or
- eliminated.
-
- The PCM-file is the file containing the
- cartridge information (the collection of
- PFMs). This file can also include a
- label.
-
-
- %@2@%%@CR:C6A00090004 @%%@AB@%9.3 Installing Without the FINSTALL.DIR File%@AE@%%@EH@%%@NL@%
-
- If there is no printer font directory file, the installer performs the
- following actions: %@NL@%
-
-
- ■ If a file on the disk exists with the .LBL extension, the installer
- assumes the FINSTALL.DIR file is on another disk. It prompts the user
- to switch disks, while allowing the user the option to read the disk
- without the directory file.%@NL@%
-
- ■ If there is no .LBL file or the user chooses the first option, the
- installer assumes the directory file does not exist. It then scans the
- disk looking for downloadable font files.%@NL@%
-
-
- When the installer has to scan the disk for soft fonts, it opens each file
- on the disk and looks for the header of a downloadable font file. If it
- finds the header, it derives the font name and point size, and displays this
- to the user in the list box of soft fonts available for installation. When
- the font is installed, the installer will generate a .PFM file from the
- downloadable font file. Without the FINSTALL.DIR file, it will ignore any
- .PFM files already on the disk. %@NL@%
-
-
- %@2@%%@CR:C6A00090005 @%%@AB@%9.4 Sample FINSTALL.DIR File%@AE@%%@EH@%%@NL@%
-
- %@AS@% /* Acme Corporation's font package.
- %@AS@% *
- %@AS@% * This package consists of two floppy disks, one
- %@AS@% * containing the Tms Rmn soft font set, the other
- %@AS@% * containing the Helv soft font set.
- %@AS@% */%@AE@%
-
- %@AS@% /* Logical drives
- %@AS@% */
- %@AS@% DRIVE TR1: = TRSET1.LBL, "Tms Rmn set (disk 1 of 2)"
- %@AS@% DRIVE HV1: = HVSET1.LBL, "Helv set (disk 2 of 2)"%@AE@%
-
- %@AS@% /* Tms Rmn set
- %@AS@% */
- %@AS@% FAMILY "Tms Rmn" {
- %@AS@% /* screen fonts */
- %@AS@% 1:1 = "Acme Tms 1:1", TR1:TR11.FON
- %@AS@% 4:3 = "Acme Tms 4:3", TR1:TR43.FON
- %@AS@% 2:1 = "Acme Tms 2:1", TR1:TR21.FON%@AE@%
-
- %@AS@% /* printer fonts */
- %@AS@% "Tms Rmn 6pt" = P,TR1:TR060RPN.USP,TR1:TR060RPP.PFM
- %@AS@% "Tms Rmn 6pt" = L,TR1:TR060RPN.USL,TR1:TR060RPL.PFM
- %@AS@% "Tms Rmn 6pt bold" = P,TR1:TR060BPN.USP,TR1:TR060BPP.PFM
- %@AS@% "Tms Rmn 6pt bold" = L,TR1:TR060BPN.USL,TR1:TR060BPL.PFM
- %@AS@% .
- %@AS@% .
- %@AS@% .
- %@AS@% "Tms Rmn 30pt bold" = L,TR1:TR300BPN.USL,TR1:TR300BPL.PFM
- %@AS@% "Tms Rmn 30pt italic" = P,TR1:TR300IPN.USP,TR1:TR300IPP.PFM
- %@AS@% "Tms Rmn 30pt italic" = L,TR1:TR300IPN.USL,TR1:TR300IPL.PFM
- %@AS@% }%@AE@%
-
- %@AS@% /* Helv set
- %@AS@% */
- %@AS@% FAMILY "Helv" {
- %@AS@% /* screen fonts */
- %@AS@% 1:1 = "Acme Helv 1:1", HV1:HV11.FON
- %@AS@% 4:3 = "Acme Helv 4:3", HV1:HV43.FON
- %@AS@% 2:1 = "Acme Helv 2:1", HV1:HV21.FON%@AE@%
-
- %@AS@% /* printer fonts */
- %@AS@% "Helv 6pt" = P,HV1:HV060RPN.USP,HV1:HV060RPP.PFM
- %@AS@% "Helv 6pt" = L,HV1:HV060RPN.USL,HV1:HV060RPL.PFM
- %@AS@% "Helv 6pt bold" = P,HV1:HV060BPN.USP,HV1:HV060BPP.PFM
- %@AS@% "Helv 6pt bold" = L,HV1:HV060BPN.USL,HV1:HV060BPL.PFM
- %@AS@% .
- %@AS@% .
- %@AS@% .
- %@AS@% "Helv 30pt bold" = L,HV1:HV300BPN.USL,HV1:HV300BPL.PFM
- %@AS@% "Helv 30pt italic" = P,HV1:HV300IPN.USP,HV1:HV300IPP.PFM
- %@AS@% "Helv 30pt italic" = L,HV1:HV300IPN.USL,HV1:HV300IPL.PFM
- %@AS@% }%@AE@%
-
- %@AS@% /* Cartridge version
- %@AS@% */
- %@AS@% CARTRIDGE {
- %@AS@% /* screen fonts */
- %@AS@% 1:1 = "Acme Helv 1:1", HV1:HV11.FON
- %@AS@% 4:3 = "Acme Helv 4:3", HV1:HV43.FON
- %@AS@% 2:1 = "Acme Helv 2:1", HV1:HV21.FON
- %@AS@% 1:1 = "Acme Tms 1:1", TR1:TR11.FON
- %@AS@% 4:3 = "Acme Tms 4:3", TR1:TR43.FON
- %@AS@% 2:1 = "Acme Tms 2:1", TR1:TR21.FON %@AE@%
-
- %@AS@% /* cartridge containing the fonts */
- %@AS@% "Acme Font Ser" = TR1:ACMECART.PCM
- %@AS@% } %@AE@%
-
-
-
-
-
-
- %@CR:C6A00100001 @%%@1@%%@AB@%Chapter 10 Developers' Tools%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter presents the features of the Microsoft Windows Printer Font
- Installer that are not in Part 1, "Fonts." These features were specifically
- put in the installer to help font vendors and technical support specialists.
- %@NL@%
-
-
- %@2@%%@CR:C6A00100002 @%%@AB@%10.1 Building an FINSTALL.DIR File%@AE@%%@EH@%%@NL@%
-
- The installer will build an FINSTALL.DIR file for the fonts listed in the
- %@AI@%left%@AE@% list box of the installer dialog. The developer should hold down the
- CTRL and SHIFT keys while clicking the mouse on the "Exit" button. The
- installer will prompt the user for the name and path of the FINSTALL.DIR
- file. If a file by the same name already exists, the installer will prompt
- to replace the file. %@NL@%
-
- This feature has several uses: %@NL@%
-
-
- ■ To preserve the soft font and cartridge entries when the user wants to
- reinstall Windows.%@NL@%
-
- ■ To expedite moving fonts to another machine.%@NL@%
-
- ■ As a starter file for developers or power users who want to set up a
- distribution disk of fonts.%@NL@%
-
-
- This feature is primarily intended to be used by technical support
- specialists who are directing users to perform certain operations. A user
- may be advised to erase part or all of the contents of his or her machine
- and start over. This feature is very useful in preventing the loss of soft
- font information. %@NL@%
-
- Chapter 12, "Installer Scenarios," provides sample uses of this feature. %@NL@%
-
-
- %@2@%%@CR:C6A00100003 @%%@AB@%10.2 Adding Fonts%@AE@%%@EH@%%@NL@%
-
- Developers can gain access to an advanced "Add fonts..." dialog by holding
- down the CTRL and SHIFT keys when clicking the mouse on the "Add fonts..."
- button. This dialog gives developers the following options: %@NL@%
-
-
- ■ Specify the path from which the installer should read fonts.%@NL@%
-
- ■ Rename the FINSTALL.DIR file. %@NL@%
-
- ■ Indicate if an error file should be written and specify its name.%@NL@%
-
-
- The first item is available to users via the normal "Add fonts..." dialog.
- The other two items are intended to be used by font vendors or power users
- setting up FINSTALL.DIR files for distribution. %@NL@%
-
- Before parsing the FINSTALL.DIR file, the installer will report the screen
- aspect ratio. The installer will classify the screen type as either CGA
- (2:1), EGA(4:3), or VGA(1:1). It uses the same algorithm to classify the
- screen fonts listed in the FINSTALL.DIR file. The fonts that match the
- category in which the screen was classified would be loaded by the
- installer. %@NL@%
-
- The formula the installer uses to classify screens is as follows: %@NL@%
-
-
- 1. Compute the screen width in lines-per-inch (horizontal resolution
- divided by horizontal size converted from millimeters to inches):%@NL@%
-
- %@STUB@% width = (%@AB@%GetDeviceCaps%@AE@%(HORZ_RES) * 25) / %@AB@%GetDeviceCaps%@AE@%(HORZSIZE)%@NL@%
-
- 2. Compute the screen height in lines-per-inch (vertical resolution
- divided by vertical size converted from millimeters to inches):%@NL@%
-
- %@STUB@% height = (%@AB@%GetDeviceCaps%@AE@%(VERT_RES) * 25) / %@AB@%GetDeviceCaps%@AE@%(VERTSIZE)%@NL@%
-
- 3. Take the inverse ratio of width to height:%@NL@%
-
- %@STUB@% ratio = (height * 10000) / width%@NL@%
-
- 4. Categorize the screen type based upon the ratio:
- %@TH: 4 246 01 31 45 @%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 0 to 6249 CGA (2:1)
- 6250 to 9374 EGA (4:3)
- 9375 and above VGA (1:1)
- %@TE: 4 246 01 31 45 @%
-
- %@NL@%
-
-
- It is highly recommended that font vendors use the advanced "Add fonts..."
- dialog to verify that there are no syntax errors in the FINSTALL.DIR file.
- If the installer finds errors in the FINSTALL.DIR file, it will write error
- messages in the FINSTALL.ERR file. The messages will be of the form: %@NL@%
-
- line<line-number>,near character<character position>:<error message> %@NL@%
-
- The installer also displays a dialog indicating that errors were found and
- written to the file. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00110001 @%%@1@%%@AB@%Chapter 11 .PFM Generator%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter describes the Microsoft Windows Printer Font Installer's .PFM
- file generator. When the installer scans a disk for soft fonts and there is
- no FINSTALL.DIR file, it assumes it will have to build .PFM files from the
- downloadable font files. It reads the header from the font file plus the
- widths of each individual character and uses that information to build the
- .PFM file. %@NL@%
-
- Please notice that when the installer scans a disk for fonts and there is no
- FINSTALL.DIR file, it will ignore any .PFM files already on the disk and
- will attempt to generate .PFM files from the font files. It will, however,
- recognize cartridge .PCM files. %@NL@%
-
-
- %@2@%%@CR:C6A00110002 @%%@AB@%11.1 Installer PFM Versus Vendor-Supplied PFM%@AE@%%@EH@%%@NL@%
-
- It is highly recommended that font vendors provide the .PFM files. The
- installer will supply a generic .PFM file that contains width table
- information and a guess at the font name. The .PFM files provided by the
- vendor are guaranteed to contain the correct name and may include pair-kern
- tables. The .PFM files from the vendor will more accurately represent the
- font and give the vendor a competitive advantage over fonts from other
- vendors. We have included the PFM Editor as a tool now for generating or
- editing .PFM files. See Chapter 3, "The PFM Editor," in Part 1, "Fonts," for
- a complete description of this new tool. %@NL@%
-
-
- %@2@%%@CR:C6A00110003 @%%@AB@%11.2 File Naming Scheme%@AE@%%@EH@%%@NL@%
-
- The installer builds the .PFM filename as follows: %@NL@%
-
- %@AB@%Character%@AE@% %@AB@%Definition%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 1, 2 First two characters from the font
- filename
-
- 3 P, L, or X for portrait, landscape, or
- both orientations
-
- 4 B, R, I, or E for bold, roman, italic,
- or bold/italic
- (enhanced)
-
- 5, 6, 7 Point size in points
-
- 8 Magic number
-
- The "magic number" is used by the installer to ensure that the filename is
- unique. It starts out at 0. If a file already exists by that name, it is
- incremented to 1. The installer continues to increment the number to 9, then
- A through Z. If it fails to find a unique filename out of the 36
- possibilities, then it will fail to build the .PFM file and report a "Cannot
- build PFM file" error message. %@NL@%
-
-
- %@2@%%@CR:C6A00110004 @%%@AB@%11.3 Regenerating .PFM Files%@AE@%%@EH@%%@NL@%
-
- This section deals with situations in which the user is re-installing
- existing fonts onto themselves without the aid of the FINSTALL.DIR file. The
- installer contains a protection mechanism that prevents it from generating
- duplicate .PFM files. There are two potential situations: %@NL@%
-
-
- 1. The user re-installs fonts with .PFM files that were initially
- generated by the installer.%@NL@%
-
- 2. The user re-installs fonts that were initially provided by the font
- vendor (i.e., either on the distribution disks or built by a utility
- provided by the font vendor).%@NL@%
-
-
- To "re-install" fonts, the user pulls up the Printer Font Installer, selects
- "Add fonts...," and directs the installer to read font information from the
- directory containing already installed fonts. Then the user installs fonts
- into the same directory. The installer will prompt the user if fonts should
- be replaced. If the user responds "yes," the installer proceeds to replace
- every font with itself. %@NL@%
-
- As described in the previous section, the installer contains a mechanism
- that guarantees it will find a unique name for each .PFM file. In this
- situation, the installer would give a unique name to a .PFM file that was a
- duplicate of an existing .PFM file. For example, suppose the first time a
- user installed a font, the installer generated a .PFM filename XYZ0.PFM.
- When the user re-installed the font, the installer would generate a second
- identical .PFM file named XYZ1.PFM. %@NL@%
-
- To prevent duplicate .PFM files on the disk, the installer contains a
- protection mechanism. If the "magic number" in the .PFM filename is not 0,
- then the installer compares the contents of the .PFM file to the other .PFM
- files sharing the same name. If it finds a duplicate, it erases the .PFM
- file it just built and uses the already existing .PFM file. %@NL@%
-
- This mechanism prevents the installer from placing duplicate .PFM files on
- the disk. However, it does not take care of the problem when .PFM files were
- originally supplied by the font vendor. %@NL@%
-
- If the user originally installs fonts provided by a font vendor and then
- re-installs without use of an FINSTALL.DIR file, the installer will %@AI@%replace%@AE@%
- the vendorsupplied .PFM files with its own generated .PFM files. It does not
- remove the .PFM files from disk; rather it adds its own .PFM files and uses
- them. Because the installer's PFM generator is not as accurate as the font
- vendor's .PFM files, the installer may actually end up %@AI@%renaming%@AE@% the fonts,
- which causes confusion for the user. %@NL@%
-
- Therefore, the user should never re-install soft fonts from and to the same
- directory without the aid of an FINSTALL.DIR file. Because the installer
- contains the ability to generate automatically an FINSTALL.DIR file of the
- already loaded fonts, there really is no reason for re-installing fonts
- without the use of an FINSTALL.DIR file. %@NL@%
-
- Section 12.3, "Recovering Soft Fonts From a WIN.INI Change," presents how
- the user would preserve the installed fonts using an FINSTALL.DIR file. %@NL@%
-
-
- %@2@%%@CR:C6A00110005 @%%@AB@%11.4 PFM Data From Font Data%@AE@%%@EH@%%@NL@%
-
- The installer's PFM generator derives the .PFM file from the data in the
- downloadable font file. The structure of the .PFM file is documented in Part
- 1, "Fonts." The following sections list where the data comes from for each
- field in the .PFM file structures. %@NL@%
-
-
- %@3@%%@CR:C6A00110006 @%%@AB@%11.4.1 PFM Header%@AE@%%@EH@%%@NL@%
-
- The installer derives the PFM header from the download file as follows: %@NL@%
-
- %@TH: 85 3197 02 34 44 @%
- Field Computation
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%dfVersion%@AE@% 256
-
- %@AB@%dfSize%@AE@% Size of file
-
- %@AB@%dfType%@AE@% 128
-
- %@AB@%dfPoints%@AE@% Height of the font in points (height from
- header * 72 / 1200)
-
- %@AB@%dfVertRes%@AE@% 300
-
- %@AB@%dfHorizRes%@AE@% 300
-
- %@AB@%dfAscent%@AE@% Baseline position from font header
-
- %@AB@%dfInternalLeading%@AE@% (Cell height - height + 2) / 4 from font
- header
-
- %@AB@%dfExternalLeading%@AE@% (height / 4) - baseline from font header
-
- %@AB@%dfItalic%@AE@% Set if the style byte in the header = 1
-
- %@AB@%dfUnderline%@AE@% 0
-
- %@AB@%dfStrikeOut%@AE@% 0
-
- %@AB@%dfWeight%@AE@% Derived from stroke weight (see table on
- following page)
-
- %@AB@%dfCharSet%@AE@% Based upon HP symbol set (see table on
- following page)
-
- %@AB@%dfPixWidth%@AE@% If variable width
-
- %@AB@%dfPixHeight%@AE@% Cell height from the font header
-
- %@AB@%dfPitchAndFamily%@AE@% Pitch bit is set if fixed pitch
-
- %@AB@%dfAvgWidth%@AE@% Average of all the character widths
- (cursor move)
-
- %@AB@%dfMaxWidth%@AE@% Maximum of all the character widths
- (cursor move)
-
- %@AB@%dfFirstChar%@AE@% First character in the font file
-
- %@AB@%dfLastChar%@AE@% Last character in the font file
-
- %@AB@%dfDefaultChar%@AE@% 127 - first character
-
- %@AB@%dfBreakChar%@AE@% 32 - first character
-
- %@AB@%dfWidthBytes%@AE@% 0
-
- %@AB@%dfDevice%@AE@% Offset from beginning of file to device
- string "PCL / HP LaserJet"
-
- %@AB@%dfFace%@AE@% Offset from beginning of file to face name
-
- %@AB@%dfBitsPointer%@AE@% 0
-
- %@AB@%dfBitsOffset%@AE@% 0
-
- %@AB@%dfCharOffset%@AE@% If variable pitch
-
- %@AB@%dfSizeFields%@AE@% Size of this part of the PFM structure
-
- %@AB@%dfExtMetricsOffset%@AE@% Offset from beginning of file to
- EXTTEXTMETRIC structure
-
- %@AB@%dfExtentTable%@AE@% 0
-
- %@AB@%dfOriginTable%@AE@% 0
-
- %@AB@%dfPairKernTable%@AE@% 0
-
- %@AB@%dfTrackKernTable%@AE@% 0
-
- %@AB@%dfDriverInfo%@AE@% Offset from beginning of file to
- DRIVERINFO (driver-specific) structure
-
- %@AB@%dfReserved%@AE@% 0
-
- %@TE: 85 3197 02 34 44 @%
-
- The installer derives the Windows weight value from the weight value in the
- font file header as follows: %@NL@%
-
- %@AB@%HP Weight%@AE@% %@AB@%Windows Weight%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- -7 100 (Thin)
-
- -6 100 (Thin)
-
- -5 200 (Extra light)
-
- -4 200 (Extra light)
-
- -3 300 (Light)
-
- -2 300 (Light)
-
- -1 400 (Normal
-
- 0 400 (Normal)
-
- 1 500 (Medium)
-
- 2 600 (Semi-bold)
-
- 3 700 (Bold)
-
- 4 700 (Bold)
-
- 5 800 (Extra bold)
-
- 6 800 (Extra bold)
-
- 7 900 (Heavy)
-
- The installer determines the Windows character set (%@AB@%dfCharSet%@AE@%) and the type
- of translation (in the driver-specific structure, %@AB@%xtbl.xtSymbolSet%@AE@%) from the
- symbol set field in the font file: %@NL@%
-
- %@TH: 13 827 02 15 23 38 @%
- HP symbol set Windows character set Translation
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- 8U (Roman-8) 0 (ANSI) Roman-8
- 0U (USASCII) 0 (ANSI) USASCII
- 11Q 0N (ECMA-94) 0 (ANSI)
- 8M (Math-8) 180 (Math-8) 8-bit pass through
- 15U (PI Font) 181 (PI Font) 8-bit pass through
- 0B (LineDraw) 182 (LineDraw) 7-bit pass through
- 4Q (PC Line) 183 (PC Line) 7-bit pass through
- 0B (TaxLnDrw) 184 (Tax Line) 7-bit pass through
- 1U (US Legal) 185 (US Legal) 7-bit pass through
- %@AI@%all others%@AE@% 0 (ANSI) 7- or 8-bit pass through
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@TE: 13 827 02 15 23 38 @%
-
- For the generic case, the installer checks the font type byte in the font
- header. If it is non-zero, the font uses an 8-bit pass through; if zero, the
- font uses a 7-bit pass through. %@NL@%
-
-
- %@3@%%@CR:C6A00110007 @%%@AB@%11.4.2 EXTTEXTMETRIC Data Structure%@AE@%%@EH@%%@NL@%
-
- The installer derives extended text metrics from the download header file as
- follows: %@NL@%
-
- %@TH: 68 3107 02 34 44 @%
- Field Computation
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%etmSize%@AE@% Size of EXTTEXTMETRIC
- structure
-
- %@AB@%etmPointSize%@AE@% Cell Height *1440 / 300 from font file
- header
-
- %@AB@%etmOrientation%@AE@% 2 if orientation byte set in header; 1 if
- not
-
- %@AB@%etmMasterHeight%@AE@% Cell height from font file header
-
- %@AB@%etmMinScale%@AE@% %@AB@%etmMasterHeight%@AE@%
-
- %@AB@%etmMaxScale%@AE@% %@AB@%etmMasterHeight%@AE@%
-
- %@AB@%etmMasterUnits%@AE@% %@AB@%etmMasterHeight%@AE@%
-
- %@AB@%etmCapHeight%@AE@% Baseline from header - d%@AB@%fInternalLeading%@AE@%
-
- %@AB@%etmXHeight%@AE@% Top offset from character record for 'x';
- left offset if landscape font
-
- %@AB@%etmLowerCaseAscent%@AE@% Top offset from character record for 'd';
- left offset if landscape font
-
- %@AB@%etmLowerCaseDescent%@AE@% Character width - left offset from
- character record for 'p'; height - top if
- landscape font
-
- %@AB@%etmSlant%@AE@% 0
-
- %@AB@%etmSuperScript%@AE@% %@AB@%etmCapHeight%@AE@% - %@AB@%etmXHeight%@AE@%
-
- %@AB@%etmSubScript%@AE@% %@AB@%Cell height from header%@AE@%
-
- %@AB@%etmSuperScriptSize%@AE@% %@AB@%Cell height from header%@AE@%
-
- %@AB@%etmSubScriptSize%@AE@% %@AB@%Cell height from header%@AE@%
-
- %@AB@%etmUnderlineOffset%@AE@% Top offset from character record for '_';
- left offset if landscape font
-
- %@AB@%etmUnderlineWidth%@AE@% Character width from character
- record for '_'; character height if
- landscape font
-
- %@AB@%etmDoubleUpperUnderlineOffset%@AE@% %@AB@%etmUnderlineOffset%@AE@% + %@AB@%etmUnderlineWidth%@AE@% * 2
-
- %@AB@%etmDoubleLowerUnderlineOffset%@AE@% %@AB@%etmUnderlineOffset%@AE@%
-
- %@AB@%etmDoubleUpperUnderlineWidth%@AE@% %@AB@%etmUnderlineWidth%@AE@%
-
- %@AB@%etmDoubleLowerUnderlineWidth%@AE@% %@AB@%etmDoubleUpperUnderlineWidth%@AE@%
-
- %@AB@%etmStrikeOutWidth%@AE@% Character width from record for '-';
- character height if landscape font
-
- %@AB@%etmStrikeOutOffset%@AE@% Left offset - %@AB@%etmStrikeOutWidth%@AE@% from
- character record for '-'; top
- offset - %@AB@%etmStrikeOutWidth%@AE@% if landscape
- font
-
- %@AB@%etmKernPairs%@AE@% 0
-
- %@AB@%etmKernTracks%@AE@% 0
-
- %@TE: 68 3107 02 34 44 @%
-
-
- %@3@%%@CR:C6A00110008 @%%@AB@%11.4.3 Device-Specific Data Structure%@AE@%%@EH@%%@NL@%
-
- The format of this structure is presented in Section 12.7, "Setting Up .PFM
- Files for Resident and Cartridge Fonts." %@NL@%
-
- %@TH: 23 950 02 34 44 @%
- Field Computation
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%epSize%@AE@% Size of DRIVERINFO structure
-
- %@AB@%epVersion%@AE@% 1
-
- %@AB@%epMemUsage%@AE@% ((sum of all character widths + 7) >> 3) *
- height + 63, function from the %@AI@%HP %@AE@%
- %@AI@%Technical Reference Manual%@AE@%
-
- %@AB@%epEscape%@AE@% 0
-
- %@AB@%xtbl.xtSymbolSet%@AE@% Based upon font symbol set (see HP symbol
- set table in Section 11.4.1, "PFM Header")
-
- %@AB@%xtbl.xtOffset%@AE@% 0
-
- %@AB@%xtbl.xtLen%@AE@% 0
-
- %@AB@%xtbl.xtFirstChar%@AE@% 0
-
- %@AB@%xtbl.xtLastChar%@AE@% 0
-
- %@TE: 23 950 02 34 44 @%
-
- %@NL@%
-
-
-
-
-
-
- %@CR:C6A00120001 @%%@1@%%@AB@%Chapter 12 Installer Scenarios%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter presents some sample uses of the Microsoft Windows Printer Font
- Installer. It starts with recommendations for selecting printer and screen
- fonts, then presents some "cookbook" approaches to performing certain tasks
- with the Printer Font Installer. %@NL@%
-
- We assume that the reader understands how to use the Printer Font Installer
- and has a basic understanding of MS-DOS. Help under the "Printer Font
- Installer" dialog describes the user interface to the installer. %@NL@%
-
- We recommend that all technical support specialists also read this chapter.
- %@NL@%
-
-
- %@2@%%@CR:C6A00120002 @%%@AB@%12.1 Selecting Printer Fonts%@AE@%%@EH@%%@NL@%
-
- Fonts take up disk space and printer memory. Planning which fonts are needed
- and installing only those fonts can save disk space. Selecting fonts is a
- highly subjective process. It requires making tradeoffs between document
- design and computer memory, disk space, printer memory, and printing speed.
- %@NL@%
-
- The recommendations presented in this section and Section 12.2, "Selecting
- Screen Fonts," are based upon experience gained from working with Windows
- and soft fonts. The intent of these recommendations is to help you optimize
- the amount of disk space and printer memory used by soft fonts. Some of the
- recommendations indicate that you should not load certain variations of
- fonts; you may want to experiment to determine if the additional expense in
- print time and disk space is worth including these fonts. %@NL@%
-
- We recommend loading the typographic range of point sizes and limiting
- documents to using these sizes. The typographic range is as follows: %@NL@%
-
- 6, 7, 8, 9, 10, 11, 12, 14, 18, 24, 30, 48, 60, 72 %@NL@%
-
- Better yet, if you know exactly which sizes you normally use in a document,
- load only those sizes. For example, a document may use only the following
- point sizes of Helv: %@NL@%
-
- 11 point for body text 9 point for running headers, running footers, and
- footnotes 14, 24, and 30 point bold for subheads and headlines %@NL@%
-
- By loading only these sizes, you reduce the number of fonts taking up disk
- space. %@NL@%
-
- We recommend generating normal and italic for all point sizes, and bold for
- point sizes equal to and above 14 points. The PCL driver has the capability
- to simulate bold text. It will not look the same as the true bold face, so
- you may want to experiment first (e.g., print a document with bold type but
- with no bold face loaded and, then, load the bold face and reprint the
- document). Normally, however, the driver-simulated bold face is adequate for
- the small point sizes. %@NL@%
-
- To save on even more space, we recommend that you load bold %@AI@%only%@AE@% for the
- larger sizes (i.e., 24 points and above). The assumption is that you will
- only use bold sizes for headlines. %@NL@%
-
- Avoid loading bold italic for a font. Bold italic consumes disk space and
- printer memory and, because bold italic is rarely used, it does not warrant
- the space it requires. As an alternative, the driver will simulate bold
- italic by synthetically bolding the italic face. %@NL@%
-
- Character sets can make a big difference in the amount of disk space and
- printer memory used by a font. If the document never uses accented
- characters or special symbols like the bullet (i.e., a centered period) and
- copyright, we recommend using the USASCII character set. If the document
- requires these characters, use the Windows ANSI, ECMA-94, or Roman-8
- character sets (listed in order of preference, depending upon which sets you
- have access to). %@NL@%
-
- Fonts in the USASCII character set contain a little more than half the
- number of characters contained in the Windows ANSI, ECMA-94, and Roman-8
- character sets. By selecting USASCII, you effectively half the amount of
- disk space and printer memory used by the font. We recommend using, in order
- of preference, Windows ANSI, ECMA-94, or Roman-8 for point sizes below 14
- points and USASCII for point sizes 14 points and above. Figure 12.1
- summarizes these recommendations. %@NL@%
-
- %@AU@%(This figure may be found in the printed book).%@AE@%%@NL@%
-
-
- %@2@%%@CR:C6A00120003 @%%@AB@%12.2 Selecting Screen Fonts%@AE@%%@EH@%%@NL@%
-
- Selecting screen fonts is considerably different from selecting printer
- fonts. The selection of screen font sizes should not be based upon the
- selected printer font sizes. It does not make sense to build one
- corresponding screen font for every printer font for the following reasons:
- %@NL@%
-
-
- ■ Screen fonts in Windows are sized and modified by the screen driver.
- The screen driver can derive normal, bold, italic, and bold italic
- variations from one screen font.%@NL@%
-
- ■ Screen fonts are selected by way of a generic selection process
- controlled by the application and the screen driver. One cannot assume
- that a screen font specifically targeted for a printer font will be
- used to display that font.%@NL@%
-
- ■ Some applications allow the user to see the font at different views
- (e.g., "fit in window," 100%, and 200%). A screen font should be
- provided for each view.%@NL@%
-
- ■ Most important, screen fonts take dynamic memory away from
- applications, thus slowing the overall performance of Windows.%@NL@%
-
-
- Poorly selected screen fonts can both degrade the performance of the system
- and produce highly confusing and ugly screen display. %@NL@%
-
- Regardless of the printer font sizes and variations selected, we recommend
- loading a shortened typographic range of screen fonts: %@NL@%
-
- 8, 9, 10, 12, 14, 18, 24 %@NL@%
-
- Load these fonts in normal face only; the screen driver can simulate bold,
- italic, and bold italic. There is no need to double, triple, or quadruple
- the memory used by screen fonts to get these special fonts. %@NL@%
-
- Do not load screen fonts for printer fonts that are like %@AI@%Tms Rmn%@AE@%, %@AI@%Helv%@AE@%, or
- %@AI@%Courier%@AE@%. Windows already provides those screen fonts. Additional screen
- fonts would use up memory without additional visual benefits. %@NL@%
-
- If you generate one printer font, you should generate the whole recommended
- range. Applications typically offer more than one view of the page, so the
- screen driver will need the different sizes to display the font in each
- view. %@NL@%
-
- If you feel you want the typographic quality of pre-built bold and italic
- screen fonts, then you should experiment to see if these fonts look better
- than fonts synthesized by the screen driver. Display a page of text with
- only the normal face loaded, then display it with the normal, bold, and
- italic faces loaded. %@NL@%
-
- Never load a bold or italic screen font without a corresponding normal face
- font. Without the normal face, the screen driver will always use the bold or
- italic face, producing an extremely confusing screen display. %@NL@%
-
- For example, suppose you decide to create a document that uses a 24-point
- italic font. You then load one printer and one screen font as 24-point
- italic. %@NL@%
-
- Thereafter, every time the screen driver determines it needs a 24-point
- screen font that is similar to the font that you installed, it will use the
- 24-point italic face. Regardless of the variation you want (i.e., normal,
- bold, or italic), the font will display in italic. %@NL@%
-
- As you add more fonts to your computer, the situation will become more
- confusing. To continue the example, suppose you decide to add the same
- printer and screen font as 48-point normal. %@NL@%
-
- When the application displays the 48-point font at 100% view on the screen,
- the font will display as 48-point normal (i.e., the correct behavior). At
- 50% view, the font will display as 24-point italic (because that is the only
- font available). When switching views, therefore, the font changes from
- normal to italic. %@NL@%
-
- You can avoid this problem simply by %@AI@%not%@AE@% loading anything other than the
- normal face of the screen font. Normally, the difference between the
- synthesized font and the "true" font is barely noticeable, if noticeable at
- all. If you must load the italic or bold variations, then you must also load
- the normal variation in the same size. %@NL@%
-
-
- %@2@%%@CR:C6A00120004 @%%@AB@%12.3 Recovering Soft Fonts From a WIN.INI Change%@AE@%%@EH@%%@NL@%
-
- Sometimes you need to remove the contents of your WINDOWS directory and
- reinstall Windows. In the process of doing this, you could lose all the soft
- font information. To prevent losing data: %@NL@%
-
-
- 1. Build an FINSTALL.DIR file.%@NL@%
-
- %@STUB@% From inside Windows, select the Printers icon from Control Panel, and
- then select the PCL / HP LaserJet printer, Configure, and Setup. %@NL@%
-
- %@STUB@% Once inside the driver-specific dialog, click on the "Fonts" button to
- invoke the Printer Font Installer. The fonts you plan to save should
- be listed in the left list box. Hold down the CTRL and SHIFT keys
- while clicking the mouse on the "Exit" button. The installer prompts
- for a filename and path. Click "OK" to accept the name of the
- FINSTALL.DIR file. Then, exit Windows.%@NL@%
-
- 2. Reinstall Windows.%@NL@%
-
- %@STUB@% Perform whatever steps are necessary to reinstall Windows (i.e.,
- remove everything in the WINDOWS directory and run Windows Setup).%@NL@%
-
- 3. Install from the directory to itself to get the soft fonts listed.%@NL@%
-
- %@STUB@% Run the Printer Font Installer on the new machine through the Control
- Panel's Printers icon. Select the PCL/HP LaserJet Printer and, then,
- Configure and Setup.%@NL@%
-
- %@STUB@% From the driver-specific dialog, click on the "Fonts" button to invoke
- the installer. If the "Fonts" button is not highlighted, then you need
- to select a printer that supports soft fonts (lower-left list box in
- the driver-specific dialog). Select "Add fonts..." and specify
- \PCLFONTS as the source for copying fonts. If your fonts are stored in
- another directory (such as FONTS or PCLPFM), then specify that
- directory.%@NL@%
-
- %@STUB@% Hold down the CTRL and SHIFT keys while selecting all the fonts in the
- right list box. Select the "Add..." button between the two list boxes.
- The installer prompts for a target directory. %@AI@%This must be equivalent
- %@AI@% to the directory from which you are installing the fonts%@AE@%. If you are
- installing from \PCLFONTS, then click "OK" to accept \PCLFONTS as the
- target directory. Otherwise, change the name to that of the directory
- that contains the soft fonts (such as FONTS or PCLPFM).%@NL@%
-
- %@STUB@% The installer then shuffles the fonts %@AI@%very quickly%@AE@% from the right list
- box to the left list box. It does not copy any fonts; it simply
- updates the WIN.INI file. If this does not happen quickly, then you
- probably did not build an FINSTALL.DIR file as described in Step 1 or
- did not install fonts from and to the same directory.%@NL@%
-
-
-
- %@2@%%@CR:C6A00120005 @%%@AB@%12.4 A Quick Method for Moving Fonts%@AE@%%@EH@%%@NL@%
-
- The purpose of this section is to describe how to move fonts from one
- machine to another. It is not intended for distributing fonts to several
- users. That procedure is described in Section 12.5, "Building a Floppy Disk
- Set of Fonts." This description is not intended to encourage illegal copying
- of fonts. We assume that you are %@AI@%removing%@AE@% fonts from one machine and adding
- them to another. %@NL@%
-
- The steps are as follows: %@NL@%
-
-
- 1. Build an FINSTALL.DIR file.%@NL@%
-
- %@STUB@% From inside Windows, select the Printers icon from Control Panel, and
- then select the PCL / HP LaserJet printer, Configure, and Setup.%@NL@%
-
- %@STUB@% Once inside the driver-specific dialog, click on the "Fonts" button to
- invoke the Printer Font Installer. The fonts you plan to save should
- be listed in the left list box. Hold down the CTRL and SHIFT keys
- while clicking the mouse on the "Exit" button. The installer prompts
- for a filename and path. Click "OK" to accept the name of the
- FINSTALL.DIR file. Then, exit Windows.%@NL@%
-
- 2. Use the MS-DOS %@AB@%xcopy%@AE@% command to copy files to a floppy disk, by
- following these instructions:%@NL@%
-
- %@STUB@% To change to the directory containing the soft fonts, type:%@NL@%
-
- %@AS@% cd \PCLFONTS%@AE@%
-
- %@STUB@% To format as many floppy disks as you think are necessary to hold the
- soft fonts, type:%@NL@%
-
- %@AS@% format A:%@AE@%
-
- %@STUB@% To make sure that all the files in the directory are %@AI@%not%@AE@% marked for
- archive, type:%@NL@%
-
- %@AS@% attrib -a *.*%@AE@%
-
- %@STUB@% To copy files to the first disk, type:%@NL@%
-
- %@AS@% xcopy *.* A: /m%@AE@%
-
- %@STUB@% If MS-DOS reports an "insufficient disk space" error, format another
- floppy disk (if necessary) and repeat the %@AB@%xcopy%@AE@% command. The %@AB@%/m%@AE@% option
- on the %@AB@%xcopy%@AE@% command instructs MS-DOS to mark the files it has copied
- to disk, so when you repeat the command it does not recopy the files
- that are already on disk.%@NL@%
-
- %@STUB@% Repeat the %@AB@%xcopy%@AE@% command until all the files are on the disk(s).%@NL@%
-
- 3. Copy the files from the floppy disk(s) to the new machine, by
- following these instructions:%@NL@%
-
- %@STUB@% On the new machine, to make a directory for the fonts, type:%@NL@%
-
- %@AS@% cd \
- %@AS@% mkdir \PCLFONTS
- %@AS@% cd \PCLFONTS%@AE@%
-
- %@STUB@% To copy the fonts from the floppy disk into the new directory, type:%@NL@%
-
- %@AS@% copy A:*.*%@AE@%
-
- %@STUB@% Repeat this step for every floppy disk.%@NL@%
-
- 4. Install from the directory to itself to get the soft fonts listed.%@NL@%
-
- %@STUB@% Run the Printer Font Installer on the new machine through the Control
- Panel's Printers icon. Select the PCL / HP LaserJet printer and, then,
- Configure and Setup.%@NL@%
-
- %@STUB@% From the driver-specific dialog, click on the "Fonts" button to invoke
- the installer. Select "Add fonts..." and specify \PCLFONTS as the
- source for copying fonts. The installer should list all the fonts you
- just copied into the \PCLFONTS directory.%@NL@%
-
- %@STUB@% Hold down the CTRL and SHIFT keys while selecting all the fonts in the
- right list box. Select the "Add..." button between the two list boxes.
- The installer will prompt for a target directory. %@AI@%This must be the
- %@AI@% same directory from which you are installing the fonts%@AE@%. If you are
- installing from \PCLFONTS, as these instructions indicate, then click
- "OK" to accept \PCLFONTS as the target directory.%@NL@%
-
- %@STUB@% The installer then shuffles the fonts %@AI@%very quickly%@AE@% from the right list
- box to the left list box. It does not copy any fonts; it simply
- updates the WIN.INI file. If this does not happen quickly, then you
- probably did not build an FINSTALL.DIR file as described in Step 1 or
- did not install fonts from and to the same directory.%@NL@%
-
-
- The fonts will be moved to the new machine. Notice that this procedure is
- probably the fastest and simplest way to move fonts from one machine to the
- next. However, we do not recommend it as a general method of distributing
- fonts. The installer has a more elegant and less error-prone way of loading
- fonts from floppy disks as described in the next section. %@NL@%
-
-
- %@2@%%@CR:C6A00120006 @%%@AB@%12.5 Building a Floppy Disk Set of Fonts%@AE@%%@EH@%%@NL@%
-
- This section describes how to set up a floppy disk set of fonts for
- distribution. This procedure is useful, for example, if a company chooses to
- use a range of fonts available from a font generation utility. One person
- could generate the fonts and create a disk set of fonts for internal
- distribution. Then, all the other users could quickly and easily install the
- pre-generated fonts without having to learn how to use the font generation
- utility. %@NL@%
-
- By providing this procedure, we do not encourage illegal copying of fonts.
- We assume that everyone receiving the fonts has either paid some kind of a
- licensing fee or has a copy of the font generation utility that was used to
- build the fonts. %@NL@%
-
- To use the following procedure, you must know how to use MS-DOS and a text
- editor. In addition, you should understand the advanced installer features
- described in Chapter 9, "FINSTALL.DIR," and Chapter 10, "Developers' Tools."
- %@NL@%
-
- The steps are as follows: %@NL@%
-
-
- 1. Install and/or generate the soft fonts.%@NL@%
-
- %@STUB@% Load the fonts onto your machine. If you are generating soft fonts,
- follow the recommendations outlined in Section 12.1, "Selecting
- Printer Fonts."%@NL@%
-
- %@STUB@% If you have control over the creation of screen fonts, follow the
- recommendations outlined in Section 12.2, "Selecting Screen Fonts."
- You should build a set of screen fonts for each type of display that
- may be used. Generally, this would be an EGA and/or a VGA.%@NL@%
-
- %@STUB@% When you make changes to the FINSTALL.DIR file (see Step 4), you can
- instruct the installer to load different screen fonts depending upon
- the aspect ratio of the machine receiving the fonts.%@NL@%
-
- 2. Build an FINSTALL.DIR file.%@NL@%
-
- %@STUB@% From inside Windows, select the Printers icon from Control Panel, and
- then select the PCL/HP LaserJet printer, Configure, and Setup. %@NL@%
-
- %@STUB@% Once inside the driver-specific dialog, click on the "Fonts" button to
- invoke the Printer Font Installer. The fonts you plan to save should
- be listed in the left list box. Hold down the CTRL and SHIFT keys
- while clicking the mouse on the "Exit" button. The installer prompts
- for a filename and path. Click "OK" to accept the name of the
- FINSTALL.DIR file. Then, exit Windows.%@NL@%
-
- 3. Arrange the font files, .PFM files, .PCM files, screen font files, and
- FINSTALL.DIR%@AI@% %@AE@%file onto disks.%@NL@%
-
- %@STUB@% If all the files fit on one disk, this is an easy task. If they do not
- and the number of fonts is great, this may be a major task. You will
- find recommendations for arranging them after this list.%@NL@%
-
- 4. Edit the FINSTALL.DIR file to add logical drives.%@NL@%
-
- %@STUB@% If the files require more than one disk, edit the FINSTALL.DIR file
- and add logical drives so the installer will know where all the files
- are. With logical drives properly set up, the installer will prompt
- the user to switch disks when necessary.%@NL@%
-
- %@STUB@% If you loaded screen fonts, add entries in the FINSTALL.DIR file for
- screen fonts as well. Place the screen fonts in the appropriate FAMILY
- block for which the screen fonts were made. The format of the
- FINSTALL.DIR file is described in Chapter 9, "FINSTALL.DIR."%@NL@%
-
- 5. Test the font installation process thoroughly.%@NL@%
-
- %@STUB@% Make sure that all the fonts are correctly loaded. If you have screen
- fonts for different aspect ratios, test loading fonts on machines with
- different screen displays.%@NL@%
-
- %@STUB@% Use the advanced "Add fonts..." button to check the syntax of your
- FINSTALL.DIR file and verify your screen display type as described in
- Chapter 10, "Developers' Tools."%@NL@%
-
-
- Arranging font files onto disks can be an extremely tedious task, especially
- if you have to set up disks for 360K, 720K (3.5 inch), and 1.2M builds and
- need to conserve disk space. %@NL@%
-
- Here are some recommendations: %@NL@%
-
-
- ■ Keep the screen font files for one FAMILY together on the same disk
- and make sure the lowest point size font is also on that disk.%@NL@%
-
- ■ Keep each .PFM file on the same disk as its corresponding printer font
- file.%@NL@%
-
- ■ Conserve disk space by putting the largest fonts on the disk with the
- smallest fonts.%@NL@%
-
- ■ If you are building the set for different disk densities, build the
- 360K set first, then put the files from two disks onto each 720K disk
- and the files from three disks onto each 1.2M disk.%@NL@%
-
-
- The easiest way to build the disk set is to place files on the disks in the
- exact order in which they appear in the FINSTALL.DIR file. That is, the
- FINSTALL.DIR file goes on first, followed by the screen fonts for the first
- family listed, followed by the .PFM and font files for that family. Make
- sure that all the screen font files for one family go on the same disk, and
- that at least one printer font (the first one listed in the FAMILY block)
- with its .PFM file also goes on that disk. %@NL@%
-
- Once the disk set is built and working, reorganize the files to optimize for
- disk space usage. For a sample FINSTALL.DIR file that shows logical drives
- and screen fonts, see Section 9.4, "Sample FINSTALL.DIR File." %@NL@%
-
-
- %@2@%%@CR:C6A00120007 @%%@AB@%12.6 Setting Up Fonts on a Network%@AE@%%@EH@%%@NL@%
-
- This section describes how a network administrator can set up fonts for use
- on a network. To use this procedure, you must know how to use MS-DOS and a
- text editor. In addition, you must understand the advanced installer
- features described in Chapter 8, "Permanent Soft Fonts," Chapter 9,
- "FINSTALL.DIR," and Chapter 10, "Developers' Tools." %@NL@%
-
- To set up fonts for use on a network, follow these steps: %@NL@%
-
-
- 1. Install and/or generate the soft fonts.%@NL@%
-
- %@STUB@% Load the fonts onto your machine. If you are generating soft fonts,
- follow the recommendations outlined in Section 12.1, "Selecting
- Printer Fonts."%@NL@%
-
- %@STUB@% If you have control over the creation of screen fonts, follow the
- recommendations outlined in Section 12.2, "Selecting Screen Fonts."
- You should build a set of screen fonts for each type of display that
- may be used. Generally, this would be an EGA and/or a VGA. %@NL@%
-
- %@STUB@% When you make changes to the FINSTALL.DIR file (see Step 5), you can
- instruct the installer to load different screen fonts depending upon
- the aspect ratio of the machine receiving the fonts.%@NL@%
-
- 2. Select permanent fonts.%@NL@%
-
- %@STUB@% To use permanently downloaded soft fonts, enter the Printer Font
- Installer (described in the next step) and select the fonts you want
- permanently downloaded to the printer. When you exit the installer, it
- will prompt you for the download options. Make sure download "at
- startup" (i.e., when your machine is turned on) is checked.%@NL@%
-
- 3. Build an FINSTALL.DIR file.%@NL@%
-
- %@STUB@% From inside Windows, select the Printers icon from Control Panel, and
- then select the PCL / HP LaserJet printer, Configure, and Setup. %@NL@%
-
- %@STUB@% Once inside the driver-specific dialog, click on the "Fonts" button to
- invoke the Printer Font Installer. The fonts you plan to save should
- be listed in the left list box. Hold down the CTRL and SHIFT keys
- while clicking the mouse on the "Exit" button. The installer prompts
- for a filename and path. Click "OK" to accept the name of the
- FINSTALL.DIR file. Then, exit Windows.%@NL@%
-
- 4. If you are not working from the file server, copy the fonts to the
- file server.%@NL@%
-
- %@STUB@% If you created and installed fonts from the network server, you can
- skip this step.%@NL@%
-
- %@STUB@% Set up a directory on the file server for the fonts and copy all the
- files to it. Use the MS-DOS commands to do this. If you set up
- permanent fonts, move the files created by the installer from your
- machine to the network machine and edit the AUTOEXEC.BAT file on the
- network to transfer the command line invoking the download batch file.
- Chapter 8, "Permanent Soft Fonts," describes how permanent soft fonts
- are set up.%@NL@%
-
- 5. Edit FINSTALL.DIR to add screen fonts.%@NL@%
-
- %@STUB@% If you generated screen fonts, edit the FINSTALL.DIR file to add
- references to the fonts. Chapter 9, "FINSTALL.DIR," describes the
- format of the FINSTALL.DIR file. There is also an example in Section
- 9.4, "Sample FINSTALL.DIR File."%@NL@%
-
- %@STUB@% You do not need to add logical drives to the FINSTALL.DIR file if all
- the font files and .PFM files reside in one directory.%@NL@%
-
- 6. Test the font installation process thoroughly.%@NL@%
-
- %@STUB@% Make sure that all the fonts are correctly loaded. If you have screen
- fonts for different aspect ratios, test loading fonts on machines with
- different screen displays.%@NL@%
-
- %@STUB@% Use the advanced "Add fonts..." button to check the syntax of your
- FINSTALL.DIR file and verify your screen display type as described in
- Chapter 10, "Developers' Tools."%@NL@%
-
- 7. Announce the availabilty of soft fonts to network users.%@NL@%
-
- %@STUB@% Instruct your users that the fonts are available. They can load the
- fonts by running the Printer Font Installer and selecting "Add
- fonts..." They should indicate the network drive and path to the
- directory containing the soft fonts (in response to the "Add fonts..."
- request for a directory). Installation of the fonts this way will be
- much faster than loading from floppy disks.%@NL@%
-
- %@STUB@% If you set up permanent soft fonts, then your instructions must list
- those fonts and their ID numbers for the users. Instruct the users to
- enable the "Edit" button and edit each of the permanent fonts,
- verifying the ID numbers. They must change the ID numbers on any fonts
- that do not match your list. See Help under the "Printer Font
- Installer" dialog for a description of the user interface.%@NL@%
-
-
- The only "tricky" part to setting up fonts on a network is making sure that
- all the users have assigned the correct IDs to their permanent fonts. This
- is not as difficult as it seems. There usually are only a few permanent
- fonts, and the installer resolves ID conflicts. If the user attempts to
- assign an ID to a font that is used by another font, the installer will ask
- the user if the other font should be assigned a new ID. The installer will
- select the first available ID number when assigning a new ID. %@NL@%
-
-
- %@2@%%@CR:C6A00120008 @%%@AB@%12.7 Setting Up .PFM Files for Resident and Cartridge Fonts%@AE@%%@EH@%%@NL@%
-
- It is possible to build special .PFM files for printer-resident and
- cartridge fonts. These fonts should be set up as permanently downloaded
- fonts in the WIN.INI file or collected into a cartridge .PCM file. The
- special .PFM files contain the escape sequences that the driver will send to
- the printer to use the fonts. %@NL@%
-
- Font or printer vendors will most likely build the .PFM and .PCM files.
- Chapter 2, "Printer Font Metrics (PFM) Files," in Part 1, "Fonts," describes
- the format of .PFM and .PCM files. %@NL@%
-
- In short, to set up cartridge and printer-resident fonts, the developer
- should do the following: %@NL@%
-
-
- 1. Build special .PFM files.%@NL@%
-
- 2. If appropriate, combine PFMs into a .PCM using the PFM Editor.%@NL@%
-
- 3. Make a special FINSTALL.DIR file for loading .PFM-only fonts or .PCM
- files.%@NL@%
-
-
- In addition to the structures described for the .PFM files, the driver has a
- driver-specific data structure that must be added to the file. The
- PFMEXTENSION structure contains a %@AB@%dfDriverInfo%@AE@% variable. This variable is a
- file offset to the driver-specific structure. (See Part 1, "Fonts," for more
- information on .PFM and .PCM file formats and the new PFM Editor.) For the
- PCL driver, the driver-specific structure looks like this: %@NL@%
-
- %@AS@% typedef enum
- %@AS@% {
- %@AS@% epsymUserDefined,
- %@AS@% epsymRoman8,
- %@AS@% epsymKana8,
- %@AS@% epsymMath8,
- %@AS@% epsymUSASCII,
- %@AS@% epsymLineDraw,
- %@AS@% epsymMathSymbols,
- %@AS@% epsymUSLegal,
- %@AS@% epsymRomanExt,
- %@AS@% epsymISO_DenNor,
- %@AS@% epsymISO_UK,
- %@AS@% epsymISO_France,
- %@AS@% epsymISO_German,
- %@AS@% epsymISO_Italy,
- %@AS@% epsymISO_SwedFin,
- %@AS@% epsymISO_Spain,
- %@AS@% epsymGENERIC7,
- %@AS@% epsymGENERIC8,
- %@AS@% epsymECMA94
- %@AS@% } SYMBOLSET;%@AE@%
-
- %@AS@% typedef struct
- %@AS@% {
- %@AS@% SYMBOLSET symbolSet; /* kind of translation table */
- %@AS@% DWORD offset; /* location of user-defined table */
- %@AS@% WORD len; /* length (in bytes) of table */
- %@AS@% BYTE firstchar, lastchar; /* table ranges from firstchar to
- %@AS@% /* lastchar */
- %@AS@% } TRANSTABLE;%@AE@%
-
- %@AS@% typedef struct
- %@AS@% {
- %@AS@% WORD epSize; /* size of this data structure */
- %@AS@% WORD epVersion; /* number indicates ver of struct */
- %@AS@% DWORD epMemUsage; /* amt of memory font takes up in
- %@AS@% /* printer */
- %@AS@% DWORD epEscape; /* pointer to the escape that
- %@AS@% /* selects the font */
- %@AS@% TRANSTABLE xtbl; /* character set translation info */
- %@AS@% } DRIVERINFO;%@AE@%
-
- The values of the fields in the DRIVERINFO structure should be filled in as
- follows: %@NL@%
-
- %@TH: 24 1049 02 34 44 @%
- Field Value
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- %@AB@%epSize%@AE@% size of (DRIVERINFO)
-
- %@AB@%epVersion%@AE@% 1
-
- %@AB@%epMemUsage%@AE@% An approximation of the printer memory
- used by the font
-
- %@AB@%epEscape%@AE@% An offset from the top of the file to the
- escape string that the driver should send
- to the printer to invoke the font
-
- %@AB@%xtbl.xtSymbolSet%@AE@% %@AB@%epsymGENERIC7%@AE@% for 7-bit fonts and %@AB@%%@AE@%
- %@AB@%epsymGENERIC8%@AE@% for 8-bit fonts
-
- %@AB@%xtbl.xtOffset%@AE@% (long)0
-
- %@AB@%xtbl.xtLen%@AE@% 0
-
- %@AB@%xtbl.xtFirstChar%@AE@% (BYTE)0
-
- %@AB@%xtbl.xtLastChar%@AE@% (BYTE)0
-
- %@TE: 24 1049 02 34 44 @%
-
- In addition, the escape string for invoking the fonts must be written to the
- .PFM file. The driver will use the escape string pointed to by %@AB@%epEscape%@AE@% to
- select the font. Once the .PFM and .PCM files are built, you must make an
- FINSTALL.DIR file. See Section 9.4, "Sample FINSTALL.DIR File," for an
- example. %@NL@%
-
- Sometimes, a user might need to install .PFM files for fonts that do not
- exist. Take, for example, the case in which a user needs to compose a file
- for a typesetting service and does not have the necessary fonts. If the
- typesetter could set up a special FINSTALL.DIR and the necessary .PFM files,
- they could give just this information to their customers and not force them
- to purchase the fonts. %@NL@%
-
- In .PFM files, the absence of the downloadable font file is indicated by two
- commas in the font string, as in the following example: %@NL@%
-
- %@AS@% "Tms Rmn 12pt"=PL, , CPY_TMS.PFM%@AE@%
-
- The installer loads these fonts as permanently downloadable soft fonts. This
- has one side effect. When the user exits the installer, it will prompt for
- download options. Because the installer thinks the fonts are permanent soft
- fonts, it will try to download them to the printer. However, it will not
- find the permanent font files because they do not exist. Therefore, the
- installer will simply ignore the files and not make a download batch file or
- open a print job. However, if these fonts are mixed in with other "real"
- permanent soft fonts, then the installer will correctly download those
- fonts. %@NL@%
-
- If the target printer is a standard LaserJet, the driver will not load soft
- font .PFM files. The driver will not load the .PFM files when the target
- printer cannot handle soft fonts. However, the user may instruct the driver
- to load cartridge font (PCM) information to gain access to the cartridge
- font information. To override the soft font restrictions, you can place the
- following flag in the driver-specific section of the WIN.INI file: %@NL@%
-
- %@AB@%options%@AE@%=7 %@NL@%
-
- This flag, described in Chapter 7, "WIN.INI Flags," instructs the driver to
- load soft font information regardless of the printer's abilities. However,
- this is not recommended. %@NL@%
-
-
-
-
-
-
- %@CR:C6A-Part 03 @%%@1@%%@AB@%PART III The PostScript Driver%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This part presents technical aspects of the version 3.3 Microsoft Windows
- PostScript printer driver. It should be read by technical support
- specialists, Windows application developers, and advanced users. %@NL@%
-
- We assume that the audience for this document has knowledge of how to build
- a Windows .PFM (Printer Font Metrics) file, which is documented in Part 1,
- "Fonts," and how to use MS-DOS and a text editor. %@NL@%
-
- These chapters outline the new features and their impact on applications.
- Some of the topics discussed are new escapes that are important for
- performance and new features support, the WIN.INI settings, the use of soft
- fonts, and external printer and header support. (See the %@AI@%Microsoft Windows
- %@AI@%Software Development Kit%@AE@% and the %@AI@%Microsoft Windows Device Development Kit%@AE@%
- documentation for a complete list of escapes.) %@NL@%
-
-
-
-
-
-
- %@CR:C6A00130001 @%%@1@%%@AB@%Chapter 13 Overview of the PostScript Driver%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- The Microsoft Windows PostScript driver version 3.3 uses many of the new
- Windows 3.0 features and improves on past versions of the driver in the
- following areas: %@NL@%
-
-
- ■ Speed%@NL@%
-
- ■ Memory utilization%@NL@%
-
- ■ Functionality%@NL@%
-
-
- Versions 3.3 and higher produce output faster with optimized output
- functions. Printing speeds are increased by producing tighter, more
- efficient PostScript code. This is necessary because the size of the output
- produced is critical when output must travel over serial communication
- lines. %@NL@%
-
- The driver has been segment optimized to enable printing in very low memory
- situations. %@NL@%
-
- Full RGB color is supported in output primitives, including text and
- bitmaps. On black and white printers, the PostScript color machinery
- converts RGB colors to gray levels. %@NL@%
-
- Windows 3.0 device-independent bitmaps (DIBs) are supported allowing
- multiple bit-per-pixel images to be rendered on both black and white and
- color devices. Bitmap output has been vastly improved by the inclusion of
- the %@AB@%StretchBlt()%@AE@% function in the GDI/Driver interface. PostScript's ability
- to scale bitmaps is now used along with some compression techniques to
- reduce the size and increase the speed of bitmap output. %@NL@%
-
- The following are limitations placed on the driver by PostScript: %@NL@%
-
-
- ■ PostScript does not support most raster operations (Rops). However, it
- does support BLACKNESS, WHITENESS, and SRCCOPY.%@NL@%
-
- ■ PostScript has a 750-point polygon limit. This number is reduced by
- two when filling with a hatch or pattern. This is because a clipping
- path must be built as well as the path to fill and stroke. In cases
- where this limit is reached, the driver will request that GDI simulate
- the polygon. This is very slow. Applications should, therefore, avoid
- generating large polygons.%@NL@%
-
-
-
-
-
-
-
- %@CR:C6A00140001 @%%@1@%%@AB@%Chapter 14 New Features%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- The following sections in this chapter include brief descriptions of the
- major new features incorporated into the version 3.3 Microsoft Windows
- PostScript driver. References are also made to other documents and chapters
- for further detailed information. %@NL@%
-
-
- %@2@%%@CR:C6A00140002 @%%@AB@%14.1 Color%@AE@%%@EH@%%@NL@%
-
- The PostScript driver is a one bit-per-pixel device. However, this does not
- mean it can represent only black and white. Bitmaps in a one bit-per-pixel
- format can use any color for the foreground and background. %@NL@%
-
- On black and white devices, colors are converted to gray levels by the
- PostScript color machinery. For example, when a bitmap is transferred to the
- printer, the foreground and background colors are examined to determine the
- two colors to use for the transfer. %@NL@%
-
- Windows uses %@AI@%brushes%@AE@% to fill objects. %@AI@%Patterned brushes%@AE@% are defined by an
- 8x8 bitmap that is used to tile a region that is to be filled. However,
- since the PostScript driver is a one bit-per-pixel device, there is no color
- information stored in its brushes. When a brush is used to fill an object,
- the current text and background colors are used. %@NL@%
-
-
- %@2@%%@CR:C6A00140003 @%%@AB@%14.2 Device-Independent Bitmaps%@AE@%%@EH@%%@NL@%
-
- Device-independent bitmaps (DIBs) are used to deal with more than one
- bit-per-pixel bitmaps. The implementation in the PostScript driver uses the
- PostScript %@AI@%image%@AE@% operator on black and white devices and the %@AI@%colorimage%@AE@%
- operator on color devices to render multiple bit-per-pixel images. (Notice,
- however, that this makes the output printer-dependent.) %@NL@%
-
- Applications that want to print multiple bit-per-pixel images should use the
- %@AB@%SetDIBitsToDevice()%@AE@% or %@AB@%StretchDIBitsToDevice()%@AE@% function to render these
- images. GDI will simulate these if the driver does not support them. %@NL@%
-
- For an example of how this is used, examine the source of the sample
- application SHOWDIB, provided on the SDK disks. %@NL@%
-
-
- %@2@%%@CR:C6A00140004 @%%@AB@%14.3 External Printer and Printer Font Metrics Support%@AE@%%@EH@%%@NL@%
-
- External printer descriptions are supported by the PostScript driver. When
- supplied with the proper files, the PostScript driver can support printers
- that are not listed in the default printer list of the printer Setup dialog.
- These are discussed in detail in Chapter 16, "WIN.INI Settings." For more
- information on how Microsoft supports external printer descriptions, see
- Chapter 17, "External Printer Descriptions Support."%@AB@% %@AE@%%@NL@%
-
- For printers that have hard disks or resident fonts from some other source,
- external .PFM files can be added to WIN.INI to make the driver aware of
- these fonts. This is similar to the way softfonts are installed and is
- discussed in detail in Chapter 16, "WIN.INI Settings." %@NL@%
-
-
- %@2@%%@CR:C6A00140005 @%%@AB@%14.4 PostScript Header Support%@AE@%%@EH@%%@NL@%
-
- The size of the PostScript header has been reduced to less than 8K. Most
- header functions have been rewritten with efficiency and compactness in mind
- and all the unnecessary white space removed. This reduces the overhead of
- print jobs that include the header to only a few seconds. %@NL@%
-
- Problems with the header downloading mechanism have been fixed. For users
- that want to reduce printing times as much as possible, they should download
- the header to their printer using the Print Options dialog to make all the
- functions used be resident in the printer. With the header in place,
- printing times are reduced by about 10 seconds. However, for sending files
- to service bureaus, the header must be included in the print job and not
- downloaded previously. %@NL@%
-
-
- %@2@%%@CR:C6A00140006 @%%@AB@%14.5 The Error Handler%@AE@%%@EH@%%@NL@%
-
- There is an error handler built into the driver that may be downloaded to
- the printer. With the error handler resident in the printer, any time an
- error occurs it will print the contents of the page and, then, print a sheet
- that indicates what error occurred and what was on the PostScript stack. %@NL@%
-
- This can be useful for diagnosing printing problems. Sophisticated
- PostScript users may want to send their own PostScript to the printer (as
- done by some applications such as Corel Draw and Adobe Illustrator(tm)). For
- them, this is a good debugging tool. %@NL@%
-
- To access the error handler, press ALT+E in the Print Options dialog (notice
- that there is no button, since this is an invisible control). From there,
- the error handler can be sent to a file or to the printer. %@NL@%
-
-
- %@2@%%@CR:C6A00140007 @%%@AB@%14.6 GDI StretchBlt() Support%@AE@%%@EH@%%@NL@%
-
- In Windows 3.0, GDI enables drivers to support the %@AB@%StretchBlt()%@AE@% function
- directly. In the past, GDI would do the stretching itself and build a
- temporary bitmap at the device resolution. This was very slow and consumed a
- lot of memory. PostScript, though, supports arbitrary scaling of bitmap
- images so this was also unnecessary. %@NL@%
-
- With %@AB@%StretchBlt()%@AE@% implemented at the device-driver level in the PostScript
- driver, the source bitmap is transferred directly to the printer and
- stretched using the PostScript %@AI@%imagemask%@AE@% operator. An RLE compression scheme
- has also been implemented to reduce the amount of data that needs to be
- transferred to the printer. For most images, this means much less data is
- produced and rendering is much faster.%@AB@% %@AE@%%@NL@%
-
-
- %@2@%%@CR:C6A00140008 @%%@AB@%14.7 Device Initialization%@AE@%%@EH@%%@NL@%
-
- The PostScript driver supports the Windows 3.0 device initialization
- functions. This means that applications can maintain private,
- device-independent initialization data that is separate from the default
- configurations set using Control Panel. %@NL@%
-
- For more information, see the documentation on the %@AB@%ExtDeviceMode()%@AE@% and
- %@AB@%DeviceCapabilities()%@AE@% functions in the %@AI@%Microsoft Windows Software Development
- %@AI@%Kit%@AE@%. %@NL@%
-
-
- %@2@%%@CR:C6A00140009 @%%@AB@%14.8 Rotated Text%@AE@%%@EH@%%@NL@%
-
- The version 3.3 Windows PostScript driver can support printing text at any
- angle. Applications may create fonts using any Escapement value (i.e., by
- specifying the angle of the baseline). The only limitation is that the
- Orientation (i.e., the angle of individual characters) is ignored. %@NL@%
-
-
- %@2@%%@CR:C6A00140010 @%%@AB@%14.9 EPS Printing%@AE@%%@EH@%%@NL@%
-
- Users can produce an Encapsulated PostScript (EPS) file that can be imported
- into applications such as Aldus PageMaker with any Windows application that
- prints using the PostScript driver. This is done by selecting "Print to EPS
- file" on the PostScript Options dialog box and, then, printing. The output
- of the print job is redirected into the PostScript-only EPS file specified
- in the Options dialog box. No alternate representation of the image (e.g.,
- metafile or TIFF image) is produced by the driver. %@NL@%
-
- By default, the bounding rectangle is the whole page (i.e., the imageable
- area of the page). If the printing application issues a SETBOUNDS escape,
- that rectangle will be used instead of the whole page. Therefore, before
- printing a page, every application that might possibly have its output sent
- to an EPS file should issue a SETBOUNDS escape with the bounding rectangle
- of all the output. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00150001 @%%@1@%%@AB@%Chapter 15 Escapes%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter discusses briefly only three of the main PostScript-related
- printer escapes. Detailed descriptions of most of them are available in the
- M%@AI@%icrosoft Windows Device Driver Adaptation Guide%@AE@% (which has driver-oriented
- descriptions) and/or in the %@AI@%Microsoft Windows Software Development Kit%@AE@%
- (which has application-oriented descriptions). %@NL@%
-
- The EPSPRINTING escape is intended for applications that produce their own
- PostScript. It suppresses the Windows PostScript header. With this option
- on, no GDI output functions will work. %@NL@%
-
- The POSTSCRIPT_DATA escape is just like the PASSTHROUGH (also known as
- DEVICE_DATA) escape except that it is recognized only by PostScript devices.
- This escape is intended for applications that produce two representations of
- the output: one intended for PostScript devices and the other for
- non-PostScript devices. It should be used in conjunction with
- POSTSCRIPT_IGNORE to make the PostScript driver ignore the GDI
- representation. %@NL@%
-
- The POSTSCRIPT_IGNORE escape is used to make the PostScript driver ignore or
- accept all the output. %@AI@%lpInData%@AE@% points to a BOOL that indicates whether the
- GDI functions should be ignored (TRUE) or not (FALSE, the default). %@NL@%
-
-
-
-
-
-
- %@CR:C6A00160001 @%%@1@%%@AB@%Chapter 16 WIN.INI Settings%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- This chapter discusses several PostScript-related WIN.INI settings and how
- to enter soft fonts in the Microsoft Windows WIN.INI file. %@NL@%
-
-
- %@2@%%@CR:C6A00160002 @%%@AB@%16.1 Global Initialization Section%@AE@%%@EH@%%@NL@%
-
- The following is an example of the global initialization section, which
- contains data that is not associated with a particular port. As of now, this
- includes the presence of external printers (i.e., printers added through the
- "Add Printer..." button on the Setup dialog) that are defined in .WPD files.
- %@NL@%
-
- %@AS@% [PSCRIPT]
- %@AS@% External Printers=2
- %@AS@% printer1=abc_ps
- %@AS@% printer2=xyz_ps%@AE@%
-
- Where: %@NL@%
-
- "External Printers" indicates how many external printers there are.
- "printer%@AI@%n%@AE@%" indicates the base filename of a given external printer. %@NL@%
-
-
- %@2@%%@CR:C6A00160003 @%%@AB@%16.2 Per-Port Initialization Section%@AE@%%@EH@%%@NL@%
-
- The following is an example of the per-port initialization section, which
- contains data that is specific to each port connection. Notice that Windows
- saves the state of printer connections on a per-port basis. %@NL@%
-
- %@AS@% [PostScript,COM1]
- %@AS@% device=4
- %@AS@% feed2=1
- %@AS@% feed15=5
- %@AS@% softfonts=4
- %@AS@% softfont1=filea.pfm, c:\fonts\filea.agb
- %@AS@% softfont2=fontb.pfm, c:\fonts\fontb.agb
- %@AS@% softfont3=fontc.pfm
- %@AS@% softfont4=fontd.pfm%@AE@%
-
- Soft fonts may also reference the internal font metrics built into the
- driver. To do this, add a %@AB@%softfont%@AE@%%@AI@%n%@AE@% entry that references the base name of
- the built-in .PFM file, as in the example "%@AB@%softfont5=%@AE@%CB" for "Courier-Bold."
- For a complete list of the available .AFM filenames, see the README.TXT file
- on the last disk of the DDK set of disks. %@NL@%
-
-
- %@2@%%@CR:C6A00160004 @%%@AB@%16.3 Use of Soft Fonts%@AE@%%@EH@%%@NL@%
-
- The %@AB@%softfont%@AE@%%@AI@%n%@AE@% entries in WIN.INI can be used for several different purposes.
- Basically, they inform the driver that a given printer has extra fonts
- available and, if necessary, indicate a file that needs to be downloaded to
- make that font available. If there is a second file listed in a %@AB@%softfont%@AE@%%@AI@%n%@AE@%
- entry, it is assumed that it needs to be downloaded to activate the given
- font. Thus, soft fonts can be used to support resident printer fonts that
- have been downloaded previously, that reside on a printer's hard disk, or
- that are available in some other form. %@NL@%
-
- The %@AB@%softfonts%@AE@% entry indicates how many soft fonts are installed and listed.
- The maximum number of soft fonts allowed now is 255. The limit was 99 in
- version 3.2 and earlier ones. %@NL@%
-
- Each %@AB@%softfont%@AE@%%@AI@%n%@AE@% entry references the .PFM file associated with a soft font
- and, optionally, the soft font that will be downloaded to the printer at
- print time. Each filename may be a complete pathname. The two forms of soft
- fonts supported are described in the following subsections. %@NL@%
-
-
- %@3@%%@CR:C6A00160005 @%%@AB@%16.3.1 Adobe Soft Font Format (.AGB)%@AE@%%@EH@%%@NL@%
-
- Adobe soft fonts are recognized by the string "%!PS-AdobeFont" being found
- at offset 6 in the file. The first 6 bytes are defined by the following data
- structure: %@NL@%
-
- %@AS@% typedef struct{
- %@AS@% unsigned char flag;
- %@AS@% char type; /* 1 means data is ASCII, 2 means binary */
- %@AS@% /* (convert to ascii) */
- %@AS@% long length; /* length of the data that follows */
- %@AS@% } HDR;%@AE@%
-
- The fields indicate the length of the soft font as well as the type (ASCII
- or binary). Binary forms are converted to hex ASCII by the driver; ASCII
- fonts are copied directly. %@NL@%
-
-
- %@3@%%@CR:C6A00160006 @%%@AB@%16.3.2 Non-Adobe Soft Font Format%@AE@%%@EH@%%@NL@%
-
- Fonts that do not have the above-mentioned signature are copied to the
- output stream. Therefore, the whole file must be in PostScript code that
- describes the font. %@NL@%
-
-
-
-
-
-
- %@CR:C6A00170001 @%%@1@%%@AB@%Chapter 17 External Printer Descriptions Support%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- Version 3.3 of the Microsoft Windows PostScript printer driver supports the
- ability to add external printer descriptions. Users can install a new
- printer definition by simply choosing the "Add Printer..." button on the
- printer Setup dialog box. %@NL@%
-
- For the user to be able to do this, the printer manufacturer must supply a
- disk with information about the device. Printer manufacturers need to
- produce Windows Printer Description (.WPD) files by compiling Adobe standard
- .PPD files with the MKPRN.EXE utility. This chapter describes how printer
- manufacturers can build a distribution disk and a .WPD file that will enable
- users to add a printer to the Microsoft Windows PostScript printer driver. %@NL@%
-
- The PostScript Printer Description (.PPD) file format was defined by Adobe
- and extended by the Microsoft Windows PostScript printer driver to provide a
- basis for external printer descriptions. This file is then compiled into a
- Windows Printer Description (.WPD) file with a tool provided in this kit.
- For a particular PostScript printer to be supported in the Windows
- PostScript printer driver, it must have a .WPD file describing the following
- attributes: %@NL@%
-
-
- ■ What fonts are resident %@NL@%
-
- ■ How many paper sizes and input trays are supported %@NL@%
-
- ■ How sizes and trays are activated %@NL@%
-
- ■ What is the imageable area of each of the supported page sizes (i.e.,
- the area on which the printer can actually mark)%@NL@%
-
-
- A few extensions have also been made to the WPD definition to enable Windows
- to take advantage of paper-handling capabilities. %@NL@%
-
- For further information on PostScript Printer Description files, you need to
- obtain from Adobe their document %@AI@%PostScript PRINTER DESCRIPTION FILES
- %@AI@%Specification Version 3.0.%@AE@% %@NL@%
-
-
- %@2@%%@CR:C6A00170002 @%%@AB@%17.1 Tools Provided%@AE@%%@EH@%%@NL@%
-
- The following files are provided with the DDK to support adding external
- printer descriptions: %@NL@%
-
- %@AB@%File%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- MKPRN.EXE The MKPRN compiler. An MS-DOS
- application that reads .PPD and .PFM
- files to produce the Windows Printer
- Description (.WPD) file.
-
- *.PFM The 63 .AFM files (Font Metric files)
- that are needed to build the font
- directories for each printer. (See the
- README.TXT file on the last DDK disk for
- a complete list of the files.) These
- files correspond to the font metrics
- built into the driver. Printers with
- fonts that are not found here need to be
- installed as "soft fonts" as described
- in Chapter 16, "WIN.INI Settings."
-
- *.PPD The .PPD sample files.
-
- If you need to define a font that is not available currently in the
- PostScript printer driver, you will need to modify the driver sources to add
- additional .AFM files. Please refer to the PostScript driver's MAKE file
- that is included on the DDK disks for more information on how the driver
- builds .AFM and .PFM files. %@NL@%
-
-
- %@2@%%@CR:C6A00170003 @%%@AB@%17.2 Building an External Printer Distribution Disk%@AE@%%@EH@%%@NL@%
-
- This section includes step-by-step procedures for building an external
- printer distribution disk. %@NL@%
-
- First, to generate the required files, do the following: %@NL@%
-
-
- 1. Build a .PPD file that fully describes your printer.%@NL@%
-
- 2. Use MKPRN.EXE to build the .WPD file.%@NL@%
-
- 3. Make a PRINTERS.INI file that lists the printers available for
- installation.%@NL@%
-
-
- Second, to build a distribution disk, do the following: %@NL@%
-
-
- 1. Copy the .WPD file to the distribution disk.%@NL@%
-
- 2. Copy the PRINTERS.INI file to the distribution disk.%@NL@%
-
-
- Finally, to test your printer, do the following: %@NL@%
-
-
- 1. Use the distribution disk you just built to install your printer.
- Choose the "Add Printer..." button on the PostScript printer Setup
- dialog and add the appropriate printer.%@NL@%
-
- 2. Select the newly installed printer from the "Printers list" in the
- main dialog box.%@NL@%
-
- 3. Test the features of your printer. You will probably want to have the
- error handler downloaded to the printer. You can download the error
- handler by pressing ALT+E in the printer Options dialog. Be sure to
- test the following features:
-
- ■ Paper sizes. Make sure that all the paper sizes are available and
- that the imageable areas are correct.%@NL@%
-
- ■ Paper sources. Test that all the paper sources can be selected
- properly.%@NL@%
-
- ■ Normalized transfer function. Use an application (e.g.,
- Micrografx(tm) Designer 2.0) that can generate gradiated fills to
- make sure that gray levels are represented in a linear fashion.%@NL@%
- %@NL@%
-
-
- If you find any problems, make the appropriate changes to the .PPD file,
- rebuild the .WPD file, and install the new WPD over the existing one. %@NL@%
-
- ────────────────────────────────────────────────────────────────────────────%@NL@%
- NOTE
-
- %@AI@%The description string in PRINTERS.INI needs to match the "*NIckName"
- %@AI@%keyword from the .PPD file.%@AE@%
- ────────────────────────────────────────────────────────────────────────────%@NL@%
-
-
- %@2@%%@CR:C6A00170004 @%%@AB@%17.3 The MKPRN Compiler%@AE@%%@EH@%%@NL@%
-
- Adobe standard PostScript Printer Description (PPD) files contain the
- information needed for the Microsoft Windows PostScript printer driver to
- support a particular printer. The PPD keywords and extensions are described
- in Section 17.5, "Keywords and Extensions." %@NL@%
-
- The MKPRN compiler takes as input the .PPD file that you generate and all
- the .PFM files referenced in that .PPD file. It then produces the .WPD file
- needed for a printer to be supported by the Windows PostScript printer
- driver. %@NL@%
-
- ────────────────────────────────────────────────────────────────────────────%@NL@%
- NOTE
-
- %@AI@%.PPD files must be standard ASCII files with CR/LF pairs terminating each
- %@AI@%line.%@AE@%
- ────────────────────────────────────────────────────────────────────────────%@NL@%
-
-
- %@2@%%@CR:C6A00170005 @%%@AB@%17.4 The .PPD File Format%@AE@%%@EH@%%@NL@%
-
- A .PPD file is an ASCII file with keywords at the start of every line. The
- keywords that the current MKPRN compiler expects are listed in the following
- section. In the future, more keywords may be recognized. For example, the
- "*FileSystem" keyword may be used to determine if a printer supports fonts
- loaded on a hard disk. %@NL@%
-
- Therefore, the .PPD file for your printer should be as complete as possible.
- Refer to the Adobe document %@AI@%PostScript PRINTER DESCRIPTION FILES
- %@AI@%Specification Version 3.0 %@AE@%and examine the sample .PPD files included in the
- DDK for more information on .PPD files. %@NL@%
-
-
- %@2@%%@CR:C6A00170006 @%%@AB@%17.5 Keywords and Extensions%@AE@%%@EH@%%@NL@%
-
- The following list provides descriptions of the PPD keywords: %@NL@%
-
- %@AB@%Keyword%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- *NickName The name that appears in the printer
- dialog box. It should be a unique
- description of the printer. This is also
- the name used for automatic printer
- recognition.
-
- *ColorDevice Indicates whether or not the printer
- supports color.
-
- *FileSystem Currently unused but may be used in the
- future.
-
- *DefaultResolution The default resolution of the printer.
-
- *Transfer Normalized The normalized transfer function used to
- generate linear gray levels. This must
- be present. If none is
- required, include the NULL function "{
- }."
-
- *PaperDimension The size of all the used paper types. A
- Paper Dimension entry must be included
- for every size of paper supported.
- Notice that the sizes of the standard
- page types should be used. Only standard
- page types are recognized (see the
- following list).
-
- *PageSize The PostScript code used to invoke the
- different page sizes that are supported
- (when not in manual-feed mode).
-
- *PageRegion The PostScript code that is necessary to
- invoke different page sizes when using
- manual feed.
-
- *ImageableArea The actual area that can be marked on
- for every paper size.
-
- *ManualFeed True The PostScript code that is necessary to
- invoke the manual feed operation. If
- present, it is assumed that manual feed
- is supported (and, therefore, PageRegion
- entries must be included).
-
- *ManualFeed False The PostScript code that is necessary to
- turn off manual feed. If present, it is
- assumed that manual feed is supported.
-
- %@AB@%Keyword%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- *DefaultFont The name of the default font (i.e., the
- font used if none is selected). This
- entry must appear before any "*Font"
- entries.
-
- *Font The fonts resident in the printer.
-
- *DefaultInputSlot The default input slot.
-
- *InputSlot The PostScript code that is necessary to
- invoke each input slot.
-
- Currently, there is only one keyword extension. %@NL@%
-
- %@AB@%Extension%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- *EndOfFile Indicates whether or not ^D is required
- to indicate EOF. This is true by default
- and only needs to be
- included if this is false (i.e.,
- "*EndOfFile False").
-
- The following are the paper keywords used to show the paper sizes supported:
- %@NL@%
-
- %@AB@%Keyword%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- Letter 8 1/2 x 11 inches physical size. Refers
- to the standard paper type.
-
- LetterSmall 8 1/2 x 11 inches physical size but with
- a reduced-size imageable region that is
- centered on the page. Supports the Adobe
- PostScript paper definitions.
-
- Tabloid 11 x 17 inches physical size, oriented
- in "portrait" or "tabloid" mode (i.e.,
- the y-axis is on the longer edge of the
- paper).
-
- Ledger 17 x 11 inches physical size, oriented
- in "landscape" mode (i.e., the y-axis is
- on the shorter edge of the paper).
-
- Legal 8 1/2 x 14 inches physical size,
- oriented in
- "portrait" mode.
-
- Statement 5 1/2 x 8 1/2 inches physical size,
- oriented in
- "portrait" mode.
-
- A3 297 x 420 millimeters physical size,
- oriented in
- "portrait" mode. Refers to the
- International Standards Organization
- (ISO)/(JIS) A3 paper size.
-
- A4 210 x 297 millimeters physical size,
- oriented in
- "portrait" mode.
-
- %@AB@%Keyword%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- A4Small 210 x 297 millimeters physical size but
- with a reduced-size imageable area of
- 7.47 x 10.85 inches that is centered on
- an A4 page. Supports the Adobe
- PostScript paper definitions.
-
- A5 148 x 210 millimeters physical size,
- oriented in
- "portrait" mode.
-
- B4 250 x 354 millimeters physical size,
- oriented in "portrait" mode. Refers to
- the Japanese Industrial Standard (JIS)
- B4 paper size.
-
- B5 182 x 257 millimeters physical size,
- oriented in
- "portrait" mode.
-
- Folio 8 1/2 x 13 inches physical size but with
- a reduced-size imageable region,
- oriented in "portrait" mode and centered
- on the "folio" sheet. Supports the Adobe
- PostScript paper definitions.
-
- Quarto 215 x 275 millimeters physical size but
- with a reduced-size imageable region,
- oriented in "portrait" mode and centered
- on the "quarto" sheet.
-
- 10x14 10 x 14 inches physical size, oriented
- in "portrait" mode.
-
- 11x17 11 x 17 inches physical size, oriented
- in "portrait" mode. Can be used
- interchangeably with the keyword Tabloid.
-
- Note 8 1/2 x 11 inches physical size but with
- a reduced-size imageable region. This is
- used to reduce the size of the page
- buffer to give print jobs more memory.
-
- LetterExtra 9 1/2 x 12 inches physical size.
-
- LegalExtra 9 1/2 x 15 inches physical size.
-
- TabloidExtra 11.69 x 18 inches physical size.
-
- A4Extra 9.27 x 12.69 inches physical size.
-
- For paper extensions, 5 standard envelope sizes are recognized. The two
- groups of numbers following the word Envelope indicate the size of the
- envelope in points (where each point equals 1/72 of an inch). %@NL@%
-
- %@AB@%Extension%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- Envelope.279.639 #9 Envelope (3 7/8 x 8 7/8 Inches)
-
- Envelope.297.684 #10 Envelope (4 1/8 x 9 1/2 Inches)
-
- Envelope.324.747 #11 Envelope (4 1/2 x 10 3/8 Inches)
-
- Envelope.342.792 #12 Envelope (4 3/4 x 11 Inches)
-
- Envelope.360.828 #14 Envelope (5 x 11 1/2 Inches)
-
- The following are the paper tray and bin keywords used to show and invoke
- the input slots supported: %@NL@%
-
- %@AB@%Keyword%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- Upper If there is more than one tray, this one
- is on top.
-
- OnlyOne There is only one tray.
-
- Lower If there is more than one tray, this one
- is on the
- bottom.
-
- Middle This one is in the middle.
-
- LargeCapacity This one can hold more than a standard
- amount of paper.
-
- The following list describes the paper tray extensions: %@NL@%
-
- %@AB@%Extension%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- AutoSelect Printer can select automatically which
- feeder to use. This is followed by the
- code (or a NULL command if no code is
- required) that is used to invoke the
- autofeed mechanism.
-
- EnvelopeManual There is a manual envelope feeder.
-
- Envelope There is an envelope feeder.
-
- None There are no input feeders. This is
- treated as being the same as OnlyOne.
-
-
- %@2@%%@CR:C6A00170007 @%%@AB@%17.6 Running the MKPRN Compiler%@AE@%%@EH@%%@NL@%
-
- MKPRN.EXE is an MS-DOS application that compiles .PPD files into .WPD files
- that are read by the Microsoft Windows PostScript printer driver. The
- command line usage is as follows: %@NL@%
-
- MKPRN [/v] [/s] file %@NL@%
-
- %@AB@%Parameter%@AE@% %@AB@%Description%@AE@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
- /v An optional verbose switch. This causes
- MKPRN to print messages as it processes
- various elements in the .PPD file. This
- may be useful for debugging .PPD files.
-
- %@AB@%/s%@AE@% Suppresses combining the .PSS, .CAP, and
- .DIR files into one .WPD file. This is
- used only when building the driver
- sources and is not intended for use by
- external printers.
-
- file This is the base filename (with no
- extension) of the .PPD file to be
- processed. The .WPD file shares this
- base filename.
-
- Error messages are printed for fonts that are not found and for identifiers
- that are not recognized. If fonts are not found, they are not built into the
- .WPD file and have to be added as soft fonts as described in Chapter 16,
- "WIN.INI Settings." %@NL@%
-
-
- %@2@%%@CR:C6A00170008 @%%@AB@%17.7 Installing the .WPD File%@AE@%%@EH@%%@NL@%
-
- PostScript printer manufacturers can use the MKPRN.EXE utility to generate a
- Windows Printer Description (WPD). They also need to create the PRINTERS.INI
- file. These files can then be distributed to enable users to install
- external printers on their machine. %@NL@%
-
- Once the .WPD file is available, an end user can install additional
- PostScript printer support through the "Add Printer..." button in the
- PostScript printer Setup dialog. This dialog can be activated from the
- Control Panel's Printer icon or from any application that supports printer
- Setup. %@NL@%
-
- When the user chooses this button, they are prompted to insert a disk or
- type in a path to a directory that contains the .WPD file. If the
- PRINTERS.INI file is found, the list of printers from which the user can
- choose is displayed. The appropriate files are copied to the user's Windows
- directory and the appropriate lines are added to the user's WIN.INI file. %@NL@%
-
- The PRINTERS.INI file should reside on the disk distributed with the .WPD
- file. This file follows the standard format used in the Windows WIN.INI
- file. The [PSCRIPT] section lists the PostScript printer names for each set
- of .WPD files included on the disk. The string that follows is the full name
- of the printer that will appear in the "Add Fonts..." Installation dialog
- box. %@NL@%
-
- The format of the PRINTERS.INI file is shown in the following example: %@NL@%
-
- %@AS@% [PSCRIPT] %@AE@%
-
- %@AS@% abc_ps = ABC PostScript Printer
- %@AS@% xyz_ps = XYZ PostScript Printer ver 43.1%@AE@%
-
- If the user tries to install a printer that is already installed
- (externally), the printer driver will ask whether or not the previous
- description should be updated. %@NL@%
-
- Manufacturers that are already supported internally in the driver should not
- provide external printer descriptions with names that conflict with those
- used internally. If an update is required, add the PostScript version number
- to the printer name (in both the PRINTERS.INI file and the "*NickName"
- section of the .PPD file). %@NL@%
-
-
- %@2@%%@CR:C6A00170009 @%%@AB@%17.8 Limitations%@AE@%%@EH@%%@NL@%
-
- Although there are over 60 font descriptions built into the PostScript
- driver, printers with resident fonts that are not supported in the current
- version of the driver will need to define those files as soft fonts. %@NL@%
-
- However, a soft font installer is not available yet for the PostScript
- printer driver. Therefore, it is up to the printer manufacturer to install
- additional fonts as soft fonts by adding the appropriate WIN.INI entries.
- The format of soft font entries is described in Chapter 16, "WIN.INI
- Settings." %@NL@%
-
- %@NL@%
-
-
-
-
-
-
- %@CR:C6A00180001 @%%@1@%%@AB@%Chapter 18 PostScript Printer Communications%@AE@%%@EH@%%@NL@%
- %@AB@%────────────────────────────────────────────────────────────────────────────%@AE@%%@NL@%
-
- Most PostScript printers support both serial and parallel ports. The fastest
- and most efficient way to connect your printer to you PC is usually with a
- parallel port (LPTx). If your printer has both a parallel and a serial port,
- the parallel port should be used. %@NL@%
-
- If you are using serial communications and have a newer PostScript printer,
- you may be able to increase the transmission rate from the standard 9600
- baud. Many printers support communications of 19200 baud. %@NL@%
-
- The following is a PostScript program that can be sent to the printer to set
- it up for 19200-baud communications. Save the following in a file called
- 19200.PS and, then, use the MS-DOS %@AB@%Copy%@AE@% command (COPY 19200.PS COM1:) to
- send it to the printer. %@NL@%
-
- %@AS@% % set laserwriter for 19200 baud
- %@AS@% % set up hardware handshaking
- %@AS@% % see page 121-122 of apple manual for details
- %@AS@% % use ETX/ACK (cts/rts)
- %@AS@% serverdict begin 0 exitserver
- %@AS@% statusdict begin 25 19200 7 setsccbatch end
- %@AS@% % a ^D should be appended to this file in most cases%@AE@%
-
- ────────────────────────────────────────────────────────────────────────────%@NL@%
- NOTE
-
- %@AI@%This will set the speed permanently (even after a power cycle). Use the
- %@AI@%following PostScript program to reset the communications channel to the
- %@AI@%default 9600 baud. %@AE@%
- ────────────────────────────────────────────────────────────────────────────%@NL@%
-
- %@AS@% % set laserwriter for 9600 baud
- %@AS@% % set up hardware handshaking
- %@AS@% % see page 121-122 of apple manual for details
- %@AS@% % use ETX/ACK (cts/rts)
- %@AS@% serverdict begin 0 exitserver
- %@AS@% statusdict begin 25 9600 0 setsccbatch end
- %@AS@% % a ^D should be appended to this file in most cases%@AE@%
-
- You will also have to set the port on the PC to this speed by issuing the
- following command, which should go in your AUTOEXEC.BAT file: %@NL@%
-
- %@AS@% MODE COM1:,19200,n,8,1 %@AE@%
-
-
-
-