In a simple situation, you may have a single printer which only ever has a single type of stationery in it, and this printer is the default for all your applications. On the other hand, the situation might be more complicated. Perhaps there is one printer loaded with pre-printed A4 paper, a second with A5 paper, and a third containing labels. In this case it would be annoying (and maybe error prone) for the user to have to select the appropriate printer whenever they print a report. To make life more difficult still, suppose that the three-printer Rekall application is to be installed at more than one site, and that the printers are named differently at each site (maybe different models of printers are used, or at one site printers are local while at another they are networked).
Rekall provides a mechanism to handle this gracefully, in which you can define logical printers, and then specify which logical printer a particular report needs. All that is needed when installing a Rekall application at a particular site is to configure the logical printers appropriately. You can think of this as a more sophisticated equivelent of the Print Setup ... functionality found in other applications. Of course, for the simple single printer situation, you can ignore all this, and Rekall will behave much like most other applications; when you press the Print button, the standard print dialog will appear.
Logical printer configuration is accessed via the View/Show objects menu. This brings up a dialog which can be used to quickly access objects such as tables and forms, as well as printers. To create a new logical printer, select Printers as the object type and choose the server where the definition will be stored; as usual the !Files entry means that the definition will be stored in the file system ( In keeping with most other Rekall objects, the definition is stored as XML, so you can look at it or even edit it by hand. ) . Then click Create. This will bring up the standard print dialog ( The appearance of the dialog, and the control which it provides will depend on which version of Rekall and which version of KDE you are running. For the QT-only version of Rekall, and for KDE versions of Rekall on KDE 2.1.x, you will see the QT printer dialog. From KDE 2.2.x onwards, you will see the KDE printer dialog. Rekall stores most settings that the print dialog provides. )
The required settings for the logical printer (printer name and properties) can be set as normal, but when the Print button (or OK button) is pressed, rather than any printing taking place, a save dialog will appear into which you can enter a logical printer name. This name is completely separate from the real printer name, but if you were printing in greyscale and in landscape on an A5 printer then you might use the logical name LandscapeA5Grey.
Logical printer settings can later be changed, or deleted, again via the View/Show Objects menu. There is no mechanism to rename a logical printer, but you can edit it (leaving the settings unchanged), save it under a different name, then delete the original.
A logical printer can be specified as one of the properties of a report. When a report is printed, the printer is determined as below. There is also a report option used to specify that the print dialog should always be shown.
If no logical printer is specified but there is a logical printer named Default (note that the name is case sensitive) then the settings associated with Default will be used.
If no logical printer is specified and there is no logical printer called Default then a standard print dialog will be shown.
If a logical printer is specified and one exists with that name, then the settings associated with that logical printer are used.
If a logical printer is specified but one with that name does not exist, then a warning is displayed and the standard printer dialog is shown.