This page contains various work of mine which is related to printing on OS/2.
PM Printer Manager
PM Printer Manager is a new graphical printer management tool designed to replace several older, separate programs by integrating their functions in one central tool. This includes creating standard OS/2 printers (local and LAN), creating CUPS-based printers, upgrading or downgrading IBM 'PrinterPak' driver packages, and creating new PostScript printer drivers by importing PPD files.
This software is released under the GNU GPL.
Screenshots
- Managing printer objects
- Managing printer drivers
- Managing ports
- Managing PrinterPak drivers
- Importing a PPD file
- Printer installation
Files
printman_085.wpi | PM Printer Manager version 0.85 (binaries) in WPI format |
printman_085.zip | PM Printer Manager version 0.85 (binaries) in ZIP format |
The source code is hosted on NetLabs SVN under the eCups project. Version 0.85 corresponds to SVN revision 85.
CUPS Printer GUI
This is a simple graphical front-end for creating CUPS-based printers under OS/2.
Since CUPS basically runs as a fully-independent subsystem under OS/2, there is a real lack of user-level integration for simple tasks like creating new printers. The idea behind this utility is to try and close that gap.
This program attempts to automate all of the fiddly little tasks that are normally required when creating a CUPS printer. Some of the highlights:
- When a CUPS printer is created, a corresponding OS/2 printer object is created and configured for the new CUPS queue.
- If you indicate an existing CUPS printer (on the same or a different server), an OS/2 printer object will be created for it.
- The appropriate model in the OS/2 PM printer driver (ECUPS.DRV or ECUPS-HP.DRV) is automatically identified and installed in the new OS/2 printer object. If an exact match is not found (and no PPD is available — see next point) you will be asked which out of a list of similar models, or generic support, you wish to use.
- When installing a printer which is not currently defined in the OS/2 printer driver, if a PPD exists for the new printer it will be imported automatically.
Requirements:
- A working OS/2 CUPS installation – either Paul Smedley's eCups port or the more recent versions available via YUM – must be available (on the same or a remote system). In addition, the CUPS port driver and at least one of the supported PostScript PM print drivers (ECUPS, ECUPS-HP, EPSONINK and/or PSPRINT) must be installed locally.
- The CUPS port driver (CUPS.PDR) should be at version 1.03 or later. (See below for a link to the latest version; it is also included in the latest eCups WarpIN packages.)
- GNU gzip (included with most versions of ArcaOS and eComStation) must be installed and on the PATH.
- VROBJ.DLL (included in both ArcaOS and eComStation, or available on Hobbes) must be installed and in the LIBPATH.
Screenshots
The GUI is basically a "wizard" type interface. Samples of the major steps are shown here.
- The list of available printers
- The list of available connection types
- Configuring a network connection
- Setting the printer name and description
- Creation confirmation dialog
Files
cupswiz_118.zip | Version 1.18 (English version) |
cupspdr_104.zip | CUPS port driver v1.04 (strongly recommended if not already installed) |
Alternatively, installable WarpIN packages are available on the eCups web site.
The source code is hosted on NetLabs SVN under the eCups project. Version 1.18 corresponds to SVN revision 84.
EPRINT (Enhanced Print)
EPRINT is a command-line program designed as an improved or enhanced replacement for OS/2's built-in PRINT command.
The main enhancement (at present) is the ability to print a file directly to any defined printer port — not just LPTx or COMx but also USB ports, SLPR ports, or any other.
EPRINT is still, despite its improvements over standard PRINT, a dumb print program. That is, it simply sends the input file directly to the specified printer port. It neither knows nor cares about printer-specific formats; therefore, the input file must already be in a format which the printer can handle natively.
Files printed using EPRINT will bypass the spooler and get sent directly to the printer.
Files
eprint_05.zip | EPRINT.EXE (version 0.5) |
eprint_05_src.zip | C source code (released under the 3-clause BSD license) |
PostScript Printer PAK Tool
The PostScript Printer PAK Tool (PAKTOOL) is a utility for analyzing and disassembling PostScript driver PAK files. See the documentation for details.
Files
paktool-30_904.zip | Executables and source code |
PSPRINT PostScript Driver
PSPRINT.DRV is an enhanced replacement for the OS/2 PostScript printer driver. Besides a number of tweaks and fixes compared to the IBM driver, PSPRINT also introduces support for TrueType font embedding.
The release notes contain a detailed description of what this means. In a nutshell, however, PSPRINT should provide the following benefits:
- Significantly improved quality of printed text when using TrueType fonts.
- Printing documents which use TrueType fonts may be somewhat faster, and consume less printer memory (although this is dependent on the nature of the job).
- There are a number of fixes included which should improve compatibility with CUPS.
You do need to configure your printer options properly in order to see some of these improvements: again, see the release notes for details.
To illustrate the difference, I've prepared some comparative screenshots of how the output PostScript file renders text in, respectively, the IBM PSCRIPT driver (zoomed-in view) and the PSPRINT driver (zoomed-in view), as shown in GSView.
PSPRINT includes all fixes and updates from the ECUPS driver, plus a few additional fixes of its own. (Hopefully, future releases of the ECUPS driver will also incorporate the updates in PSPRINT, making the difference between the between the two drivers mainly a matter of the built-in printer models supported by each one; however, this is not yet the case.) Note that PSPRINT does have one minor functional change from ECUPS: printers which do not report their native DPI setting will be assigned a default of 300 DPI by PSPRINT (the same as the original PSCRIPT driver), whereas ECUPS uses a default of 1440 in order to work around some particular rendering issues.
Some of the particular fixes in PSPRINT compared to ECUPS are noted below (see the release notes for the technical details):
- Printers which use ColorModel for defining the colour mode should now correctly print in colour from applications like Apache OpenOffice.
- Various problems printing from applications which generate their own PostScript code (particularly Lucide) have been fixed.
- Printing options should now be configured properly in cases where the application sets them by page rather than by job.
- The Font Manager (in printer/driver properties) may work more reliably, at least for some printers.
- Some other seemingly-random errors (which were caused by faulty PostScript code) should also be fixed. (Which is not, of course, to say that there may not still be others that have yet to be discovered...)
Additional development work on PSPRINT has been carried out by Jan van Wijk and Rich Walsh.
Files
psprint-30_907.zip | PSPRINT.DRV version 30.907 |
psprint-src-v907.zip | Source code patches against IBM DDK PSCRIPT v30.800 |