background image
Functional specification
9
CDE/Motif PST
CDEnext
Figure 1-1.
X Print Service Key Concepts Diagram
When the X Print Server starts, it may read a configuration file for instructions on which print ddx drivers to load,
and which printer names to support. It may also read some "ddx dependent configuration files".
At this point, the X Print Server knows which printers to support, and has access to "printer model configuration
files" that descibe the capabilities of the printer models. Parallel to the printer model configuration files are some
"printer attribute configuration files" that can be modified if per-printer customization is desired.
When an application wishes to print, it can make a display connection to the X Print Server and ask to see the list of
available printers via
XpGetPrinterList
. Once the application has selected a printer, the application can
create and set a "Print Context" using
XpCreateContext
and
XpSetContext
. The "Print Context" is a
critical concept, as it represents the embodiment of the printer selected - it is initialized by the X Print Server at
XpCreateContext
time, to contain the default capabilities of the printer, to contain the array of capabilities of
the printer, to maintain the state of settings on the printer, to maintain the state of rendering against the printer, and
to maintain the rendered output. The Print Context affects how the ddx driver generates its page description
language (PDL), and how the PDL is submitted to a spooler. The Print Context may also affect fonts and other
elements in the dix layer of the X Print Server. The most outwardly visible aspect of a Print Context are the
"attribute pools" contained within, attributes that express and control: server, printer, job, document and page
options. These attribute pools can be accessed and changed using
XpGetAttributes
and
XpSetAttributes
.
X Application
DIX + OS +
Print DDX
Print Extension
Print Contexts
Fonts + Other
Print Spooler
Print Dialog Manager
XpGetPrinterList
XpCreateContext
XpStartJob
...x rendering...
XpEndJob
XpSetContext
XpGetAttributes
XpSetAttributes
XpNotifyPdm
Printers config file
(config needed)
Printer model files
(provided by printer vendors)
Printer attribute files
(some config needed)
ddx config files
(provided by ddx vendors)
Job, Document & Page attributes
Server & Printer attributes