void XpStartDoc ( display, type )
Display *display;
XPDocumentType type;
XpStartDoc signals the beginning of a new print document.
If type is XPDocRaw, then the client will provide all the data for the resulting document using XpPutDocumentData; the X Print Server will not write any data into the resulting document. Calling XpStartPage in a XPDocRaw document will generate an XPBadSequence error. For more information, see XpPutDocumentData.
If type is XPDocNormal, then the X Print Server will generate document data, and depending on the DDX driver, can incorporate additional data from XpPutDocumentData into the output. For more information, see XpPutDocumentData.
All changes to the XPDocAttr attribute pool (see XpSetAttributes) must
be made prior to calling XpStartDoc, after which an XPBadSequence will
be generated if changes are attempted, until XpEndDoc is called.
The application is not required to call XpStartDoc and XpEndDoc in the process of printing. The "document" delineation may not be useful from the application's or spooler's perspective, hence is optional. If XpStartPage is called immediately after XpStartJob then a synthetic XpStartDoc with XPDocNormal will be assumed by the X Print Server prior to XpStartPage (i.e. the XPStartDocNotify and XPStartPageNotify events will have the same sequence number). Likewise, if XpEndJob is called immediately after XpEndPage then a synthetic XpEndDoc will be assumed by the X Print Server prior to XpEndJob (i.e., the XPEndDocNotify and XPEndJobNotify events will have the same sequence number).
For clients selecting XPPrintMask (see XpSelectInput), the event XPPrintNotify will be generated with its detail field set to XPStartDocNotify.
#define XPDocNormal 1 /* Doc data handled by Xserver*/ #define XPDocRaw 2 /* Doc data passed through Xserver*/