Print Spooler


Usage Configuration Global Configuration Local Queue Status / Overwrite / Monitor / Storage LPR Text printing Preludes / Trailers Contacts

Usage

Prints created while Print Spooler is running are written as if the connection were 'to file' and then spooled to the selected connection. Unless configured otherwise, PrintSpool will use the connection information from Printers to decide where to send the print. PrintSpool can also directly handle LPR printing and produce a graphic representation of 'text printing'. The latter is useful if the printer driver cannot handle normal 'text printing'. Postscript prints can be viewed while queued if a suitable application is available. An enhanced level of 'Shared' printing is available which still works when the target machine is temporarily unavailable.

By default, only direct printer connections will be used with others left for Printers to handle. Trapping prints with a connection of 'to file' requires a configuration option to be set.

N.B. Trapping prints will not work for any printer configured to 'Print in the background'.

Although this program was originally written to work around issues caused by using USB to Parallel converters, it should work with any setup. USB code will only work fully with the ROOL or Castle interfaces. Simtec USB users can still use the program but the print will be treated as a print 'to file' so no status checks are performed.

All converter cables appear to benefit from using the option 'USB printer bus reset between prints' particularly if the status information is reported incorrectly after the first print.

Tested devices :-

Cable : 067b 2305 Prolific Technology
Cable : 050d 0002 Belkin Components
Cable : 047e 1001 Agere Systems (Lucent)

If the computer should hang while printing then switching the printer off and on again will usually clear the problem. If this fails for a USB device, unplugging the cable should resolve it. Alter the configuration settings to prevent a reoccurrence of the problem.

Printing pauses if any PrintSpool menus are open (except LPR client). Shared or Linked printing requires PrintSpool to be running on both machines.

If 'no icon' is configured the windows can be retrieved either by starting !PrintSpool a second time or by using the show queue command. The latter is configurable but defaults to 'Q'.

PrintSpool will automatically decode Turbodriver prints but these must be created without compression.

Window positions can be stored using a 'Select' mouse click on the iconbar icon while the 'Alt' key is held down. Default settings are restored using an 'Adjust' mouse click (also with 'Alt').

Trouble shooting : If an exclamation mark is shown next to the printer name for a queued print this indicates there is a problem. Further information is available by using the menu over the item and viewing the 'Status' window.

Configuration - Global

Option

Default

Description

Automatic control Off Automatically adjusts buffer size, centisecond pause and buffers per poll as the print progresses. Some printers may not like large buffers of data being sent. Automatic mode will only be used for USB devices that are connected locally. Automatic mode won't operate if the automatic clearzone is triggered.
Buffer size 16K This option is only used for USB and non-local printing 'To file'. Increasing the buffer size will speed up printing but may overwhelm the printer. Reduce size if printer stops receiving print. For inkjets this can be used to slow printing down allowing the ink to dry.
Prints created 'To file' locally or via RemotePrinterFS will be copied rather than printed, buffer sizes and centisecond pauses aren't used.
Buffers per poll 1 Increasing this will speed up printing but may impact on desktop response. Actual number of buffers used will depend on how fast print is being transferred.
Centisecond pause between tries 30 Decreasing this will speed up printing but may impact on desktop response.
One buffer per device open Off Closes and reopens the print file between buffers. May cause small desktop delays as buffer clears. If the printer suddenly stops receiving print this option may help.
Status checks Full These aren't always reliable.

  • No status checks.
  • Limited status checks - Online/Offline only.
  • Full status checks - Online/Offline and Paper errors.
Ignore initial status of first print Off Some printers return an Offline status until some data has been transferred. This option allows printing to occur in these situations.
USB printer bus resets Off Mainly of use for USB to Parallel converter cables, without it the status returns will be incorrect after the first print. This performs a soft reset on the USB device.
Clearance zone Off Slow printers may benefit from this option. An automatic wait is generated based on how long printing takes. This prevents the USB bus reset option triggering too early causing loss of the end of a print. Buffer sizes may be restricted with this option.
Seconds pause before USB reset 5 If USB reset between prints is active this controls how long to wait before the reset occurs. Increase this value if the last part of the print is lost.
Print stop : Buffer flush No flush Flushes buffer to reduce the amount of unwanted print. This shouldn't be needed for USB printers if the 'Reset (Pre-Close)' is set.
Print stop : USB soft reset (Pre-Close) No reset USB soft reset on the printer device prior to the print file being closed. This may upset some printers but can be useful to clear stall conditions that may occur when printing is stopped. It should clear unwanted data in the buffer. Shouldn't be needed for Postscript printers but inkjets may benefit. It is advisable to only have one of the Pre-Close and Post-Close options set.
Print stop : USB soft reset (Post-Close) No reset USB soft reset on the printer device after the print file is closed. This may upset some printers but can be useful to clear stall conditions that may occur when printing is stopped. It is advisable to only have one of the Pre-Close and Post-Close options set.
Seconds delay after sending print 0 Pause after sending print to allow time for the printer to process the print or for the inks to dry.
Ignore local configuration settings Off All printers will use the Global configuration settings regardless of any saved local settings.
Printer handling All Determines whether !Printers or !PrintSpool spools the print.

  • Handle all compatible printers.
  • Don't handle Shared printers.
  • Only handle Shared printers. Linked printers will also be handled.
Create 'Shared/Linked' prints locally Off Prints are created on local machine and then transferred across the network. Messenger users may require this option.
Include 'Print to file' connections Off Print 'To file' is usually left to !Printers unless this option is ticked.
Warning if overwriting existing file Ticked When printing 'To file' the destination will be checked.
Close any open files for print destination Off Attempt to close any files that are open for the print destination.
Printer matching All Determines where the print is spooled to.

  • Print to current printer only.
  • Match printer.
  • Extended printer matching (this option interacts with !Printers).
Icon bar icon Ticked Display icon on icon bar. When switched off, the queue window can be retrieved by using the configurable show queue command or by starting the program a second time.
Extend queue line title display Off Dates and times of prints are removed so more of the titles can be shown.
Retain last print between sessions Off Last printed item is retained to enable requeueing next session.
Simultaneous printing to local devices On As long as the printer is responding, any prints that multitask during creation (e.g. GimpPrints) will be transferred as they are created. Local devices refers to printers with a connection type of Parallel or USB.
Simultaneous printing to remote devices Off Any prints that multitask during creation (e.g. GimpPrints) will be transferred as they are created. Remote devices refers to printers with a connection type of 'To file' where the destination is recognised as a remote filing system.
Block access to parallel port while printing Off This should be switched on if the parallel port is used for anything other than printing or where any printers aren't being used via PrintSpool.
Monitor status of network devices Off Prevents attempts to print to network printers that aren't currently on the network. A limited set of connection types are checked, others added by request.
Only check network if prints queued. On Prevents network status checks if no prints are queued.
'Copy' to RemotePrinterFS On Prints are copied rather than spooled to RemotePrinterFS destinations.
Load and quit with Printers application Off As long as PrintSpool has been seen it should load when Printers does. It will also quit if Printers is quit once any printing has completed.
Dormant when no printer present Off Stops monitoring actions until a printer is present. Any prints created in this situation are directed to null: and are therefore lost.
Logging Off Logs main print commands and settings.
Show queue command Q Command for displaying the Queue window when there isn't an icon bar icon visible. N.B. 'Q' is a reserved system variable assigned to PrintSpool, if you change it then make sure it doesn't clash with anything else.

Configuration - Local

Option

Default

Description

Options overriding global configuration see Configuration Global for details. Local configurations can relate to either the Printer Definition File (PDF) or the USB vendor/product numbers. PDF configurations take precedence. Use the 'View mappings' menu option to see which configuration is in force for each printer. The configuration shown will be for the currently selected printer unless there is a print in progress or another local configuration that hasn't been saved.
Handle this printer Ticked Determines whether !Printers or !PrintSpool spools the print.
Share via linked disc Off If set this option requires the harddisc name (as known to ShareFS) that contains the Scrap area for the linked machine. The print will be moved to PrintSpool on that machine. Printer names must match on each machine but the printer shouldn't be Shared. Messenger users should also tick the Create 'Shared/Linked prints locally' option in the Global configuration.
Network information None Host, Queue, Send control file first and Tolerant are used for the LPR interface. Tolerant ignores server errors that occur after a print has been transferred. Host and Port number can be used either by the Command interface or to provide the network settings of a print with a connection type of 'to file' that isn't detected automatically.
Print type !Printers
  • Use !Printers destination - a normal print.
  • LPR interface - automatic link to PrintSpool LPR client using Host and Queue settings.
    !Printers connection can be set to 'null:' if appropriate.
  • Type 13 USB - This option is only intended for use when printing to a ROOL or Castle USB interface using a non-PopUp version of !Printers. The connection link menu will list any printers that are currently available.
  • Command - User defined link to a command line interface. Parameter substitution can be used for {H} Host, {P} Port and {F} Filename. Memory slot required must be specified. If the task completes too quickly PrintSpool may assume it hasn't worked.
    !Printers connection can be set to 'null:' if appropriate.
Printer bus resets - Use global settings Ticked If set the Global printer bus reset options apply, otherwise each type of reset can be individually selected.
Buffer flush Global
  • Use global setting
  • On
  • Off
Postscript termination Off Postscript printers are normally identified automatically by their printer number (0). For GimpPrint drivers this will be set to 7 as it uses the PDumper interface. Setting this option will force PrintSpool to complete prints with a Unix terminator where these are absent or when a print is 'Stopped'.
Text printing Off PrintSpool will handle text printing by applications to this printer driver regardless of the printer driver features if the text printing option 'Handle text printing by applications to non-text drivers' is also set.
Seconds delay after sending print 0 Pause after sending print to allow time for the printer to process the print or for the inks to dry.

Queue window

Hold all prints All printing stops immediately, this also occurs when any !PrintSpool menu is opened
Hold after current print When the current print completes, 'Hold all prints' is set.
Status = Printed Only the last printed file is shown on this screen although prints are retained within the directory structure until !PrintSpool quits. The last twenty prints can be retrieved using the 'Requeue' option from the main menu.

  • Requeue - Print is returned to the queue with a copy count of one. Earlier prints may be requeued from the main menu.
  • View ... - Displays postscript prints in a suitable viewer (e.g. RiScript) if available.
  • Remap - Print is moved to a different queue. Only move to a printer that can print the file.
  • Store/Rename - Store or rename print.
  • Remove - Print is removed.
  • Status - Shows status information for all printers available.
  • Extra copies - Print is returned to the queue with the chosen number of copies.
Status = Printing
  • Stop & Requeue - Print is returned to the queue and 'Hold all prints' is set.
  • Stop & Remove - Print is terminated and removed.
  • Status - Shows status information for all printers available.
  • Copies - Set the total number of copies for this print.
Status = Next
  • Remove - Print is removed but is retrievable with the main menu Requeue option.
  • View ... - Displays postscript prints in a suitable viewer (e.g. RiScript) if available.
  • Queue jump - Move print to the top of the queue. It will remain as the next item until printed or another print jumps to the top. Prints not listed in the queue window can be queue jumped from the main menu.
  • Release print - When prints are held, the queued print will be released.
  • Remap - Print is moved to a different queue. Only move to a printer that can print the file.
  • Store/Rename - Store or rename print.
  • Status - Shows status information for all printers available.
  • Copies - Set the total number of copies for this print.
Titles PrintSpool will attempt to assign titles to any prints created.
Initial copies Every print created will have a default number of copies equal to this setting. The queue menus can be used to adjust individual prints later.
Connection Current printer connection is shown on the left, if a file is printing the connection for that printer is shown on the right e.g. Parallel, Serial, USB etc. For USB it will also show the device number e.g. USB2.
Driver/Status Current printer driver is shown on the left, if a file is printing the driver it was created under is shown on the right. If 'No printer' shows here then the printer is either off or returning unreliable results.
Action The current printing progress. The percentage printed may also be shown.
Icon A quick way to switch the icon bar icon on or off. This doesn't alter the saved configuration.

Status, Monitor, Overwrite & Storage windows

If the printer is shown with an exclamation mark in a queue line the device isn't responding. More information is available from the Status window. Further detail is provided by clicking on the mini text file icon (if present).

The Monitor window shows the actual configuration in use for the currently printing item.

When 'Warning if overwriting existing file' is configured, a window will appear offering the choice of overwriting on this one occasion or silencing the warnings (Quiet). Accepting these options or changing the connection within !Printers will clear the window. Once a 'Quiet' option has been set it can be cleared in the Status window.

From the Storage window, previously stored prints can be queued for printing.


LPR

PrintSpool handles LPR by using a 'Local Configuration' setting for the printer.
  • Choose Configuration from PrintSpool menu and ensure 'Ignore local configuration settings' is not set.
  • Select the required printer as active in Printers.
  • Click 'Local PDF' radio button.
  • Select 'Handle this printer' and the radio button 'LPR interface'.
  • Enter the host name or server address and the queue information.
  • Click 'Create'

Text Printing

Option

Description

Handling of 'text' printing by applications View Mappings will show how text printing is handled for each available driver.

  • Don't handle
  • Handle to printer drivers that cannot do text *
  • Handle for all printer drivers

* PrintSpool can be forced to handle text printing for a particular printer driver via a 'Local' configuration setting, this is useful if a driver reports it can handle text but it doesn't actually work.

Text printing by an application will only be handled when there isn't another application registered to handle that particular filetype. Multiple blank lines are automatically removed.

Only applications that use the printing protocols to attempt text printing will work properly e.g. Zap 'Quick Print' doesn't work so use the 'Fancy Print' instead. StrongEd printing does work but 'Headers and footers' should be omitted.

Note : Some printer drivers appear to occasionally abort on slower machines when handling text printing.
Handle text printing for files dragged to PrintSpool Files dragged to the PrintSpool icon bar icon (or the queue window when no icon bar icon present) will be handled if the filetype is on the configured list.
Lines per A4 page Print text size space is scaled so that the configured number of lines are printed to an A4 page. Other page sizes are automatically proportioned.
Characters per A4 page Similar to 'Lines per A4 page' but scaling the number of characters on a line.
Configured list Entries can be keyed as hex filetype (e.g. &FFF) or keyed as filetype name (e.g. Text) or by dragging a file to the writeable icon.

Preludes/Trailers

Prelude (Prolog) and Trailer (Epilog) files can be automatically added to any prints. Files should be created in Choices:PrintSpool.Local.Preludes or Choices:PrintSpool.Local.Trailers. The filename can either be the same as the !Printers name or the USB details in the form VVVV/DDDD where VVVV is the vendor identity and DDDD is the product identity. Both values are in hexadecimal and should be four characters (add leading zeroes if necessary). If files for both the printer name and the USB reference exist, the former takes precedence. The data is only added if it isn't already present in the print file.


Acknowledgements

Programming Advice    : Daniel Ellis, Adrian Lees

Testing               : John Woodhouse, Alan Lewer, Roger Darlington
                        Roger Noble, John Oxley, David Briggs
                        John Williams, Ron Briscoe, Martin Avison
                        Harriet Bazley, Robert Hunter, Doug Webb
                        Bryan Page, Robin Hampshire, Jim Nagel
                        Joseph Robson, Michael Harding

Sprite Design         : Richard Hallas

Thanks to anyone who has provided feedback.


Contacts

Author : Ian.Hamilton@AAUG.Net

New versions : http://www.notme.me.uk/