PSPRINT.DRV POSTSCRIPT DRIVER
v30.907: 2018-08-20


WHAT IS THIS?

  PSPRINT.DRV is an enhanced version of IBM's original OS/2 PostScript
  driver, PSCRIPT.DRV. Compared to the IBM driver, it fixes a number of
  bugs, contains some tweaks designed to improve compatibility with CUPS,
  and has one major new feature: support for embedded TrueType fonts.

  The original PostScript driver only allowed Type 1 PostScript fonts
  to be embedded in a print job. With this new driver, you can now
  embed TrueType fonts as well (with a few limitations outlined below).

  PSPRINT includes all fixes and updates from the ECUPS driver and can
  be used to print using CUPS... with the caveat that you will have to
  import the PPD file for your printer yourself (instructions below).


What does "embedding" mean?

  Well, when you send a file to be printed, and that file contains text
  which is formatted with a specific font (almost anything that isn't a
  plain-ASCII text file, basically -- and sometimes even those as well),
  there are two main options for rendering that text on the printed page.

  The cheap-and-dirty way is for the OS/2 printer driver to draw (or
  "rasterize") the text as a static image (a bitmap) using the OS/2
  graphics engine, and then send that bitmap to the printer.

  The more intelligent way is to send the literal text to the printer
  (along with its layout parameters), and tell the printer "print this
  text using font X".  This generally results in a smaller, faster print
  job, AND a higher-quality printout.

  The problem with the second method, however, is that the font in
  question has to actually be available to the printer.  (It's no good
  telling the printer "print this text in Garamond" if the printer has no
  idea what "Garamond" is.)  So some means of loading the actual font onto
  the printer is needed.

  There are basically three ways that the printer can get access to a
  given font.  First of all, most modern laser printers have a selection
  of fonts built into their hardware ROM.  (According to the PostScript
  standard, in fact, every PostScript printer is supposed to have at least
  a basic set of 35 standard fonts built in.)  These are sometimes
  referred to as "device fonts".

  Second, if the printer has onboard RAM or an internal hard drive, it's
  possible for you (or your system administrator) to manually download
  fonts to the printer using the "Font Manager" page of the printer's
  driver properties dialog.  (Note: the Font Manager does not seem to work
  with all printers, so this option may not be available to you.)
  Unfortunately, if your system only has RAM rather than a hard drive, any
  fonts you download will be lost whenever the printer is powered off or
  rebooted.

  The third way of getting fonts onto a printer is to actually include the
  font file (or a necessary subset of it) as part of the print job.  This
  is referred to as "embedding" the font.  It is this feature that PSPRINT
  specifically improves, by allowing the embedding of TrueType fonts (if
  the printer supports it).  Note that there is a configurable maximum
  number of fonts that can be embedded in a single job, which defaults to
  2 for many printers.  You can increase this (up to a maximum of 999)
  through the driver properties dialog; see below for more information.

  For small print jobs, embedding fonts can increase the size of the job
  as sent to the printer... but for moderate-to-large sized jobs, that
  will be more than made up for by not having to rasterize all the text as
  bitmaps (which itself consumes huge amounts of space).  Basically, the
  more text there is relative to the number of fonts used, the greater the
  savings.  Very small documents (with only a few lines of text) will
  probably produce much larger print jobs with this driver; conversely,
  however, larger documents will probably produce significantly smaller
  jobs.  (The size of the job file impacts not only the amount of temporary
  disk space required to generate and spool the job, but the amount of
  printer memory the job consumes.  Also, the smaller the job file, the
  faster printing will be, generally speaking.)

  If, conversely, the print job has to rasterize all the text into bitmaps,
  then the printer isn't printing the text itself so much as printing a
  previously-generated picture of the text.  This has various undesirable
  side effects:
   - The printed text looks noticeably less crisp.
   - Since the text has to be specified as a grid of pixels rather than a
     simple string, the PostScript data required to represent it is a lot
     larger.
   - Doing text searches in the PostScript data is impossible, as the
     contents are not, technically, text at all (just images).  This is
     particularly a problem when using the PostScript printer driver in
     order to generate PDF files.


INSTALLATION

  Because this version uses a different name than the original driver
  (PSPRINT.DRV vs. PSCRIPT.DRV), you can install it alongside the original
  without conflict.

  To install or update PSPRINT:

   1. If you have either of the first two test releases installed (with a
      BLDLEVEL signature of 30.900 or lower), then you should delete the
      file AUXPRINT.PAK (if it exists) from the driver's subdirectory
      under \OS2\DLL. (and recreate that later using PIN.EXE, when desired)

      One (or possibly both) of the aforementioned early version may also
      have created a log file called C:\PSPRINT.LOG (with that specific
      drive letter) due to some debug logic having been inadvertently left
      in the release build.  Delete this file if it exists.

   2. Expand the contents of the ZIP file into some directory.  I suggest
      one with a fairly short path, because you'll have to type the path
      name in manually in the next step.


   ** NOTE: If you have the PM Printer Manager (included in eComStation
      2.2 as "Manage Printers"), you can install PSPRINT by opening "File"
      --> "Manage presentation drivers", then clicking on "Add/Update" and
      selecting PSPRINT.DRV from the path you extracted it to.  In this
      case, you can skip to step 5 below.  (You are also advised to use the
      Printer Manager to re-import any previously-imported PPD files
      afterwards.)


   3. If you will be using any imported printer drivers created from PPD
      files, you must re-import them for use with the current release.
      See the instructions below under "Importing PPD Files".  You should
      do this BEFORE installing the driver in step 4.  (However, if you
      have the PM Printer Manager installed, you can alternatively use it
      to re-import PPD files after the installation instead.)

   4. Bring up the "Install New Printer Driver" dialog.  You can do this
      either by going to create a new printer object (by dragging or
      double-clicking a Printer template, or using the install utility
      provided with eCS 1.2 and up), or by opening the properties notebook
      of an existing printer object, going to the "Printer driver" page,
      right-clicking on one of the driver icons and selecting 'Install'.

      Select the "other printer driver" radiobutton and enter the fully-
      qualified path to where you unzipped the files (in step 2).  Press
      the 'Refresh' button at the bottom, then select and install the
      desired printer model.

      By the way, PSPRINT now includes a new generic printer model called
      "Generic PostScript (Enhanced)".  It is designed to provide generic
      support for modern printers for which the older and more primitive
      "Generic PostScript Printer" model is insufficient.  In particular,
      it supports TrueType fonts whereas the latter does not.  It also
      provides various improved options for colour, duplexing, resolution,
      and paper size.  If you don't have a PPD file for your specific
      printer, or are unable/unwilling to import one, you should still be
      able to get good results by selecting "Generic PostScript (Enhanced)".
      (As far as I know, you can use it even if your printer doesn't
      technically support PostScript level 3; PSPRINT doesn't make use of
      any level 3-specific features that I know of.)

   5. Configure the printer and job options as necessary (e.g. paper size,
      output trays, colour mode, etc.).  In case you're not familiar with
      doing this, there are two separate configuration dialogs:
        - The "Printer Properties" dialog, sometimes referred to as
          "Driver Properties".  This is for setting global settings for
          the printer (such as its hardware configuration).  It is
          accessed by double-clicking on the icon for the printer driver
          on the "Printer driver" page of the printer WPS object's
          properties notebook.
        - The "Default Job Properties" dialog, which is for setting the
          default options used for a single print job.  (The same dialog
          is generally accessible when you print a file from within an
          application, in order to set the options for that specific job.)
          It is accessed using the "Job properties" button on the "Printer
          driver" page of the printer WPS object's properties notebook.

   6. You can delete the driver files from the directory where you unzipped
      them in step 2 if you wish.  However, you may find it useful to keep
      them around in case you need to import other PPD files manually in
      the future.  (If you are using the Printer Manager, it should have
      saved the driver files to a dedicated directory which it remembers,
      so you can delete the original files from where you unzipped them.)


Importing PPD Files

  To add a new driver from a PPD, you need to import the PPD file into
  PSPRINT.  There are a couple of graphical tools which can do this,
  including my InstPDR utility (included in eComStation versions 1.2
  through 2.1), the CUPS Printer Wizard (only useful if you are planning
  to use PSPRINT for CUPS-based printers), and the Printer Manager
  (included in eComStation 2.2).  These tools should be relatively self-
  explanatory, and are not described further here.

  The other option is to import a PPD from the command line, using the
  PIN utility.  This procedure is outlined below.

  Before using PIN, you need to properly prep the PPD file(s) you will be
  importing.

  First of all, if the PPD file is for use with CUPS, you MUST run the
  CLEANPPD.CMD script (included) on it.  The syntax is simple:
      cleanppd <ppd_file>
  The PPD file will be modified in place (so you might want to back up
  the original file first).

  Next, run PPDENC.EXE to convert the codepage into a supported value.
  The syntax is
      ppdenc <input_ppd_file> <output_ppd_file>
  to convert a single file, or
      ppdenc -d <input_directory> <output_directory>
  to convert all files in a directory.

  Once this is done, you can run PIN itself.  Place all PPD files to be
  imported into a single directory.  Then run PIN with:
      pin ppd <ppd_directory> [<path\to\>]psprint.drv

  The result of this will be a new AUXPRINT.PAK containing the binary
  representations for the imported PPD files. Note that many existing
  printers are already present in the pre-built PRINTER1.PAK that also
  comes with the driver.

  Then you can (re)install the driver for the new printer model (as per
  step 4 above).

  * NOTE 1: It may be necessary to manually copy the file AUXPRINT.PAK to
            the \OS2\DLL\PSPRINT directory after doing the above.  For
            some reason, OS/2 does not always copy this file properly when
            reinstalling the printer driver.

  * NOTE 2: You MUST use the version of PIN.EXE that comes with this
            specific release of PSPRINT.  (In fact, an incompatible
            version of PIN will probably just refuse to do anything, but
            it's better to be safe than sorry.)


HOW TO USE IT

  Once you've installed this driver, you need to make sure your printer is
  actually configured to allow font embedding.

  To do this, open the printer properties, go to the "Printer driver" page,
  and double-click on the driver icon to open the driver settings dialog.
  On the "Options" page, check the "Maximum download fonts" setting.  This
  setting controls how many fonts can get embedded into a print job.  It
  frequently defaults to only 2.  To allow decent embedding of fonts, you
  should bump this number up; I generally suggest a value of at least 10-12,
  and more if your printer has plenty of RAM.  (The less memory your printer
  has, the lower the maximum should be; 10 or 12 SHOULD be OK for most
  printers.  The maximum is 999, which is actually a special value indicating
  no limits at all - this is useful if you're only printing to files.  A
  value of 0 will disable font embedding entirely.)

  The best value will depend on the size of the fonts you typically use.  To
  get a general idea, take a look at the contents of your system \PSFONTS
  directory and see what the average file size of all .PFB and .TTF files is.
  The driver will never embed a .TTF font whose file size larger than 2 MB;
  there is no limit on the size of .PFB fonts, but these are very unlikely to
  be larger than a few hundred kilobytes at most.  NOTE, however, that when
  a font is embedded into a document, it is converted into an ASCII format
  which can approximately double the file size!

  As a simple guideline, I'd suggest starting out with a value from one of the
  following ranges, based on the amount of memory in your printer:

    64 MB or more:    25-40
    32 MB:            15-30
    16 MB:            10-20
     8 MB:            8-12
     4 MB or less:    2-8

  Then you can adjust this up or down over time as you determine what works.

  Keep in mind that each style of a font family (bold, italic, etc.) counts
  as a separate font; so even if you have a document which only uses one
  font family (like Arial), it would still take four fonts to represent it
  fully.

  You should also make sure that the checkbox "Use downloaded fonts" on the
  "Options" page of the printer's Job Properties dialog (accessible using
  the "Job properties" button on the "Printer driver" page of the printer
  object properties) is checked.  (This option may actually refer to fonts
  which were separately downloaded to the printer using the Font Manager
  page, rather than to embedded fonts; the code is a little unclear so I'm
  not totally certain about that.  Best to enable it anyway.)


LIMITATIONS

  ************************************************************************
  * This driver is still classified as experimental, and has various     *
  * limitations which are documented below.  Make sure you read AND      *
  * UNDERSTAND them before using this driver.                            *
  ************************************************************************

  - "UIConstraints" items defined in a PPD file are not supported for UI
    items with more than 32 values.  (This is a restriction of the IBM
    code, and exists in all OS/2 PostScript drivers.  It is mentioned here
    because only recent versions of PIN actually support more than 30
    values per UI item to begin with.)


  - Printers which lack built-in TrueType interpreters (or which fail to
    correctly report having them) do not support embedded TrueType fonts;
    in such cases, text rendered in TrueType fonts will be rasterized to
    bitmap in the old way, with the usual tradeoffs.  (This is not a bug,
    simply a caveat.)


  - Subsetting (a.k.a. incremental downloading) of fonts has not been
    implemented (and may never be -- I'm not entirely sure how possible
    this is given the basic design of the driver).  This means that the
    ENTIRE font will always get embedded into the print job file.

    Of course, this has always been true, even with Type 1 fonts.  The
    difference is that TrueType fonts can support a great many more
    characters than Type 1 fonts, and as a result are frequently a lot
    larger.

    Consequently, the printer job files (or output PostScript files) can
    quickly grow quite large if more than a few fonts are used.  This
    increases the likelihood of your printer failing to print the job due
    to insufficient memory.

    If you find your jobs are frequently failing for this reason, reduce
    the maximum number of downloaded fonts in the driver settings (as
    previously described under "How to Use It").


  - In light of the above, by way of a simple sanity check I have imposed
    an upper size limit on embeddable TrueType fonts.  Any font whose .TTF
    file is larger than either 2 MB, or half of the printer's reported free
    virtual memory (whichever is less) will never be embedded into a print
    job.  This should prevent the driver from trying to embed an entire
    font like "Arial Unicode MS" into a job (which could overwhelm some
    printers).

    This restriction only applies to TrueType fonts.  There is no limit on
    the size of PostScript fonts: IBM never saw fit to impose one, and in
    any case the font files are generally much smaller.


  - Given the design of the pre-existing routines being used to convert
    a TrueType font into a PostScript data stream, it's currently a two-
    step process: the font is first converted to PostScript as a temporary
    file, and then that file is copied into the actual print job (and the
    temporary file is deleted).  This extra step may slow down print
    processing slightly, although hopefully you won't notice much
    difference.  It also (very briefly) uses some disk space in your
    %TMP% directory.


  - When building its internal array of font resources used in a job, the
    PostScript driver parses and stores kerning information for each font.
    Since the TrueType processing routines provided by IBM don't support
    the kerning table, I've simply omitted this information for TrueType
    fonts.

    I'm not actually sure what effect, if any, this may have.  Since the
    PostScript driver doesn't render the text itself (the printer's own
    internal PostScript interpreter does that), I really don't know what
    this information is used for.  It's pure speculation, but I suppose it
    MIGHT be used for calculating string lengths; if so, the lack of this
    information probably won't have much effect (any difference that
    results from kerning should be trivially small, and the worst case is
    likely to be that it allows fractionally more space for a string than
    is strictly necessary).  In any case, the GPI TrueType support used to
    rasterize the text in the standard IBM driver doesn't support kerning
    information either, so you're not likely to be any worse off...



HISTORY
  2018-08-20 (version 30.907)
   - eliminated several thousand "invalid #pragma" warnings (RLW)
   - enabled most compiler warnings then patched 60 files to eliminate
     the resulting messages, fixing multiple bugs in the process (RLW)
   - BUILD.CMD now creates a self-contained build environment that runs
     as-is with no setup scripts needed (RLW)
   - repackaged open-source diffs and resources, added 'buildme.txt' (RLW)

  2016-03-07 (version 30.906 / preview release 6)
   - FNTLIB update for embedded TTF calculating character width with scaling
     in an attempt to fix ASCII text and Lotus WordPro scaling problems.
   - PIN.EXE/IPIN.EXE fixes to avoid program crashes on buffer overflows on
     big PPD files including better error reporting and larger buffers (JvW)
   - Fixed divide-by-zero exceptions on some printers (PPD) on loading (JvW)
     Example "FX DocuPrint C5000 d PS H2", no crash, still incomplete output

  2015-01-20 (version 30.905 / preview release 5)
   - Driver will no longer attempt to decide whether or not output should
     be greyscaled for printers with ColorModel UIItems defined; instead,
     responsibility is left to the printer - unless the new checkbox in
     the job properties (below) is checked.
   - Added new 'pre-convert to greyscale' checkbox option to job properties
     (Effects page); applies only to printers using ColorModel. This forces
     the driver to convert the job to greyscale before sending it to the
     device; if not set (the default), responsibility for conversion (if
     any) is left up to the printer.
   - [PIN] Some attempts to prevent crashes with large PPD files.
   x Changed PAK data length field from signed to unsigned short, which
     may help in dealing with some larger PPD files.
   - Added some preliminary logic for dealing with OTF (OpenType) fonts.
     (This is forward planning only; the code has no actual effect yet.)
   - Adjusted the 'Print Font Capacity' button logic to calculate based
     on an average font file size of 500 KB (up from 80 KB).
   - Changed default driver URL shown in printer properties.  (Note that
     the change will not be reflected in previously-installed drivers.)
   - Reduced 'safe' maximum TTF size in cases where FreeVM cannot be
     determined to 512 KB.

  2013-08-12 (version 30.904 / preview release 4)
   - Fixed problem with UI Option settings never getting written if they
     had defined location of Any (this fix matches the latest IBM PSCRIPT
     driver).
   - Put more information into BLDLEVEL signature.
   - Restored missing PJL initialization command in DEVESC_RAW mode: fixes
     broken printing with some printers.
   - Fixed missing definition of 'mdef' command in PostScript job header.
   - Renamed "PostScript Level 3 Printer" to "Generic PostScript (Enhanced)"
     to ensure that it appears under the "Generic" manufacturer.
   - Removed over 200 previously-built-in printers that lack Type42 support;
     this should free up more space for importing new models.
   - Added remaining printers from PSCRIPT 30.827 (except for a couple which
     have no Type42 support).
   - Increased maximum size of downloaded fonts where FreeVM is known to
     2 MB (or half of FreeVM if the latter is less).  This should allow
     embedding of least some DBCS fonts for Japanese, Korean, and possibly
     Traditional Chinese.  (The maximum is still 1 MB for printers where
     no FreeVM is defined.)

  2010-12-18 (version 30.903 / preview release 3)
   - Integrated changes from ECUPS.DRV (thanks to Paul Smedley).
   - Cleaned out some leftover debug logging.
   - Other minor updates and cleanup.
   - Changed PAK file signature to "IBM DDPAK V1.2" (from V1.0) to help
     safeguard against incorrect program versions being used.  This is
     because the PAK file format is now slightly different from one used
     by IBM's PSCRIPT.DRV, due to a new field being added.  (V1.2 was
     chosen because 1.1 seems to have been intended for a feature update
     from IBM which was probably never released.)
   - [PPDENC] Added support for MacStandard encoding.
   - [PPDENC] Fixed bug where changing the encoding "UTF-8" to "IBM-850"
     would overwrite the start of the following line.
   - [PIN] Fixed bug where lack of a *DefaultFont setting would cause the
     automatic default value to be stored in an invalid format.
   - [PIN] Fixed several other bugs, in particular where invalid offsets
     were being set for nonexistent values.  This hopefully fixes some
     specific crashes caused by CUPS PPD files.  (No promises there aren't
     other potential crashes which I haven't discovered yet, mind you...)
   - Added several printer models which were included in later versions of
     PSCRIPT.DRV but are missing from the DDK.  Unfortunately, not all of
     the missing models could be restored like this, because I was unable
     to find suitable PPD files available under free license.  The models
     which are still missing are listed above, under "Limitations".
   - Added a new generic model called "PostScript Level 3 Printer".  This
     is recommended for use instead of the built-in "Generic PostScript
     Printer", as it supports TypeType fonts, duplexing, colour, higher
     resolutions, and multiple paper sizes.

  2010-11-24 (version 30.900 / test release 2)
   - Modified driver (and PIN) to check the PPD file for TrueType (Type
     42) font support.  TTF embedding will now only be done if the printer
     supports it.
   - Added an extra size limit on embeddable TrueType fonts: either 1 MB
     or half of the FreeVM size reported by the PPD, whichever is less.
   - Cleaned out some obsolete debug output.
   - Changed driver name to PSPRINT.DRV to allow installing alongside the
     "normal" PSCRIPT.DRV from IBM.
   - Set BLDLEVEL version to 30.900.

  2010-11-17 (test release 1)
   - Initial release.



APPENDIX - PRINTER MODELS REMOVED FROM DRIVER

  The following printers which were supported by the IBM PSCRIPT driver
  (version 30.827) have been REMOVED from PSPRINT -- as they do not have
  TrueType interpreters (at least according to their PPD files), and thus
  are unable to take advantage of the new TrueType font embedding feature.
  Users who have one of these printers (and are not using CUPS) might as
  well continue to use the latest IBM PSCRIPT driver.

    AST TurboLaser
    Agfa Matrix ChromaScript v51.8
    Agfa-Compugraphic 9400PS v49.3
    Agfa/Compugraphic 400PS
    Apple LaserWriter
    Apple LaserWriter II NT
    Apple LaserWriter II NTX
    Apple LaserWriter Plus
    Apple LaserWriter Plus v42.2
    Apple LaserWriter Pro 600
    Apple LaserWriter Select 360f
    Brother HL-10PS/DPS (PS)
    Brother HL-10h (PS)
    Brother HL-1260
    Brother HL-4PS (PS)
    Brother HL-8PS (PS)
    Brother HS-1PS (PS)
    Brother HS-1PS2
    COMPAQ PAGEMARQ 15
    COMPAQ PAGEMARQ 20
    Canon LBP-2030PS
    Canon LBP-4/4 Plus/4 Lite PS-2
    Canon LBP-8III PS-1
    Canon LBP-8IIIR PS-1
    Canon LBP-8IIIT PS-1
    Canon LBP-A404PS
    Canon LBP-A404PS Lite
    Canon PS-GP Unit
    Canon PS-IPU Color Laser Copier
    ColorMaster Plus 6603 v233.1
    ColorMaster Plus 6613 v233.1
    ColorMaster Plus 6613XF v260.0
    Colormate PS v51.9
    Dataproducts LZR 1260 v47.0
    Dataproducts LZR-2665
    Digital DECcolorwriter 1000  17
    Digital DECcolorwriter 1000  39
    Digital LN03R ScriptPrinter
    Digital LPS PrintServer 40
    EPSON EPL-5500 EPSONScript
    Epson EPL-7500 v52.3
    Epson EPL-8000 PS Card 82605
    Fiery 150i-5775 Color Server
    Fiery 150i-MajestiK Color Server
    Fiery 150i-R0 Color Server
    Fiery 200i-5775
    Fiery 200i-5775 Color Server
    Fiery 200i-CF80 J Color Server
    Fiery 200i-MajestiK
    Fiery 200i-MajestiK Color Server
    Fiery 200i-R0 Color Server
    Fiery 200i-R1 Color Server
    Fiery XJ CLC 350/550 Color Server
    Fiery XJ CLC 700/800 Color Server
    Fiery XJ MajestiK Color Server
    Fiery XJ NEW PIXEL DiOS/DiO Color Server
    Fiery XJ PIXEL DiOS/DiO Color Server
    Fiery XJ R Color Server
    Fiery XJ R Color Server v2013.114
    Fiery XJ R1 Color Server v2013.114
    Fiery XJ R2 Color Server
    Fiery XJ R2 Color Server v2013.114
    Fujitsu PrintPartner 12V
    Fujitsu PrintPartner 16ADV
    Generic PostScript Printer
    HP DesignJet 650C v2013.109
    HP DeskJet 1200C
    HP DeskJet 1600CM
    HP LaserJet 4/4M PS v2011.110
    HP LaserJet 4ML PS v2013.103
    HP LaserJet 4Si/4Si Mx PS v2011
    HP LaserJet IID v52.2
    HP LaserJet III Cartridge Plus
    HP LaserJet III v52.2
    HP LaserJet IIID Cartridge Plus
    HP LaserJet IIID v52.2
    HP LaserJet IIIP Cartridge Plus
    HP LaserJet IIIP PS v52.2
    HP LaserJet IIISi PS v52.3
    HP LaserJet IIP v52.2
    HP PaintJet XL300 PS v2011.112
    IBM 4019 v52.1 (17 Fonts)
    IBM 4019 v52.1 (39 Fonts)
    IBM 4029 (17 Fonts 300 Dpi)
    IBM 4029 (17 Fonts 600 Dpi)
    IBM 4029 (39 Fonts 300 Dpi)
    IBM 4029 (39 Fonts 600 Dpi)
    IBM 4039 LaserPrinter (300 Dpi)
    IBM 4039 LaserPrinter (600 Dpi)
    IBM 4039 plus
    IBM 4079 Color Jetprinter PS
    IBM 4216-031 v51.4 SheetFeed
    IBM Personal Page Printer II-30
    IBM Personal Page Printer II-31
    IBM Personal Pageprinter
    ITEC ColorImage 2400
    ITEC Laserimage 1200
    Konica 7050PS International
    Konica 7050PS US
    Konica 7728/PS
    Konica 7728PS International
    Konica Minolta Magicolor 3300
    Konica Minolta Magicolor 7300
    Konica Minolta Magicolor 9100
    Kyocera FS-1500 (KPDL) v48.0
    Kyocera FS-1500A (KPDL) v48.0
    Kyocera FS-1550 (KPDL) v48.0
    Kyocera FS-1550 (KPDL) v48.0
    Kyocera FS-1550+ (KPDL)
    Kyocera FS-1550A (KPDL) v48.0
    Kyocera FS-1600A (KPDL)
    Kyocera FS-3400 (KPDL) v48.0
    Kyocera FS-3400+ (KPDL)
    Kyocera FS-3400A (KPDL) v48.0
    Kyocera FS-3500 (KPDL) v48.0
    Kyocera FS-3500A (KPDL) v48.0
    Kyocera FS-3600A (KPDL)
    Kyocera FS-400 (KPDL) v48.0
    Kyocera FS-400A (KPDL) v48.0
    Kyocera FS-5500 (KPDL) v48.0
    Kyocera FS-5500A (KPDL) v48.0
    Kyocera FS-6500 (KPDL)
    Kyocera FS-6500A (KPDL)
    Kyocera FS-850 (KPDL) v48.0
    Kyocera FS-850A (KPDL) v48.0
    Kyocera P-2000 (KPDL)
    Kyocera Q-8010 (KPDL)
    Lexmark 4039 plus
    Lexmark Optra
    Linotronic 100 v38.0
    Linotronic 100 v42.5
    Linotronic 200 v47.1
    Linotronic 200 v49.3
    Linotronic 300 v47.0
    Linotronic 300 v47.1
    Linotronic 300 v49.3
    Linotronic 500 v49.3
    Minolta-QMS Magicolor 2200
    Minolta-QMS Magicolor 2210
    Minolta-QMS Magicolor 3100
    Minolta-QMS Magicolor 6110
    Minolta-QMS Magicolor 7300 Mono
    Minolta/QMS PagePro 9100
    NEC Colormate PS/40
    NEC Colormate PS/80
    NEC LC-890
    NEC Silentwriter 95 v2010.121
    NEC Silentwriter 95f v2011.111
    NEC Silentwriter 97 v2011.111
    NEC Silentwriter S62P v2010.121
    OKI MICROLINE 800PSII LT
    OKI MICROLINE 801PS
    OKI MICROLINE 801PS+F
    OKI MICROLINE 801PSII
    OKI MICROLINE 801PSII+F
    Oki OL830-PS v52.5
    Oki OL840-PS v51.8
    Oki OL850-PS v52.5
    Olivetti LP 5000
    Panasonic KX-P4455 v51.4
    Panasonic KX-P5400 v2013.112
    Panasonic KX-P5410 39 Font
    Phaser Card v1.1
    QMS 1060 Level 2
    QMS 1660 Level 2
    QMS 1725 Print System
    QMS 2025 Print System
    QMS 2060 Print System
    QMS 2425 Print System
    QMS 3225 Print System
    QMS 3260 Print System
    QMS 3825 Print System
    QMS 3825 Print System
    QMS 4032 Print System
    QMS 4060 Print System
    QMS 420 Print System
    QMS 4525 Print System
    QMS 860 Print System
    QMS 860+ Print System
    QMS ColorScript 100
    QMS ColorScript 100 Mod 10
    QMS ColorScript 100 Mod 30
    QMS ColorScript 100 Mod 30si
    QMS ColorScript 210
    QMS ColorScript 230
    QMS ColorScript Laser 1000
    QMS IS X320T
    QMS magicolor 2 CX
    QMS magicolor 2+
    QMS magicolor 330
    QMS magicolor 6100
    QMS magicolor CX
    QMS magicolor Laser Printer
    QMS magicolor plus Level 2
    QMS-PS 1500
    QMS-PS 1700
    QMS-PS 2000
    QMS-PS 2200
    QMS-PS 2210
    QMS-PS 2220
    QMS-PS 410
    QMS-PS 800
    QMS-PS 800 Plus
    QMS-PS 810
    QMS-PS 810 Turbo
    QMS-PS 815
    QMS-PS 815 MR
    QMS-PS 820
    QMS-PS 820 Turbo
    QMS-PS 825
    QMS-PS 825 MR
    Qume ScripTEN
    Ricoh DS5330
    Ricoh LP6200 PS PrintView
    Ricoh PC Laser 6000-PS
    Seiko ColorPoint PS Model 04
    Seiko ColorPoint PS Model 14
    Seiko ColorPoint PSN Model 14
    Seiko ColorPoint PSN Model 4
    Seiko ColorPoint2 PSF
    Seiko Personal ColorPoint PS
    Seiko Personal ColorPoint PSE
    Seiko Prof. ColorPoint PSH
    Seiko Prsnl ColorPoint PS v241
    Silentwriter LC 890XL v50.5
    Silentwriter2 290 v52.0
    Silentwriter2 Model 90 v52.2
    Star LS5 TT
    TI 2115 (13 fonts) v47.0
    TI 2115 35 fonts v47.0
    TI OmniLaser 2108
    TI Omnilaser 2115
;   TI microLaser 600
    TI microLaser PS17 v.52.1
    TI microLaser PS35 v.52.1
    TI microLaser Pro 300
    TI microLaser XL PS17 v.52.1
    TI microLaser XL PS35 v.52.1
    TI microLaser16 Turbo v2010.119
    TI microLaser6 Turbo v2010.119
    TI microLaser9 Turbo v2010.119
    TI microWriter PS v.52.1
    Tektronix Phaser 200J v2011.108(4)
    Tektronix Phaser 200e 17 fonts
    Tektronix Phaser 200e 39 fonts
    Tektronix Phaser 200i v2011.108
    Tektronix Phaser 200i v2011.108
    Tektronix Phaser 220J v2013.113
    Tektronix Phaser 220e with 17 fonts v2013.113
    Tektronix Phaser 220e with 39 fonts v2013.113
    Tektronix Phaser 220i v2013.113
    Tektronix Phaser 300J v2013.113
    Tektronix Phaser 300i v2013.113
    Tektronix Phaser II PX v2.02
    Tektronix Phaser II PXe 17 font
    Tektronix Phaser II PXe 39 font
    Tektronix Phaser II PXi v2010
    Tektronix Phaser II PXiJ v2011.108
    Tektronix Phaser III PXi v2010
    Tektronix Phaser III PXiJ v2011.108
    Tektronix Phaser IISD v2011
    Tektronix Phaser PX
    Tektronix Phaser PXi v2011.108
    Varityper VT-600
    Wang LCS15
    Wang LCS15 FontPlus
    XPrint 4915 PostScript
    XPrint 4920/4925 PostScript
    Xerox 4220 LPS v2013.112
    Xerox 4900 PostScript

  For other printer models which are manually imported to the driver with PIN,
  TrueType font embedding will be supported if (and only if) the printer's PPD
  file specifies "*TTRasterizer: Type42".

--
Alex Taylor - alex at altsan dot org
January 2015 / August 2018
