Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xpgetprinterlist(3xp) [x11r4 man page]

XpGetPrinterList(3Xp)						 XPRINT FUNCTIONS					     XpGetPrinterList(3Xp)

NAME
XpGetPrinterList - Retrieves a list of all printers supported on an X Print Server. SYNOPSIS
cc [ flag... ] file... -lXp [ library... ] #include <X11/extensions/Print.h> XPPrinterList XpGetPrinterList ( display, printer_name, list_count_return ) Display *display; char *printer_name; int *list_count_return; ARGUMENTS
display Specifies a pointer to the Display structure; returned from XOpenDisplay. printer_name Specifies the name of the printer for which information is desired. If NULL, then information is returned for all printers associ- ated with the server. list_count_return Returns the number of printers in the list. DESCRIPTION
XpGetPrinterList returns a list of printer records where each record describes a printer supported by the X Print Server, or NULL if any errors occur. If printer_name is NULL, then a list of all printers supported is returned. If printer_name is non-NULL, only print records matching printer_name are returned, and if no records match printer_name , then NULL is returned. printer_name is a COMPOUND_TEXT string, and the name and desc fields in the returned list will be in COMPOUND_TEXT (note, ISO 8859-1 (Latin-1) is a proper subset of COMPOUND_TEXT, so can be used directly). If printer_name is in a code-set that the X Print Server cannot convert (into its operating code-set), then the X Print Server may fail to locate the requested printer. If printer_name is NULL, then all printer names, regardless of their code-set, can be returned, leaving the task of specific printer recognition up to the caller. When XpGetPrinterList is called, the caller's locale (see XpSetLocaleHinter) is included in the request as a "hint" to the X Print Server. If supported by the implementation, the X Print Server will use the hint to locate a localized description for each printer in the list. If the X Print Server cannot understand the hint, the X Print Server will choose a default. The returned printer list can be freed by calling XpFreePrinterList. The XPPrinterList structure defined in <X11/extensions/Print.h> contains: typedef struct { char *name; /* name */ char *desc; /* localized description */ } XPPrinterRec, *XPPrinterList; DIAGNOSTICS
BadAlloc Insufficient memory. SEE ALSO
XpFreePrinterList(3Xp), XpSetLocaleHinter(3Xp) X Version 11 libXp 1.0.0 XpGetPrinterList(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