background image
12
December 15, 1997
X Print Service Extension Library
12
X Print Service Extension Library
Release 6.4
X Version 11
2.2.4 Starting, Ending, and Canceling Jobs
Use
XpStartJob to indicate the beginning of a single print job.
void XpStartJob (display, output_mode)
Display *display;
XPSaveData output_mode;
display
Specifies a pointer to the Display structure; returned from XOpenDisplay.
output_mode
Specifies how the printer output data is to be handled.
XpStartJob signals the beginning of a new print job.
If output_mode is
XPSpool the X Print Server will automatically spool the printer output. If output_mode is
XPGetData, then the X Print Server buffers the document output for retrieval by XpGetDocumentData. In this
case, the print server suspends processing further requests on this print context until some other client sends
XpGetDocumentData. Subsequent operations that use the print context may be suspended at any time pending
the processing of
XpGetDocumentData replies to read any buffered output.
The
XPSaveData values for output_mode are defined in <X11/extensions/Print.h>.
#define XPSpool
1
/* Job data sent to spooler */
#define XPGetData
2
/* Job data via XpGetDocumentData */
XpStartJob sets the job-owner job attribute (included in the XPJobAttr pool) immediately prior to issuing the
PrintStartJob request. On POSIX systems, the job-owner attribute is set using getpwuid_r on the result of
getuid. This attribute may be used by the X Print Server to identify the user to the spooler.
All changes to the
XPJobAttr attribute pool (see XpSetAttributes) must be made prior to calling XpStartJob, after
which an
XPBadSequence will be generated if changes are attempted, until XpEndJob is called.
For clients selecting
XPPrintMask (see XpSelectInput), the event XPPrintNotify will be generated with its detail
field set to
XPStartJobNotify when the X Print Server has completed the PrintStartJob request.
Conceptually, a "Job" is a collection of "Documents", where each Document is in turn a collection of
"Pages". Depending on the print facilities underlying the X Print Server, these delineations may be mapped
by a DDX driver into real functionality (e.g. see the server attribute
multiple-documents-supported).
XpStartJob can generate one of the following errors:
XPBadContext
A valid print context-id has not been set prior to making this call.
XPBadSequence
The function was not called in the proper order with respect to the other X Print
Service Extension calls (for example,
XpEndJob prior to XpStartJob).
BadValue
The value specified for output_mode is not valid.
Use
XpEndJob to indicate the ending of a single print job.
void XpEndJob (display)
Display *display;
display
Specifies a pointer to the Display structure; returned from XOpenDisplay.
XpEndJob signals the end of a print job. Any accumulated print data that remains is either sent to the printer
or made available to
XpGetDocumentData.
For clients selecting
XPPrintMask (see XpSelectInput), the event XPPrintNotify will be generated with its detail
field set to
XPEndJobNotify when the X Print Server has completed the request.