Rootroute       Hosting       Order       Map       Login   Secure Inter-Network Operations  
 
man : Xprint(7)

Command: man perldoc info search(apropos)  




Xprint(7)                                               Xprint(7)


NAME
       Xprint  -  The  "X  print  service" - a portable, network-
       transparent printing system based on the X11 protocol

SYNOPSIS
       Xprint  is  a  very   flexible,   extensible,   scaleable,
       client/server  print  system  based on ISO 10175 (and some
       other specs) and the X11 rendering protocol.  Using Xprint
       an  application  can  search,  query  and use devices like
       printers, FAX machines or create documents in formats like
       PDF.   In  particular,  an application can seek a printer,
       query supported attributes (like paper size, trays,  fonts
       etc.), configure the printer device to match its needs and
       print on it like on any other X device  reusing  parts  of
       the code which is used for the video card Xserver.

OVERVIEW
       The  "X  Print  Service"  technology allows X rendering to
       devices such as printers and fax. Most of the  service  is
       available  in  the  X11  technology  stack as Xp, with the
       remainder in single toolkit stacks (e.g. DtPrint for CDE).
       Modifications  have also been made to the LessTif/Motif/Qt
       technology stacks to support Xprint.

       The Xp portion consists of:

       o Xp Extension for the X-Server (included in the  X-Server
         Xprt)

       o Xp  Extension API for the client side (libXp/libXprintU-
         tils)

       o PCL ddx driver that converts core X to native PCL

       o PDF ddx driver that converts core X to native PDF

       o PostScript ddx driver that converts  core  X  to  native
         PostScript

       o Raster  ddx  driver that generates xwd rasters which can
         be converted to PCL, PDF or PostScript rasters


       From an X clients perspective, it can attach to one of two
       nearly  identical  X-Servers,  a  "Video"  X-Server, and a
       "Print" X-Server which has the  additional  Xp  capability
       but otherwise looks and behaves the same.

HOW THE X PRINT SERVICE WORKS
       The  X  Print  Service expands on the traditional X-Server
       and Xlib world in four ways.

       1.  Most obvious is the use of "print ddx drivers" instead
           of  "video  ddx  drivers".  While  a  video ddx driver



                          8 October 2004                        1





Xprint(7)                                               Xprint(7)


           modifies pixels in a video frame buffer, a  print  ddx
           driver  generates  "page  description  language (PDL)"
           output (such as PCL, PDF or PostScript) or  sends  the
           print  rendering  instructions  to a platform-specific
           print API (like Win32/GDI).

           Once a print ddx driver generates PDL output,  it  can
           be sent to a spooler such as lp(1) or retrieved by the
           client (to  implement  functionality  like  "print-to-
           file").

           Though  not currently done, a single X-Server can sup-
           port both print and video ddx drivers.

       2.  Since printers support "paged" output, unlike video, a
           portion of the Xp Extension supports APIs to delineate
           printed output.  For example, XpStartPage  and  XpEnd-
           Page  tell  the  X-Server where a physical page starts
           and ends in an otherwise continuous stream of  X  ren-
           dering  primitives.  Likewise, XpStartJob and XpEndJob
           determine when a collection of pages starts and  ends.
           XpEndJob typically causes the generated PDL to be sub-
           mitted to a spooler, such as lp(1).

       3.  Since printers have  extensive  capabilities,  another
           portion  of  the Xp Extension supports APIs to manipu-
           late "print contexts".

           Once a printer is selected using the Xp Extension API,
           a  print  context  to  represent  it can be created. A
           print context embodies the printer selected - it  con-
           tains  the  printer's default capabilities, selectable
           range of capabilities, printer  state,  and  generated
           output. Some "attributes" within the print context can
           be modified by the user, and the  X-Server  and  print
           ddx  driver  will  react accordingly. For example, the
           attribute "content-orientation" can be set  to  "land-
           scape"  or  "portrait"  (if the printer supports these
           values - which can be queried using the Xprint API  as
           well).

       4.  Since  printers  can  have  "built  in"  fonts, the Xp
           Extension in the X-Server works  with  the  print  ddx
           drivers  to  make  available (for printing only) addi-
           tional fonts on a per print context basis.

           When a print context is created and set  for  a  given
           printer,  the X font calls may be able to access addi-
           tional printer fonts. To do this (typically),  the  X-
           Server  must  have  access  to  "printer metric files"
           (.pmf) that describe at minimum  the  metrics  of  the
           built in fonts.





                          8 October 2004                        2





Xprint(7)                                               Xprint(7)


USAGE
       There are three tasks to start the X Print Service:

       1.  configuring the X Print Server,

       2.  starting the X Print Service

       3.  configuring  the user session so that clients can find
           the running X Print Service


       The tasks are described in detail below.

SERVER CONFIGURATION
       The X Print Server (Xprt) can read a number of  configura-
       tion  files  which  control  its  behavior and support for
       printers. Each vendor platform has a default location  for
       this information. Xprt can also read the environment vari-
       able XPCONFIGDIR to locate alternate configuration  direc-
       tories. Common settings include:

       export XPCONFIGDIR=/X11/lib/X11/XpConfig/

       export XPCONFIGDIR=/proj/x11/xc/programs/Xserver/XpConfig/


       Xprt has many built-in defaults, and lacking any  configu-
       ration files, will immediately try to support all printers
       visible via lpstat(1).

       In order of  importance  for  configuration  by  a  system
       administrator,  the  configuration  files for a "C" locale
       are as follows (see Xprt(1) for  more  details  (including
       support for non-"C" locales)):

       ${XPCONFIGDIR}/C/print/Xprinters
              'Xprinters'  is the top most configuration file. It
              tells  Xprt  which  specific  printer  names  (e.g.
              mylaser) should be supported, and whether lpstat(1)
              or other commands should be used  to  automatically
              supplement the list of printers.

       ${XPCONFIGDIR}/C/print/attributes/printer
              The 'printer' file maps printer names to model con-
              figurations (see 'model-config' below).  For  exam-
              ple,  "mylaser"  could  be mapped to a "HPDJ1600C",
              and all other arbitrary printers could be mapped to
              a  default,  such  as  "HPLJ4SI". When depending on
              lpstat(1)  in  the  Xprinters  file,   setting   up
              defaults  in  'printer' becomes all the more impor-
              tant.

       ${XPCONFIGDIR}/C/print/attributes/document
              The 'document' file specifies the initial  document



                          8 October 2004                        3





Xprint(7)                                               Xprint(7)


              values for any print jobs. For example, which paper
              tray to use, what default resolution, etc.

       ${XPCONFIGDIR}/C/print/attributes/job
              The 'job' file specifies the initial job values for
              any print jobs. For example, "notification-profile"
              can be set so that when a print job is successfully
              sent to a printer, e-mail is sent to the user.

       ${XPCONFIGDIR}/C/print/models/PSdefault/model-config,
       ${XPCON- FIGDIR}/C/print/models/PSdefault/fonts/fonts.dir,
       ${XPCON-                      FIGDIR}/C/print/models/PSde-
       fault/fonts/9nb00051.pmf,     ${XPCON-
       FIGDIR}/C/print/models/PSdefault/fonts/9nb00093.pmf
              The  'model-config'  file   has   attributes   that
              describe   the   printer  models  capabilities  and
              default settings.  Printer model fonts may also  be
              present.  The model-config file also identifies the
              print ddx driver to  be  used.   For  each  printer
              model  supported,  a  complete  hierarchy  of files
              should exist. In most cases,  these  files  do  not
              need to be modified.

       ${XPCONFIGDIR}/C/print/ddx-config/raster/pcl,
       ${XPCON-            FIGDIR}/C/print/ddx-config/raster/pdf,
       ${XPCON- FIGDIR}/C/print/ddx-config/raster/postscript
              The print ddx drivers can have highly specific con-
              figuration files to control their behavior. In most
              cases, these files do not need to be modified.

       More  information  in how to configure and customize the X
       print server can be found in the Xprt(1) manual page.

STARTING UP
       The summary checklist for starting the X Print Service  is
       as follows:

       1.  Choose an execution model for the X Print Service. The
           X Print Service can  be  run  on  a  per-user  session
           basis,  per  machine  basis,  or  can  be run on a few
           machines globally available to a number of users.

       2.  If print jobs are to be submitted to a spooler (almost
           always  the  case),  make sure all needed printers are
           available to the spooler subsystem (most often  lp(1))
           on the same machine running the X Print Service.

       3.  Configure  the  X  Print  Server. See ``X Print Server
           Configuration''.

       4.  Depending on #1, start  the  X  Print  Server  process
           "Xprt",  and  then  the  toolkit-specific Print Dialog
           Manager Daemon process (such as CDEnext's "dtpdmd") at
           the appropriate times.  Note that libXprintUtils-based



                          8 October 2004                        4





Xprint(7)                                               Xprint(7)


           applications/toolkits do not need a Print Dialog  Man-
           ager Daemon process to use Xprint.

       The details are described below.

       Because  the X Print Service is based on X, it can be eas-
       ily distributed.  The most significant  factors  in  which
       execution model to choose will be driven by:

       o how many printers will be accessable through the printer
         subsystem on any given machine. A  system  administrator
         may  choose to cluster printers on a few given machines,
         or scatter them across an organization and possibly make
         extensive  use  of remote spoolers to make them globally
         available.

       o how many machines will need a copy of the X Print Server
         configuration  files. The files have been architected so
         that one super-set version of them can be maintained and
         distributed  (e.g.  via  NFS), and a per-machine or per-
         user version of the `Xprinters' is all that is needed to
         have  the  appropriate  information  in them utilized or
         ignored.

       o how many users can demand services from a given X  Print
         Service.

       With  the  above  in  mind,  some obvious execution models
       include:

       o Global - in this  model,  the  system  administrator  is
         choosing  to  run  the X Print Service on a *few* select
         machines with appropriate printers configured, and allow
         clients access to the global resource. This can central-
         ize the administration  of  printers  and  configuration
         files,  but  may  have  to  be monitored for performance
         loading.

         Startup would likely be done by boot-up scripts (such as
         /etc/init.d/xprint).

       o Per-machine  - every machine with potential X Print Ser-
         vice users would run the service. Printer and configura-
         tion  file  administration  is  decentralized, and usage
         would be limited to the users on the machine.

         Startup would likely be done by boot-up scripts (such as
         /etc/init.d/xprint).

       o Per-user  session  -  every  user  would run an entire X
         Print Service for themselves. In the future, the Video X
         Server normally started may contain Print X Server capa-
         bility, so this model becomes very natural.




                          8 October 2004                        5





Xprint(7)                                               Xprint(7)


         Startup would likely be done  at  session  login  or  by
         launching  actions  or  processes manually once the user
         logs in. Note: Deamons like  "dtpdmd"  must  be  started
         after Xprt.


       Starting  of  the processes is straight forward. In strict
       order (example is for manually starting the X print server
       for CDEnext usage):

       1.
           [machineA] % Xprt [-XpFile <Xprinters file>] [:dispNum] &


           Note  that  Xprt  will look for configuration files in
           either a default location or where XPCONFIGDIR points.

           -XpFile   specifies  an  alternate  `Xprinters'  file,
           rather   than   the   default   one    or    `${XPCON-
           FIGDIR}/C/print/Xprinters'.

       2.
           [machineA] % dtpdmd -d machineA[:dispNum] [-l /tmp/dtpdmd.log] &


           The  dtpdmd  will  maintain  an  X-Selection on the X-
           Server, and will start dtpdm's as required to  service
           requests.


       In all but the per-user session model, the machine running
       the dtpdmd (thus dtpdm's) will need display  authorization
       to the users video display.

CLIENT CONFIGURATION
       Once a X Print Server and dtpdmd have been started -- many
       of them in some cases -- clients will need to find and use
       them.  There are two mechanisms that allow clients to dis-
       cover X Print Servers and printers.

       o "X  Print   Specifier"   -   assuming   usage   of   the
         DtPrint/XprintUtils-based  print  applications, the fol-
         lowing notation is understood:


         printer_name@machine[:dispNum]


         For example:


         colorlj7@printhub:2





                          8 October 2004                        6





Xprint(7)                                               Xprint(7)


         In the above example, the  X  Print  Server  running  at
         `printhub:2'  is  assumed  to  support the printer named
         `colorlj7'.

       o ${XPSERVERLIST} - assuming usage of  the  DtPrint  print
         dialogs,  the  environment  variable ${XPSERVERLIST} can
         contain a list of X Print Servers. For example:


         XPSERVERLIST="printhub:2 printhub:3 otherdept:0"


         Then in the dialogs, only a printer  name  needs  to  be
         entered.   The  dialog  will  then  search  the  X Print
         Servers in ${XPSERVERLIST} for a  server  than  supports
         the printer, and then establish contact.


END-USER SEQUENCE
       From  most  CDEnext applications, printing is accomplished
       by bringing down the <File> menu and selecting <Print...>.
       This will result in the DtPrintSetupBox dialog, which will
       request the name of a printer, and offer limited  capabil-
       ity to configure print options (e.g. number of copies). If
       the user wishes, they can select  <Setup...>,  which  will
       start  a  dtpdm  capable  of  modifying  additional  print
       options.  Finally, the user should select <Print>.

ENVIRONMENT
       ${XPCONFIGDIR}
              This environment variable points to the root of the
              Xprint  server  configuration  directory hierarchy.
              If the variable is not defined, the default path is
              be    assumed.    The    default    path   may   be
              /usr/X11R6/lib/X11/xserver/, /usr/lib/X11/xserver/,
              /usr/share/Xprint/xserver/       or      /usr/open-
              win/server/etc/XpConfig, depending on  the  system,
              and may be configured in /etc/init.d/xprint.

       ${LANG}
              This  environment  variable selects the locale set-
              tings used by the Xprint server.  Xprt allows  lan-
              guage-specific   settings   (stored   in   ${XPCON-
              FIGDIR}/${LANG}/print/)  which  will  override  the
              default     settings     (stored     in    ${XPCON-
              FIGDIR}/C/print/).  If ${LANG} is not  set  "C"  is
              assumed.

       ${XPSERVERLIST}
              The environment variable ${XPSERVERLIST} contains a
              list of display identifiers (separated  by  whites-
              pace)  which  tell an application where it can find
              the Xprint servers. Usually ${XPSERVERLIST} is  set
              by  the profile startup scripts (e.g.  /etc/profile



                          8 October 2004                        7





Xprint(7)                                               Xprint(7)


              or /etc/profile.d/xprint.sh) using  the  output  of
              /etc/init.d/xprint get_xpserverlist.

              Example:


                        export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"


              Alternatively  ${XPSERVERLIST} can be set manually.
              Example:


                        export XPSERVERLIST="littlecat:80 bitdog:72"

              instructs an application to find an  Xprint  server
              at  display  80  on  the machine "littlecat" and at
              display 72 on the machine bigdog.

       ${XPRINTER}
              The environment variable  ${XPRINTER}  defines  the
              default  printer  used  by  print applications. The
              syntax is either  printername  or  printername@dis-
              play.

              Examples:

              XPRINTER=ps003
                     tells  an  application to look for the first
                     printer named "ps003" on all Xprint servers.

              XPRINTER=hplaser19@littlecat:80
                     tells  an  application  to  use  the printer
                     "hplaser19" on the Xprint server at  display
                     "littlecat:80".


       If  ${XPRINTER}  is  not set the applications will examine
       the values of the ${PDPRINTER}, ${LPDEST}, and  ${PRINTER}
       environment variables (in that order).

SEE ALSO
       X11(7),  xplsprinters(1),  xprehashprinterlist(1),  xphel-
       loworld(1), xpxmhelloworld(1), xpawhelloworld(1), xpxthel-
       loworld(1),  xpsimplehelloworld(1),  Xserver(1),  Xprt(1),
       libXp(),      libXprintUtils(),       libXprintAppUtils(),
       XmPrintShell(),      XawPrintShell(),      Xprint      FAQ
       (http://xprint.mozdev.org/docs/Xprint_FAQ.html),    Xprint
       main site (http://xprint.mozdev.org/)

AUTHORS
       This   manual   page   was   written   by   Roland   Mainz
       <roland.mainzATnrubsig.org> based on the  original  X11R6.6
       xc/programs/Xserver/XpConfig/README.



                          8 October 2004                        8




rootr.net - man pages