Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xpgetattributes(3xp) [x11r4 man page]

XpGetAttributes(3Xp)						 XPRINT FUNCTIONS					      XpGetAttributes(3Xp)

NAME
XpGetAttributes - Gets an attribute pool from the specified print context. SYNOPSIS
cc [ flag... ] file... -lXp [ library... ] #include <X11/extensions/Print.h> char *XpGetAttributes ( display, context, type ) Display *display; XPContext context; XPAttributes type; ARGUMENTS
display Specifies a pointer to the Display structure; returned from XOpenDisplay. context The print context from which the attribute pool is to be retrieved. type Specifies the attribute pool. DESCRIPTION
XpGetAttributes returns a pool, a COMPOUND_TEXT resource string representing the attribute pool specified by type. The caller is expected to free pool when it is no longer needed using XFree. The attribute pool (hence the resource string) consists of many name-value pairs (for example, "copy-count: 3"). The syntax of an attribute pool is the same as an X resource file (see "Resource File Syntax" in the Xlib specification). Valid characters for each name (left hand side) are derived from the Posix which is "a"-"z" and "A"="Z" and"0"-"9" and "_" and "-". Valid characters for each value (right hand side) are all characters except NULL and unescaped NEWLINE, though all predefined values in the X Print Service are confined to X Portable Character Set (XPCS) characters. Non XPCS values are typically limited to localized "description" strings. See XpCreateContext regarding the locale hint for more information on localized values. If any errors occur, XpGetAttributes returns NULL. STRUCTURES
The values for the typedef XPAttributes in <X11/extensions/Print.h> are: #define XPJobAttr 1 /* get/set */ #define XPDocAttr 2 /* get/set */ #define XPPageAttr 3 /* get/set-subset of XPDocAttr */ #define XPPrinterAttr 4 /* get only (library) */ #define XPServerAttr 5 /* get only (library), no context needed */ DIAGNOSTICS
BadAlloc Insufficient memory. BadValue The value specified for type is not valid. XPBadContext The specified print context-id is not valid. FILES
<X11/extensions/Print.h> SEE ALSO
XpCreateContext(3Xp) X Version 11 libXp 1.0.0 XpGetAttributes(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