This section explains how to print from Oracle Reports on UNIX and highlights the key differences between the UNIX and Windows platforms. It also explains the operating system requirements for any application to print successfully.
To understand how printing works for Oracle Reports on UNIX, it is useful to have the Microsoft Windows printing mechanism as a reference point. Microsoft Windows provides an application level API that supports different types of printers based on the installed printer drivers. Applications can interact with various printer drivers through these standard APIs. For example, to change the paper margin, an application needs to call the appropriate Microsoft Windows API method, which conveys the desired changes to the printer driver. On Microsoft Windows, printer drivers are printer specific; that is, you must install a specific printer driver for a printer. These printer drivers know how to communicate to the printer and provide services to applications that send output to the printer. Applications can access the printer properties, change their properties, and perform printing through these standard APIs.
Motif and character-based UNIX operating systems do not have their own standard interface to printers like Microsoft Windows. Individual applications are responsible for sending their output in a streamed file to the printer and adhering to the specifications of the printer. On UNIX platforms, Oracle Reports output must be formatted properly (for example, PostScript or PCL) before sending it as a stream to the printers. To print on UNIX, Oracle Reports mimics the behavior of the Microsoft Windows printer drivers internally. The next section describes more precisely how this mechanism works on UNIX.
To support printing on UNIX, Oracle Reports internally creates logical printer drivers. A logical printer driver simulates the behavior of Microsoft Windows printer drivers and provides a printing service interface for Oracle Reports on UNIX. Through the logical printer driver, Oracle Reports can access the printer properties and perform printer-related operations. These logical drivers:
Support PostScript and PCL printing specifications, which are the most popular printing standards.
Read the printer description files (for example, PPD or HPD) to get the printer descriptions.
Embed the various printer commands in the generated PostScript or PCL output. For example, to change paper margin, the logical printer driver needs to write the corresponding printer commands in the generated output. These commands differ depending on whether you use a PostScript or a PCL printer. When the generated PostScript or PCL file is sent to the printer through the printing executable (for example,
lpr), the printer interprets the commands in the file and processes them accordingly.
To function correctly, the logical printer drivers require the following input:
The printer queue name that is used to spool the print request.
The printer description file that contains the printer properties.
The driver type required by the specified printer queue, PostScript or PCL.
You provide this information in a file called
uiprint.txt. Oracle Reports uses this file to get a list of the printer queue names available for printing. In
uiprint.txt, you must specify the printer queue name, the type of driver needed for the queue, the version of the driver, and any special printer description file that the print driver needs for that specific printer (for example, a PPD file for the PostScript driver). Once this information is available, the internal logical printer drivers are constructed and they use the definition files provided to access the printer properties.
Oracle Reports supports the following printing standards on UNIX:
PostScript Level 1 and 2
PCL Level 3
ASCII (for character mode printing)
The printers you use with Oracle Reports should be compatible with these versions.