The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

libXp (3)
  • >> libXp (3) ( Solaris man: Библиотечные вызовы )
  • 
    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 con-
         nection  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 XpCreateContext() 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  capa-
         bilities,  as  well as, the description of its overall capa-
         bilties, 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  processes.  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  con-
         text, 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  appli-
         cation to make use of the X Print Service.
    
         An example of an Xp library based client program that can be
         used to work with the X Print Server is listed below:
    
         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),    Xserver(1),    Xsun(1),    XpCreateContext(3Xp),
         XpDestroyContext(3Xp),     XpEndJob(3Xp),    XpEndPage(3Xp),
         XpFreePrinterList(3Xp),                XpGetAttributes(3Xp),
         XpGetPageDimensions(3Xp),             XpGetPrinterList(3Xp),
         XpSetAttributes(3Xp),  XpSetContext(3Xp),   XpStartJob(3Xp),
         XpStartPage(3Xp)
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру