Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xpstartpage(3xp) [debian man page]

XpStartPage(3Xp)						 XPRINT FUNCTIONS						  XpStartPage(3Xp)

NAME
XpStartPage - Indicates the beginning of a print page. SYNOPSIS
cc [ flag... ] file... -lXp [ library... ] #include <X11/extensions/Print.h> void XpStartPage ( display, window ) Display *display; Window window; ARGUMENTS
display Specifies a pointer to the Display structure; returned from XOpenDisplay. window Specifies the window ID. DESCRIPTION
XpStartPage signals the beginning of a new print page, with window serving as the drawable representing the page. window is required to be a descendant of the root window of the current print context window, else a BadWindow is generated. No generation of document data will occur for rendering operations against window or its inferiors prior to XpStartPage. XpStartPage causes window to be mapped. See XpGetPageDimensions and XResizeWindow for details on resizing window to the size of the media selected prior to calling XpStartPage. Within the XpStartPage and XpEndPage sequence, attempts to resize, move or unmap window will yield undefined results. To resize or move inferiors of window the standard semantics of ConfigureWindow apply, except that the contents of any configured window may be discarded. An Expose event will be generated if a window's contents are discarded. All changes to the XPPageAttr attribute pool (see XpSetAttributes) must be made prior to calling XpStartPage, after which an XPBadSequence error will be generated if changes are attempted, until XpEndPage is called. For clients selecting XPPrintMask (see XpSelectInput), the event XPPrintNotify will be generated with its detail field set to XPStart- PageNotify when the X Print Server has completed XpStartPage. If the event Expose is also selected for (see XSelectInput), the exposure events will be generated prior to XPPrintNotify. The client need not wait for XPStartPageNotify prior to calling any other X rendering routines. DIAGNOSTICS
BadWindow The value specified for window is not valid. 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, XpStartPage was called before XpStartJob or was called for a type XPDocRaw document. SEE ALSO
XpEndPage(3Xp), XpGetPageDimensions(3Xp), XpSelectInput(3Xp), XpSetAttributes(3Xp) X Version 11 libXp 1.0.0 XpStartPage(3Xp)

Check Out this Related Man Page

libXp(3Xp)							 XPRINT FUNCTIONS							libXp(3Xp)

NAME
libXp - X Print Client Library SYNOPSIS
cc [ flag... ] file...-lXp [ library... ] #include <X11/extensions/Print.h> DESCRIPTION
libXp provides public APIs to allow client applications to render to non-display devices. When an application wishes to print, it makes a display connection to the X print server and asks to see the list of printers available with an XpGetPrinterList() request. Once the application has selected a printer, it creates and sets a print context using XpCreateCon- text() and XpSetContext(). The Print Context represents the embodiment of the printer selected. It is initialized by the Xprint server at XpCreateContext() time to contain a printer's default capabilities, as well as, the description of its overall capabilties, and to maintain the state of settings on the printer, the state of rendering against the printer, and 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 print contexts can be shared among pro- cesses. Applications can enlist the help of secondary processes to manipulate print options in the Print context rather than taking on the task directly. Once an application has set options within the print context, it makes calls such as XpStartJob() to delineate jobs, documents, and pages within a sequence of normal X calls. A job is a collection of documents, where each document is in turn a collection of pages. When XpEndJob() is called, the resulting PDL is either sent to a print spooler or can be retrieved by the application itself. The developer basically has to make changes to the X application to make use of the X Print Service. A simple X application supplemented with some of the libXp routines might look like this: #include <X11/Xlib.h> #include <X11/extensions/Print.h> main() { Display *pdpy; Screen *pscreen; Window pwin; XPPrinterList plist; XPContext pcontext; int plistCnt; char *attrPool; #define NPOOLTYPES 5 XPAttributes poolType[NPOOLTYPES] = {XPJobAttr,XPDocAttr,XPPageAttr, XPPrinterAttr,XPServerAttr}; int i; unsigned short width, height; XRectangle rect; char *printServerName = ":1"; char *mylaser = "varos"; /* * connect to the X print server */ pdpy = XOpenDisplay( printServerName ); /* * see if the printer "mylaser" is available */ plist = XpGetPrinterList (pdpy, mylaser, &plistCnt ); /* * Initialize a print context representing "mylaser" */ pcontext = XpCreateContext( pdpy, plist[0].name ); XpFreePrinterList( plist ); /* * Possibly modify attributes in the print context */ for(i=0;i < NPOOLTYPES;i++) { if(attrPool = XpGetAttributes( pdpy, pcontext, poolType[i] )) { /* twiddle attributes */ /* XpSetAttributes( pdpy, pcontext, poolType[i], attrPool, XPAttrMerge ); */ XFree(attrPool); } } /* * Set a print server, then start a print job against it */ XpSetContext( pdpy, pcontext ); XpStartJob( pdpy, XPSpool ); /* * Generate the first page */ pscreen = XpGetScreenOfContext( pdpy, pcontext ); XpGetPageDimensions( pdpy, pcontext, &width, &height, &rect); pwin = XCreateSimpleWindow( pdpy, RootWindowOfScreen( pscreen ), rect.x, rect.y, rect.width, rect.height, 2, BlackPixelOfScreen( pscreen), WhitePixelOfScreen( pscreen)); XpStartPage( pdpy, pwin ); /* usual rendering stuff..... */ XpEndPage( pdpy ); XpStartPage( pdpy, pwin ); /* some more rendering..... */ XpEndPage( pdpy ); /* * End the print job - the final results are sent by the X print * server to the spooler sub system. */ XpEndJob( pdpy ); XpDestroyContext( pdpy, pcontext ); XCloseDisplay( pdpy ); } SEE ALSO
Xprt(1), XpCreateContext(3Xp), XpDestroyContext(3Xp), XpEndJob(3Xp), XpEndPage(3Xp), XpFreePrinterList(3Xp), XpGetAttributes(3Xp), XpGet- PageDimensions(3Xp), XpGetPrinterList(3Xp), XpSetAttributes(3Xp), XpSetContext(3Xp), XpStartJob(3Xp), XpStartPage(3Xp) X Print Service Extension Library X Version 11 libXp 1.0.0 libXp(3Xp)
Man Page