# Oberon/ETH Oberon/printer

This document was originally hosted at the ETHZ. It remains in the WayBack archive under the ETH license.
Back to: Native Oberon Hardware Compatibility List
Oberon supports network printers and local printers connected to parallel or serial ports. TCP/IP connectivity is required for accessing network printers. Drivers are included for HP Laser, HP PCL, PostScript and Linux printers, as well as for network printers using the LPR protocol. Windows Plug-In Oberon includes a Windows printer driver (WinPrinter) for use with the Windows Print Manager. Oberon.Text in the distribution is already trimmed to fit the european A4 page size. Little more need be specified to customize the printer support.
The parallel and serial ports are operated in unidirectional mode only, a mode not requiring the use of IRQ lines. Consequently, the IRQ 7 usually associated with LPT1 is free for use for other purposes.
The Lexmark Optra Color 40 postscript color inkjet printer is known to work.
Not supported
Windows-only printers, such as the Canon LBP-660 for example, requiring GDI are not supported. Dot-matrix printers are not supported.
A printer driver is installed on-the-fly by executing the relevant command:
HPLaserPrinter.Install
    A driver using PCL positioning codes. It will probably generate smaller print files and typically print faster. It does not support color.
HPPCL.Install
    A driver building a bitmap of each page which is then sent to the printer. It supports color on a color printer (CYMK system) and gray shades on a b/w printer.
LPRPrinter.Install
    A Line Printer Remote client. Be sure to set EMail in Oberon.Text, as some LPR servers check it.
LinuxPrinter.Install'
    A driver for Linux Native Oberon (LNO).
PSPrinter.Install
    A driver for PostScript capable printer.
The HPLaserPrinter and the HPPCL drivers are different implementations of a HP PCL driver made by different people.
The three drivers HPLaserPrinter, HPPCL, PSPrinter have been tested with the Institute's HP Laserjet 8000 printer, and all three work. The latter two produce shades of grey.
Alternatively and preferably, configure Oberon.Text as explained below, instead of installing a driver on-the-fly.
Each driver is associated with a page format specification.
Edit the appropriate command in the field Printer.Default= and the driver will be installed automatically when the first print order is issued.
If the first parameter of a Desktops.PrintDoc command is "Default", the print output will be directed to the printer named in Printer.DefaultName= . The following values can be assigned:
* LPT1 to LPT3: any of the three possible parallel ports
* COM1 to COM4: any of the four possible serial ports The operating characteristics of a COM port must be specified in Printer.COMn= according to the following syntax (default 9600,8,n,1):
* a filename: file in which the print output will be stored. When the PSPrinter driver is installed, PostScript data is generated and stored in a file.
* a printer queue name queue@host. When the LPRPrinter driver is installed, PostScript data is generated and sent to this queue. The print server offers different queues satisfying different needs: single or double sided print, grey or white paper, foil. If "queue" or "host" contains non-alpha characters, enclose them in quotes: "queue@host".
Each printer driver is associated with a set of settings in Oberon.Text:
In the distributed software, the paper size is assumed to be the standard european A4 size: 210 mm * 297 mm (Width and Height specified in mm). Left, Right, Top, Bottom margins are specified in cm. For HP printers, the minimum LeftMargin is 6 mm and the minimum TopMargin is 12.5 mm. The Resolution is also specified there: 300 and 600 dpi are supported. Adjust these values, if need be.
For the HPPCL driver, the number of color planes to use must be specified:
* Planes = 1 - Black, HP Deskjet 550
* Planes = 3 - CYM, HP Deskjet 550C
* Planes = 4 - CYMK, HP Deskjet 550C
Any other value will be mapped to 1. The assigned value can be overriden by executing the command HPPCL.SetPlanes number .
TextDocs.PrintSetup ["\hoff" | "\hon"] ["\poff" | "\pon"]
    Switch printing of a header line or page numbers off or on. Both are "on" by default. The header text is the document name in the NamePlate.
Make sure that the documents to print only use the Oberon raster fonts (Oberon and Courier) and that these fonts are available as 300 dpi or 600 dpi fonts in the Oberon directory. The fonts can be found in Pr3Fnt.zip and Pr6Fnt.zip (downloadable from ftp://ftp.ethoberon.ethz.ch/ETHOberon/ [expired]). Other fonts can be installed.
Desktops.PrintDoc printer-name [ "\" options ] filename {filename} ~ Desktops.PrintDoc printer-name [ "\" options ] *
    Print a list of files or the marked document. printer-name can take any of the values which can be assigned to Printer.DefaultName= (cfr. How to install a default printer driver) or simply "Default". In the latter case, the value assigned to Printer.DefaultName= is used.
    When the PSPrinter driver is installed, since PostScript data is generated, printer-name is a printer port name or a filename. When the LPRPrinter driver is installed, printer-name must be an LPR queue name.
    Options are used only in conjunction with the PSPrinter and LPRPrinter drivers. Portrait printing is used by default, but this can be changed by specifying options:
    l - 2-up, i.e. 2 pages in landscape (rotation in implied)
    d - 4-up, i.e. 4 pages in portrait
    e - encapsulated PostScript output
    r - rotated, i.e. landscape
    x - duplex
    A filename with suffix ".eps" or ".EPS" implies encapsulated PostScript. The option \e is superfluous.
Technical hint: The file is created with a header copied from the supplied model PSHeader.Text .
In the Oberon GUI, print orders can be comfortably controlled with the [Print *] Iconizer in the Popups.Tool .
* Send the file to a network printer by executing LPRPrinter.PrintPSFile (cfr. next section)
* Send the file directly to a PS printer by executing Miscellaneous.PrintFiles printer-port {filename} ~ (cfr. Miscellaneous.Tool)
Note: Oberon offers no Postscript file viewer of the kind Ghostview for Windows.
LPR or Line Printer Remote is an Oberon print client. The print server, often called Line Printer Daemon (LPD), is installed on a host. The print server waits for the client to send a print job and is capable of handling multiple printers and print queues. Since it has (usually) only a single IP address, the queue name designates the intended print queue. LPR/LPD is a platform-independent printing protocol that runs over TCP/IP. Originally implemented for BSD Unix, its use has spread into the desktop world and is a de facto industry standard. The specification for LPR is defined in RFC 1179 (Request For Comment).
LPRPrinter.PrintPSFile queue@host [ "\" options ] ps-file
    Sends a print job to a print server, opening a TCP connection (default port 515) to the host which owns the remote printer. The PostScript file (ps-file) is tranferred to the print queue of the specified host.
LPRPrinter.ShowJobs queue@host
    Display a list of the print jobs waiting in the printer queue of the specified host.
LPRPrinter.RemoveJob queue@host [ job-nr ]
    Remove the specified job or, if no job-nr is given, all jobs from the printer queue on the specified host.
LPRPrinter.BannerPage [ "on" | "off"] ~
    Condition the print server to separate the different print job outputs with a banner page. Printing a banner page is turned off by default. When the parameter is omitted, the condition is toggled.
    "on" may be replaced by an equivalent "y", "j" or "t". "off" may be replaced by an equivalent "n" or "f". The case is indifferent.
LPRPrinter.MailBack [ "on" | "off" ] ~
    Condition the print server to send a completion message to the address specified in EMail in Oberon.Text. If no address is found, the message is addressed to oberonuser@ethz.ch which does not exist. Mailing back a completion message is turned off by default. When the parameter is omitted, the condition is toggled.
    "on" may be replaced by an equivalent "y", "j" or "t". "off" may be replaced by an equivalent "n" or "f". The case is indifferent.
The PrinterInfo.Panel is a small specialized GUI serving different printer-oriented purposes:
* Install a printer driver. Select a driver with a MM click on the Iconizer.
* Display the settings of the installed printer driver. MM click on the [Update] Button.
* Adjust the settings of the installed printer driver. Up to 7 values can be adjusted. MM click on the [Update] Button. Note that the values can be expressed in centimeters or in inches.
* Print a test page. MM click on the [Print] Button. For PSPrinter and LPRPrinter you have to enter a valid printer name in the "Printer" TextField.
22 Nov 2001 - Copyright © 2001 ETH Zürich. All rights reserved. E-Mail: oberon at lists.inf.ethz.ch Homepage: http://www.ethoberon.ethz.ch/