YaST2 Printer configuration, Overview

YaST2 Printer configurator (printconf) should help user to set up local and network printers.
Requires: lprng and lpdfilter.
Does not work with CUPS!!!
History: apsfilter was the filtering software used in SuSE Linux till version 7.3. In 8.0 packages lprold (original bsd lpr) and plp were dropped and apsfilter was dropped in favor of lpdfilter.

Printer vs. Queue

For understanding the printer configuration problems you should keep in mind that there is a difference between physical device - Printer and logical device - Queue. There can be any number of queues assigned to one printer. SuSE printing scheme uses this fact. New printer database is designed with the goal to simplify creation of more queues with different settings for one printer. Typicaly for color inkjet printer there will be up to 4 automaticaly configured queues: lp, color, high and photo, where lp is a fast monochrome queue. Another configurations may be available for manual configuration: the same as mentioned but with an alternative driver, higher or lower resolutions or other special parameters. When we talk about pritner database item used by a printer queue, we say configuration of the queue.
There can be special kind of queue - raw queue. This queue doesn't perform filtering and sends the data to the printer unchanged. Hence there is no connection with the printer database.
Another special kind of queue is ascii queue. This queue performs filtering but it prints all files as texts. For example when you print postscript file on an ascii queue, you get the postscript source out of the printer.

lpdfilter

lpdfilter has replaced apsfilter in SuSE linux 8.0. Although it is much better than apsfilter it still isn't ideal when comparing to cups. In cups, access to all the types of queues have the same interface. LPRng isn't bundled together with lpdfilter which means that users may but needn't use only lpdfilter, they may use whichever filter they want. But YaST2 can edit only queues created by YaST2 using lpdfilter.

Printer types

In general there are 2 types of print queues. Queue with filtering and raw queue.

Regarding this split there is a difference between 7.3 with apsfilter and 8.0 with with lpdfilter. In apsfilter, filtering (-auto) queue, raw (-raw) and ascii (-ascii) queues were created by default. Lpdfilter creates exactly one queue per one call. That's why there is the new option to create raw queue or ascii queue in printconf.

We can divide queues by connection. See spec_connection.html for connection reference. But from the viewpoint of printconf there are no internal differences between various types of queues. The only difference is whether queue performs filtering or is raw. Note that forwarding queues are always raw (FIXME: ensure that "raw" is set to true for this type of queue and check the tests for showing "test" button.) and other queues are filtering by default. Despite of the possibility of changing "prefilter queue for remote printer" to raw, it has no sense to do it. If you want raw forwarding queue, use "forwarding queue" instead. TODO: Currently it is only possible to create prefilter queue to forwarding queue. It should be possible to create a prefilter queue to any kind of queue.

The workflow

Actually there are 3 types of workflow.

  1. autoconfiguration for automatic configuration of detected printers. It's currently accessible only from installation (FIXME)
  2. autodetected printers for manual configuration of autodetected printers -- this is started by default from control center.
  3. manual configuration/editation starting in complex dialog.