This chapter describes the EtherShare print services via HELIOS TCP. For possible print server (output) interfaces refer to chapter “The HELIOS printing system” in the HELIOS Base manual.
A suitable configuration allows any combination of input and output options.
“papsrv” is the program that implements network communication functionality for the print server. TCP is used for the communication with most types of printers and print servers, or via HELIOS TCP printing (see 6.3 “HELIOS TCP Printer”). Once started, “papsrv” continuously monitors the network for printing requests. When a print job is received, it is first stored in the host file system before being passed to the HELIOS “lpr” program, which transfers the job to “lpd”. The latter calls the appropriate interface program (“tcpif”, etc.) and the optional output filter (“psof”). The interface program then passes the job to the printer.
Each print job consists of the print data itself and one or more so-called “prep” files (PostScript print procedures and dictionaries, also called “control files” or “inits”), which precede the print data. It may also be necessary to download fonts and a banner page to the printer.
The originator of the print job (the application’s printer driver in the workstation) communicates automatically with the print server, to agree which “prep” files must be sent to the printer before printing can start. After being sent by the workstation for the first time, “prep” files are copied automatically by the print server to the so-called “prep directory” (“HELIOSDIR/var/spool/dicts”). This is called “dictionary caching”.
If they are needed again, the “prep” files can be sent from the UNIX host directly, rather than from the workstation. This reduces network loading and increases throughput. See 6.5 “Adobe Document Structuring Conventions” for related information.
Fonts required by a particular print job which are usually not supported by the printer (downloaded PostScript fonts) must also be included in each job before sending it to the printer. In order to let the print server know which fonts to send, those fonts that are permanently available on each printer (resident fonts) are specified in the “FONTS” file (usually “var/spool/qmeta/<printername>/FONTS”).
Furthermore, HELIOS Admin can install Adobe “Type 1” and “Type 3” printer fonts (not screen fonts or TrueType fonts) directly from the font manufacturer’s original font disk into a central font directory on the host (“HELIOSDIR/var/spool/psfonts”). The print server only sends those fonts to the printer that are not already resident. Missing fonts are sent preferentially from the central font directory, and are not requested from the originating workstation. This reduces network load, increases throughput and allows the central administration of printer fonts.
The printer’s resident font list is created automatically by
interrogating the printer when you install a new printer with
the HELIOS Admin program. The list must be updated
(with Update Fonts
in the HELIOS Admin Printer
menu) if new fonts have been installed on the printer.
If your printer is not fully LaserWriter compatible, and font interrogation does not work, a standard font list is supplied automatically. For “Remote LPR” printers, the copying is done automatically if you set them up with HELIOS Admin. The “FONTS” file may subsequently need manual editing if your printer’s font selection is different from those of the Apple printers.
As soon as “papsrv” has received and spooled the entire print job, the job is passed to the host system program “lpr”. “lpr” then queues it and passes control to “lpd”. “lpd” is responsible for passing the job to the output filter “psof” and to the specified interface program, such as “tcpif”, which makes the connection to the printer itself: “lpd” determines how the printer is connected to the server by examining the entry for the printer in the system file “HELIOSDIR/var/conf/printcap”. This printer configuration file also specifies (with the “sh” suppress headers flag) whether a title page (“banner”) is required.
The specified interface program includes the needed fonts, resolves any references to external images if you have HELIOS ImageServer installed, resolves “%%Include…” references (see 6.5 “Adobe Document Structuring Conventions”), transfers the job to the printer, and waits for messages that may be returned. It is also responsible for interrogating the printer’s page count before and after the job.
If an error message is returned, it is sent to the user by the UNIX system program “mail”. Read also about mail and clientmessages and User and document names in print jobs for related information (see HELIOS Base manual).
Several types of error messages, e.g. “out of paper” or “paper jam” are also sent to the program “syslogd”, which can be configured by the administrator (in “/etc/syslog.conf”) to specify the route that the message then takes (e.g. output to console). This allows rapid response to those error conditions that demand immediate attention.
If the print server detects that the printer has refused the print job completely, e.g. due to a syntax error in the PostScript code, the rest of the job is immediately aborted with an appropriate error message and, depending on the settings in HELIOS Admin, e.g. forwarded to an error queue.
Since print jobs are temporarily stored in the server file system, they can be rapidly transmitted from the workstation to the host without the workstation having to wait for the printer (spooling function). Further processing of each print job is carried out automatically by the print server, while the user can continue with other jobs.
As described above, the print server stores all “prep” files in the “prep directory” and only transfers them to the printer when they are required. The “prep” files are not made resident on the printer. This allows switching between different incompatible “prep” files, without having to manually reset the printer. The print server appends the “prep” files in non-resident form to the beginning of the print job, and sends the complete file to the printer as a single job.
If the server shuts down while print jobs are running,
you will need to restart the affected printers using the
lpc restart all
command. This can also be done
with the Restart Queue
option in the HELIOS
Admin Printer
menu.
The shell script “HELIOSDIR/sbin/restart-pap” is used internally by EtherShare to reconfigure all printer queues. This is necessary to enable printer configuration changes in the “Preferences” file to come into effect immediately. See 7.1 “restart-pap”.
“restart-pap” just notifies “papsrv” to refresh its configuration. The same can be achieved via:
“HELIOSDIR/bin/srvutil reconf papsrv”
The HELIOS TCP printer driver is the preferred method to print jobs from OS X clients to the EtherShare spooler. The benefit is that the HELIOS TCP printer driver will synchronize the PPD during the printer queue setup, it registers printer queues via Bonjour for easy browsing, and it handles job sizes larger than 4 GByte. Alternatively, print jobs can be spooled via Remote LPR which is supported by HELIOS Base. For Mac clients, it is recommended to use the HELIOS TCP printer driver clients, which is supported by OS X clients and allows easy printer browsing via Bonjour.
Mount the “HELIOS Applications” volume and open MacOS > EtherShare Tools > HELIOS TCP Printer.
Double-click the “HELIOSTCPPrinter.pkg” icon.
Authenticate, click OK
and follow the
instructions until the installer has successfully
installed the software.
In the OS X “System Preferences” open the printer configuration and click on the icon in the menu list (see arrow in Fig. 6.1).
Select a “HELIOS TCP” printer queue and confirm your selection
with the Add
button (see Fig. 6.2).
Printers that are not visible via Bonjour, e.g on remote networks can be
configured in “/Library/Preferences/de.helios.tcpprint.conf”.
Entries in this file are of the form host:printer
or host:printer:port
.
All printer configured in this file are listed in the “Add Printer” dialog (see Fig. 6.2).
The “HELIOS TCP Printer” is now available in the printers list in the system preferences and is ready to use.
In case the server PPD is changed at a later date, just remove the printer and create it anew, according to the steps described before.
The changed server PPD will then be used for the queue.
During the installation of the HELIOS TCP/IP printer the following files are created on the client:
File location | Function |
---|---|
/Library/Printers/PPDs/Contents/Resources/HELIOSTCP.ppd | PPD file |
/usr/libexec/cups/backend/heliostcp | “CUPS” compatible printer driver for communication with “papsrv” |
Table 6.1: Files created on the client
To remove the HELIOS TCP/IP printer just delete the TCP printer queue(s) from the Apple “Print & Fax” system preferences, then the files listed in the table above.
Generally, it is more convenient and safer to set up printers with the HELIOS Admin program.
If more than one printer queue is serviced by the print server, a separate “papsrv” process must be configured for each of them.
The program “papsrv”, which implements TCP printing functions for the network, has no way of knowing how each printer is physically connected. All communication with the printer is coordinated through the HELIOS program “lpd”, which extracts information about the printer from “HELIOSDIR/var/conf/printcap”, using the logical (UNIX) printer name received from “papsrv” as the key. “lpd” then routes the job through the output filter program “psof” (to generate an optional banner page) and sends it to the appropriate interface program (“tcpif”, etc.).
Each printer queue requires an entry in the “printcap” file to describe in detail the way in which the associated physical printer is connected.
The entry in the “printcap” file specifies which interface program and output filter program are required. The output filter is used to print a banner page, and the interface program implements the connection to the physical printer. The output filter for all PostScript printers is the “psof” program.
The HELIOS print server system has been designed to meet Adobe’s DSC (Document Structuring Conventions). The following paragraphs describe some of the more important features. Please refer to Adobe’s “Guidelines for a Distributed Printing Environment” for more details.
“ProcSet queries” are handled as follows by the print server program “papsrv”:
“procsets” sent by a Mac application with a print job are captured automatically by “papsrv” and stored in “HELIOSDIR/var/spool/dicts” with a name similar to the original “procset” name. If a following application needs the same “procset”, it is sent from the “dicts” directory rather than transferring it again from the Mac to the print server via the network.
Certain PostScript comments are recognized and reacted on by the EtherShare printer interface programs as follows:
%%IncludeProcSet %%IncludeResource: procset
If possible, the specified procset will be included in the print job from the “HELIOSDIR/var/spool/dicts” directory. Otherwise you will get a warning.
%%DocumentProcSets %%DocumentNeededProcSets %%DocumentNeededResources: procset
All procsets needed – but not supplied – by the document will be included from the “HELIOSDIR/var/spool/dicts” directory in the print job.
%%IncludeFont (obligatory includes) %%IncludeResource: font
If possible, the specified font will be included in the print job from the “HELIOSDIR/var/spool/psfonts” directory, which contains downloaded PostScript fonts that have been installed there manually with HELIOS Admin.
%%DocumentFonts %%DocumentNeededFonts %%DocumentNeededResources: font
All fonts needed by the document that are not resident on the printer are included with the print job: The print server checks the corresponding printer resident font list “HELIOSDIR/var/spool/qmeta/<printername>/FONTS”. This file can be updated using HELIOS Admin if you install new resident fonts on your printer. In case the resident font list cannot be determined, the font information from the chosen PPD is used instead.
In case a requested font cannot be included, the respective interface program sends an error message to the user via “srvmsg”. Users can additionally receive the message on their workstation via e-mail.
%%IncludeFile %%IncludeResource: file %%IncludeDocument
If possible, the specified file (e.g. an EPS picture) will be included in the print job. The file can be specified with either UNIX or Mac file and path name conventions. In the latter case, the print server determines the corresponding UNIX directory by inspecting the “Preferences” file for valid AFP volumes.
%%IncludeFeature
If possible, the specified feature from the printer queue’s PPD file will be included in the print job. The printer interface program accepts messages from each printer while printing. The messages are checked for errors, which are forwarded to the originating user.
EtherShare’s automatic font downloader also supports all programs that print PostScript containing “Adobe Document Structuring” comments. TrueType fonts are passed transparently from the Mac to the printer through the print server but cannot be installed in the font downloader.
The print server also supports “Linotype Color Separation Extensions” – the print server interface programs act as an ICS (Included Color Separation) includer. A special PostScript dictionary “LinoDict 1.0” is provided in “HELIOSDIR/var/spool/dicts” for this purpose. This functionality can also co-exist with the ImageServer option without conflict. Please contact HELIOS if you need more details.