1ea1d6981Smrg<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.3//EN" 'http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd'> 2ea1d6981Smrg 3ea1d6981Smrg<!-- Process this file with docbook-to-man to generate an nroff manual 4ea1d6981Smrg page: 'docbook-to-man manpage.sgml > manpage.1'. You may view 5ea1d6981Smrg the manual page with: 'docbook-to-man manpage.sgml | nroff -man | less'. 6ea1d6981Smrg A typical entry in a Makefile or Makefile.am is: 7ea1d6981Smrg 8ea1d6981Smrgmanpage.1: manpage.sgml 9ea1d6981Smrg docbook-to-man $< > $@ 10ea1d6981Smrg 11ea1d6981SmrgHTML generation can be done like this: 12ea1d6981Smrg% xsltproc ==docbook /usr/share/sgml/docbook/docbook-xsl-stylesheets-1.60.1/html/docbook.xsl Xprint.sgml >Xprint.html 13ea1d6981Smrg --> 14ea1d6981Smrg 15ea1d6981Smrg<refentry id="Xprint"> 16ea1d6981Smrg <refmeta> 17ea1d6981Smrg <refentrytitle>Xprint</refentrytitle> 18ea1d6981Smrg <manvolnum>__miscmansuffix__</manvolnum> 19ea1d6981Smrg </refmeta> 20ea1d6981Smrg <refnamediv> 21ea1d6981Smrg <refname>Xprint</refname> 22ea1d6981Smrg 23ea1d6981Smrg <refpurpose>The "X print service" - a portable, network-transparent printing system based on the X11 protocol</refpurpose> 24ea1d6981Smrg </refnamediv> 25ea1d6981Smrg <refsynopsisdiv> 26d63b911fSmrg <para>Xprint is a very flexible, extensible, scalable, client/server 27ea1d6981Smrg print system based on ISO 10175 (and some other specs) and the X11 28ea1d6981Smrg rendering protocol. 29ea1d6981Smrg Using Xprint an application can search, query and use devices like 30ea1d6981Smrg printers, FAX machines or create documents in formats like PDF. 31ea1d6981Smrg In particular, an application can seek a printer, query supported 32ea1d6981Smrg attributes (like paper size, trays, fonts etc.), configure the printer 33ea1d6981Smrg device to match it’s needs and print on it like on any other X device 34ea1d6981Smrg reusing parts of the code which is used for the video card Xserver. 35ea1d6981Smrg </para> 36ea1d6981Smrg </refsynopsisdiv> 37ea1d6981Smrg 38ea1d6981Smrg <refsect1> 39ea1d6981Smrg <title>OVERVIEW</title> 40ea1d6981Smrg <para> 41ea1d6981Smrg The "X Print Service" technology allows X rendering to devices such as 42ea1d6981Smrg printers and fax. Most of the service is available in the X11 43ea1d6981Smrg technology stack as Xp, with the remainder in single toolkit stacks (e.g. DtPrint for CDE). 44ea1d6981Smrg Modifications have also been made to the LessTif/Motif/Qt technology 45ea1d6981Smrg stacks to support Xprint. 46ea1d6981Smrg </para> 47ea1d6981Smrg <para> 48ea1d6981Smrg The Xp portion consists of: 49ea1d6981Smrg <itemizedlist> 50ea1d6981Smrg <listitem><para>Xp Extension for the X-Server (included in the X-Server Xprt)</para></listitem> 51ea1d6981Smrg <listitem><para>Xp Extension API for the client side (libXp/libXprintUtils)</para></listitem> 52ea1d6981Smrg <listitem><para>PCL ddx driver that converts core X to native PCL</para></listitem> 53ea1d6981Smrg <listitem><para>PDF ddx driver that converts core X to native PDF</para></listitem> 54ea1d6981Smrg <listitem><para>PostScript ddx driver that converts core X to native PostScript</para></listitem> 55ea1d6981Smrg <listitem><para>Raster ddx driver that generates xwd rasters which can be converted to PCL, PDF or PostScript rasters</para></listitem> 56ea1d6981Smrg </itemizedlist> 57ea1d6981Smrg </para> 58ea1d6981Smrg <para> 59ea1d6981Smrg From an X clients perspective, it can attach to one of two nearly 60ea1d6981Smrg identical X-Servers, a "Video" X-Server, and a "Print" X-Server 61ea1d6981Smrg which has the additional Xp capability but otherwise looks and 62ea1d6981Smrg behaves the same. 63ea1d6981Smrg </para> 64ea1d6981Smrg </refsect1> 65ea1d6981Smrg 66ea1d6981Smrg <refsect1> 67ea1d6981Smrg <title>HOW THE X PRINT SERVICE WORKS</title> 68ea1d6981Smrg <para> 69ea1d6981Smrg The X Print Service expands on the traditional X-Server and Xlib world 70ea1d6981Smrg in four ways. 71ea1d6981Smrg 72ea1d6981Smrg <orderedlist> 73ea1d6981Smrg <listitem> 74ea1d6981Smrg <para> 75ea1d6981Smrg Most obvious is the use of "print ddx drivers" instead of 76ea1d6981Smrg "video ddx drivers". While a video ddx driver modifies pixels 77ea1d6981Smrg in a video frame buffer, a print ddx driver generates "page 78ea1d6981Smrg description language (PDL)" output (such as PCL, PDF or PostScript) 79ea1d6981Smrg or sends the print rendering instructions to a platform-specific 80ea1d6981Smrg print API (like Win32/GDI). 81ea1d6981Smrg </para> 82ea1d6981Smrg <para> 83ea1d6981Smrg Once a print ddx driver generates PDL output, it can be sent to 84ea1d6981Smrg a spooler such as <citerefentry><refentrytitle>lp</refentrytitle><manvolnum>1</manvolnum></citerefentry> 85ea1d6981Smrg or retrieved by the client (to implement functionality like "print-to-file"). 86ea1d6981Smrg </para> 87ea1d6981Smrg <para> 88ea1d6981Smrg Though not currently done, a single X-Server can support both 89ea1d6981Smrg print and video ddx drivers. 90ea1d6981Smrg <!-- FIXME: IBM/AIX people have integrated Xprt into their main Xserver (currently experimental) ... --> 91ea1d6981Smrg </para> 92ea1d6981Smrg </listitem> 93ea1d6981Smrg <listitem> 94ea1d6981Smrg <para> 95ea1d6981Smrg Since printers support "paged" output, unlike video, a portion 96ea1d6981Smrg of the Xp Extension supports APIs to delineate printed output. 97ea1d6981Smrg For example, <function>XpStartPage</function> and <function>XpEndPage</function> tell the X-Server where 98ea1d6981Smrg a physical page starts and ends in an otherwise continuous 99ea1d6981Smrg stream of X rendering primitives. Likewise, <function>XpStartJob</function> and 100ea1d6981Smrg <function>XpEndJob</function> determine when a collection of pages starts and ends. 101ea1d6981Smrg <function>XpEndJob</function> typically causes the generated PDL to be submitted to 102ea1d6981Smrg a spooler, such as <citerefentry><refentrytitle>lp</refentrytitle><manvolnum>1</manvolnum></citerefentry>. 103ea1d6981Smrg </para> 104ea1d6981Smrg </listitem> 105ea1d6981Smrg <listitem> 106ea1d6981Smrg <para> 107ea1d6981Smrg Since printers have extensive capabilities, another portion of 108ea1d6981Smrg the Xp Extension supports APIs to manipulate "print contexts". 109ea1d6981Smrg </para> 110ea1d6981Smrg <para> 111ea1d6981Smrg Once a printer is selected using the Xp Extension API, a print 112ea1d6981Smrg context to represent it can be created. A print context 113ea1d6981Smrg embodies the printer selected - it contains the printer's 114ea1d6981Smrg default capabilities, selectable range of capabilities, 115ea1d6981Smrg printer state, and generated output. Some "attributes" within 116ea1d6981Smrg the print context can be modified by the user, and the 117ea1d6981Smrg X-Server and print ddx driver will react accordingly. For 118ea1d6981Smrg example, the attribute "content-orientation" can be set to 119ea1d6981Smrg "landscape" or "portrait" (if the printer supports these 120ea1d6981Smrg values - which can be queried using the Xprint API as well). 121ea1d6981Smrg </para> 122ea1d6981Smrg </listitem> 123ea1d6981Smrg <listitem> 124ea1d6981Smrg <para> 125ea1d6981Smrg Since printers can have "built in" fonts, the Xp Extension in 126ea1d6981Smrg the X-Server works with the print ddx drivers to make 127ea1d6981Smrg available (for printing only) additional fonts on a per print 128ea1d6981Smrg context basis. 129ea1d6981Smrg </para> 130ea1d6981Smrg <para> 131ea1d6981Smrg When a print context is created and set for a given printer, 132ea1d6981Smrg the X font calls may be able to access additional printer 133ea1d6981Smrg fonts. To do this (typically), the X-Server must have access 134ea1d6981Smrg to "printer metric files" (.pmf) that describe at minimum the 135ea1d6981Smrg metrics of the built in fonts. 136ea1d6981Smrg </para> 137ea1d6981Smrg </listitem> 138ea1d6981Smrg </orderedlist> 139ea1d6981Smrg </para> 140ea1d6981Smrg </refsect1> 141ea1d6981Smrg 142ea1d6981Smrg <refsect1> 143ea1d6981Smrg <title>USAGE</title> 144ea1d6981Smrg <para> 145ea1d6981Smrg There are three tasks to start the X Print Service: 146ea1d6981Smrg <orderedlist> 147ea1d6981Smrg <listitem><para>configuring the X Print Server,</para></listitem> 148ea1d6981Smrg <listitem><para>starting the X Print Service</para></listitem> 149ea1d6981Smrg <listitem><para>configuring the user session so that clients can find the running X Print Service</para></listitem> 150ea1d6981Smrg </orderedlist> 151ea1d6981Smrg </para> 152ea1d6981Smrg <para> 153ea1d6981Smrg The tasks are described in detail below. 154ea1d6981Smrg </para> 155ea1d6981Smrg </refsect1> 156ea1d6981Smrg 157ea1d6981Smrg <refsect1> 158ea1d6981Smrg <title>SERVER CONFIGURATION</title> 159ea1d6981Smrg <para> 160ea1d6981Smrg The X Print Server (Xprt) can read a number of configuration files which 161ea1d6981Smrg control its behavior and support for printers. Each vendor platform has 162ea1d6981Smrg a default location for this information. Xprt can also read the 163ea1d6981Smrg environment variable <envar>XPCONFIGDIR</envar> to locate alternate configuration 164ea1d6981Smrg directories. Common settings include: 165ea1d6981Smrg 166ea1d6981Smrg <simplelist type="vert"> 167ea1d6981Smrg <member>export XPCONFIGDIR=/X11/lib/X11/XpConfig/</member> 168ea1d6981Smrg <member>export XPCONFIGDIR=/proj/x11/xc/programs/Xserver/XpConfig/</member> 169ea1d6981Smrg </simplelist> 170ea1d6981Smrg </para> 171ea1d6981Smrg <para> 172ea1d6981Smrg Xprt has many built-in defaults, and lacking any configuration files, 173ea1d6981Smrg will immediately try to support all printers visible via <citerefentry><refentrytitle>lpstat</refentrytitle><manvolnum>1</manvolnum></citerefentry>. 174ea1d6981Smrg </para> 175ea1d6981Smrg <para> 176ea1d6981Smrg In order of importance for configuration by a system administrator, the 177ea1d6981Smrg configuration files for a "C" locale are as follows (see <citerefentry><refentrytitle>Xprt</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry> for more 178ea1d6981Smrg details (including support for non-"C" locales)): 179ea1d6981Smrg <variablelist> 180ea1d6981Smrg <varlistentry> 181ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/Xprinters</filename></term> 182ea1d6981Smrg <listitem> 183ea1d6981Smrg <para> 184ea1d6981Smrg 'Xprinters' is the top most configuration file. It tells 185ea1d6981Smrg Xprt which specific printer names (e.g. mylaser) should 186ea1d6981Smrg be supported, and whether <citerefentry><refentrytitle>lpstat</refentrytitle><manvolnum>1</manvolnum></citerefentry> or other commands 187ea1d6981Smrg should be used to automatically supplement the list of 188ea1d6981Smrg printers. 189ea1d6981Smrg </para> 190ea1d6981Smrg </listitem> 191ea1d6981Smrg </varlistentry> 192ea1d6981Smrg 193ea1d6981Smrg <varlistentry> 194ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/attributes/printer</filename></term> 195ea1d6981Smrg <listitem> 196ea1d6981Smrg <para> 197ea1d6981Smrg The 'printer' file maps printer names to model 198ea1d6981Smrg configurations (see 'model-config' below). For example, 199ea1d6981Smrg "mylaser" could be mapped to a "HPDJ1600C", and all other 200ea1d6981Smrg arbitrary printers could be mapped to a default, such as 201ea1d6981Smrg "HPLJ4SI". When depending on <citerefentry><refentrytitle>lpstat</refentrytitle><manvolnum>1</manvolnum></citerefentry> in the Xprinters 202ea1d6981Smrg file, setting up defaults in 'printer' becomes all the 203ea1d6981Smrg more important. 204ea1d6981Smrg </para> 205ea1d6981Smrg </listitem> 206ea1d6981Smrg </varlistentry> 207ea1d6981Smrg 208ea1d6981Smrg <varlistentry> 209ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/attributes/document</filename></term> 210ea1d6981Smrg <listitem> 211ea1d6981Smrg <para> 212ea1d6981Smrg The 'document' file specifies the initial document values 213ea1d6981Smrg for any print jobs. For example, which paper tray to 214ea1d6981Smrg use, what default resolution, etc. 215ea1d6981Smrg </para> 216ea1d6981Smrg </listitem> 217ea1d6981Smrg </varlistentry> 218ea1d6981Smrg 219ea1d6981Smrg <varlistentry> 220ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/attributes/job</filename></term> 221ea1d6981Smrg <listitem> 222ea1d6981Smrg <para> 223ea1d6981Smrg The 'job' file specifies the initial job values for any 224ea1d6981Smrg print jobs. For example, "notification-profile" can be 225ea1d6981Smrg set so that when a print job is successfully sent to a 226ea1d6981Smrg printer, e-mail is sent to the user. 227ea1d6981Smrg </para> 228ea1d6981Smrg </listitem> 229ea1d6981Smrg </varlistentry> 230ea1d6981Smrg 231ea1d6981Smrg <varlistentry> 232ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/models/PSdefault/model-config</filename></term> 233ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/models/PSdefault/fonts/fonts.dir</filename></term> 234ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00051.pmf</filename></term> 235ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00093.pmf</filename></term> 236ea1d6981Smrg 237ea1d6981Smrg <listitem> 238ea1d6981Smrg <para> 239ea1d6981Smrg The 'model-config' file has attributes that describe the 240ea1d6981Smrg printer model’s capabilities and default settings. 241ea1d6981Smrg Printer model fonts may also be present. The model-config 242ea1d6981Smrg file also identifies the print ddx driver to be used. 243ea1d6981Smrg 244ea1d6981Smrg For each printer model supported, a complete hierarchy of 245ea1d6981Smrg files should exist. In most cases, these files do not 246ea1d6981Smrg need to be modified. 247ea1d6981Smrg </para> 248ea1d6981Smrg </listitem> 249ea1d6981Smrg </varlistentry> 250ea1d6981Smrg 251ea1d6981Smrg <varlistentry> 252ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/ddx-config/raster/pcl</filename></term> 253ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/ddx-config/raster/pdf</filename></term> 254ea1d6981Smrg <term><filename>${XPCONFIGDIR}/C/print/ddx-config/raster/postscript</filename></term> 255ea1d6981Smrg 256ea1d6981Smrg <listitem> 257ea1d6981Smrg <para> 258ea1d6981Smrg The print ddx drivers can have highly specific 259ea1d6981Smrg configuration files to control their behavior. In most 260ea1d6981Smrg cases, these files do not need to be modified. 261ea1d6981Smrg </para> 262ea1d6981Smrg </listitem> 263ea1d6981Smrg </varlistentry> 264ea1d6981Smrg </variablelist> 265ea1d6981Smrg 266ea1d6981Smrg More information in how to configure and customize the X print server can be found in the 267ea1d6981Smrg <citerefentry><refentrytitle>Xprt</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry> 268ea1d6981Smrg manual page. 269ea1d6981Smrg </para> 270ea1d6981Smrg </refsect1> 271ea1d6981Smrg 272ea1d6981Smrg <refsect1> 273ea1d6981Smrg <title>STARTING UP</title> 274ea1d6981Smrg <para> 275ea1d6981Smrg The summary checklist for starting the X Print Service is as follows: 276ea1d6981Smrg 277ea1d6981Smrg <orderedlist> 278ea1d6981Smrg <listitem> 279ea1d6981Smrg <para> 280ea1d6981Smrg Choose an execution model for the X Print Service. The X 281ea1d6981Smrg Print Service can be run on a per-user session basis, per 282ea1d6981Smrg machine basis, or can be run on a few machines globally 283ea1d6981Smrg available to a number of users. 284ea1d6981Smrg </para> 285ea1d6981Smrg </listitem> 286ea1d6981Smrg <listitem> 287ea1d6981Smrg <para> 288ea1d6981Smrg If print jobs are to be submitted to a spooler (almost always 289ea1d6981Smrg the case), make sure all needed printers are available to the 290ea1d6981Smrg spooler subsystem (most often <citerefentry><refentrytitle>lp</refentrytitle><manvolnum>1</manvolnum></citerefentry>) 291ea1d6981Smrg on the same machine running the X Print Service. 292ea1d6981Smrg </para> 293ea1d6981Smrg </listitem> 294ea1d6981Smrg <listitem> 295ea1d6981Smrg <para> 296ea1d6981Smrg Configure the X Print Server. See ``X Print Server 297ea1d6981Smrg Configuration''. 298ea1d6981Smrg </para> 299ea1d6981Smrg </listitem> 300ea1d6981Smrg <listitem> 301ea1d6981Smrg <para> 302ea1d6981Smrg Depending on #1, start the X Print Server process "Xprt", and 303ea1d6981Smrg then the toolkit-specific Print Dialog Manager Daemon process 304ea1d6981Smrg (such as CDEnext's "dtpdmd") at the appropriate times. 305ea1d6981Smrg Note that libXprintUtils-based applications/toolkits do not need 306ea1d6981Smrg a Print Dialog Manager Daemon process to use Xprint. 307ea1d6981Smrg </para> 308ea1d6981Smrg </listitem> 309ea1d6981Smrg </orderedlist> 310ea1d6981Smrg The details are described below. 311ea1d6981Smrg </para> 312ea1d6981Smrg <para> 313ea1d6981Smrg Because the X Print Service is based on X, it can be easily distributed. 314ea1d6981Smrg The most significant factors in which execution model to choose will be 315ea1d6981Smrg driven by: 316ea1d6981Smrg <itemizedlist> 317ea1d6981Smrg <listitem> 318ea1d6981Smrg <para> 319d63b911fSmrg how many printers will be accessible through the printer 320ea1d6981Smrg subsystem on any given machine. A system administrator may 321ea1d6981Smrg choose to cluster printers on a few given machines, or 322ea1d6981Smrg scatter them across an organization and possibly make 323ea1d6981Smrg extensive use of remote spoolers to make them globally 324ea1d6981Smrg available. 325ea1d6981Smrg </para> 326ea1d6981Smrg </listitem> 327ea1d6981Smrg <listitem> 328ea1d6981Smrg <para> 329ea1d6981Smrg how many machines will need a copy of the X Print Server 330ea1d6981Smrg configuration files. The files have been architected so 331ea1d6981Smrg that one super-set version of them can be maintained and 332ea1d6981Smrg distributed (e.g. via NFS), and a per-machine or per-user 333ea1d6981Smrg version of the `Xprinters' is all that is needed to have the 334ea1d6981Smrg appropriate information in them utilized or ignored. 335ea1d6981Smrg </para> 336ea1d6981Smrg </listitem> 337ea1d6981Smrg <listitem> 338ea1d6981Smrg <para> 339ea1d6981Smrg how many users can demand services from a given X Print 340ea1d6981Smrg Service. 341ea1d6981Smrg </para> 342ea1d6981Smrg </listitem> 343ea1d6981Smrg </itemizedlist> 344ea1d6981Smrg 345ea1d6981Smrg With the above in mind, some obvious execution models include: 346ea1d6981Smrg <itemizedlist> 347ea1d6981Smrg <listitem> 348ea1d6981Smrg <para> 349ea1d6981Smrg Global - in this model, the system administrator is choosing 350ea1d6981Smrg to run the X Print Service on a *few* select machines with 351ea1d6981Smrg appropriate printers configured, and allow clients access to 352ea1d6981Smrg the global resource. This can centralize the administration 353ea1d6981Smrg of printers and configuration files, but may have to be 354ea1d6981Smrg monitored for performance loading. 355ea1d6981Smrg </para> 356ea1d6981Smrg <para> 357ea1d6981Smrg Startup would likely be done by boot-up scripts (such as <filename>/etc/init.d/xprint</filename>). 358ea1d6981Smrg </para> 359ea1d6981Smrg </listitem> 360ea1d6981Smrg 361ea1d6981Smrg <listitem> 362ea1d6981Smrg <para> 363ea1d6981Smrg Per-machine - every machine with potential X Print Service 364ea1d6981Smrg users would run the service. Printer and configuration file 365ea1d6981Smrg administration is decentralized, and usage would be limited 366ea1d6981Smrg to the users on the machine. 367ea1d6981Smrg </para> 368ea1d6981Smrg <para> 369ea1d6981Smrg Startup would likely be done by boot-up scripts (such as <filename>/etc/init.d/xprint</filename>). 370ea1d6981Smrg </para> 371ea1d6981Smrg </listitem> 372ea1d6981Smrg 373ea1d6981Smrg <listitem> 374ea1d6981Smrg <para> 375ea1d6981Smrg Per-user session - every user would run an entire X Print 376ea1d6981Smrg Service for themselves. In the future, the Video X Server 377ea1d6981Smrg normally started may contain Print X Server capability, so 378ea1d6981Smrg this model becomes very natural. 379ea1d6981Smrg </para> 380ea1d6981Smrg <para> 381ea1d6981Smrg Startup would likely be done at session login or by 382ea1d6981Smrg launching actions or processes manually once the user 383d63b911fSmrg logs in. Note: Daemons like "dtpdmd" must be started after Xprt. 384ea1d6981Smrg </para> 385ea1d6981Smrg </listitem> 386ea1d6981Smrg </itemizedlist> 387ea1d6981Smrg </para> 388ea1d6981Smrg <para> 389ea1d6981Smrg Starting of the processes is straight forward. In strict order (example is for manually starting the X print server for CDEnext usage): 390ea1d6981Smrg <orderedlist> 391ea1d6981Smrg <listitem> 392ea1d6981Smrg <para> 393ea1d6981Smrg <programlisting>[machineA] % Xprt [-XpFile <Xprinters file>] [:dispNum] &</programlisting> 394ea1d6981Smrg </para> 395ea1d6981Smrg <para> 396ea1d6981Smrg Note that Xprt will look for configuration files in either 397ea1d6981Smrg a default location or where <envar>XPCONFIGDIR</envar> points. 398ea1d6981Smrg </para> 399ea1d6981Smrg <para> 400ea1d6981Smrg <option>-XpFile</option> specifies an alternate `Xprinters' file, rather 401ea1d6981Smrg than the default one or `<filename>${XPCONFIGDIR}/C/print/Xprinters</filename>'. 402ea1d6981Smrg </para> 403ea1d6981Smrg </listitem> 404ea1d6981Smrg <listitem> 405ea1d6981Smrg <para> 406ea1d6981Smrg <programlisting>[machineA] % dtpdmd -d machineA[:dispNum] [-l /tmp/dtpdmd.log] &</programlisting> 407ea1d6981Smrg </para> 408ea1d6981Smrg <para> 409ea1d6981Smrg The dtpdmd will maintain an X-Selection on the X-Server, 410ea1d6981Smrg and will start dtpdm's as required to service requests. 411ea1d6981Smrg </para> 412ea1d6981Smrg </listitem> 413ea1d6981Smrg </orderedlist> 414ea1d6981Smrg </para> 415ea1d6981Smrg <para> 416ea1d6981Smrg In all but the per-user session model, the machine running the dtpdmd 417ea1d6981Smrg (thus dtpdm's) will need display authorization to the users video 418ea1d6981Smrg display. 419ea1d6981Smrg </para> 420ea1d6981Smrg </refsect1> 421ea1d6981Smrg 422ea1d6981Smrg <refsect1> 423ea1d6981Smrg <title>CLIENT CONFIGURATION</title> 424ea1d6981Smrg <para> 425ea1d6981Smrg Once a X Print Server and dtpdmd have been started -- many of them 426ea1d6981Smrg in some cases -- clients will need to find and use them. There are 427ea1d6981Smrg two mechanisms that allow clients to discover X Print Servers and 428ea1d6981Smrg printers. 429ea1d6981Smrg 430ea1d6981Smrg <itemizedlist> 431ea1d6981Smrg <listitem> 432ea1d6981Smrg <para> 433ea1d6981Smrg "X Print Specifier" - assuming usage of the DtPrint/XprintUtils-based print 434ea1d6981Smrg applications, the following notation is understood: 435ea1d6981Smrg </para> 436ea1d6981Smrg <para> 437ea1d6981Smrg <programlisting>printer_name@machine[:dispNum]</programlisting> 438ea1d6981Smrg </para> 439ea1d6981Smrg <para> 440ea1d6981Smrg For example: 441ea1d6981Smrg </para> 442ea1d6981Smrg <para> 443ea1d6981Smrg <programlisting>colorlj7@printhub:2</programlisting> 444ea1d6981Smrg </para> 445ea1d6981Smrg <para> 446ea1d6981Smrg In the above example, the X Print Server running at `printhub:2' 447ea1d6981Smrg is assumed to support the printer named `colorlj7'. 448ea1d6981Smrg </para> 449ea1d6981Smrg </listitem> 450ea1d6981Smrg <listitem> 451ea1d6981Smrg <para> 452ea1d6981Smrg <envar>${XPSERVERLIST}</envar> - assuming usage of the DtPrint print dialogs, 453ea1d6981Smrg the environment variable <envar>${XPSERVERLIST}</envar> can contain a list 454ea1d6981Smrg of X Print Servers. For example: 455ea1d6981Smrg </para> 456ea1d6981Smrg <para> 457ea1d6981Smrg <programlisting>XPSERVERLIST="printhub:2 printhub:3 otherdept:0"</programlisting> 458ea1d6981Smrg </para> 459ea1d6981Smrg <para> 460ea1d6981Smrg Then in the dialogs, only a printer name needs to be entered. 461ea1d6981Smrg The dialog will then search the X Print Servers in <envar>${XPSERVERLIST}</envar> 462ea1d6981Smrg for a server than supports the printer, and then establish 463ea1d6981Smrg contact. 464ea1d6981Smrg </para> 465ea1d6981Smrg </listitem> 466ea1d6981Smrg </itemizedlist> 467ea1d6981Smrg </para> 468ea1d6981Smrg </refsect1> 469ea1d6981Smrg 470ea1d6981Smrg <refsect1> 471ea1d6981Smrg <title>END-USER SEQUENCE</title> 472ea1d6981Smrg <para> 473ea1d6981Smrg From most CDEnext applications, printing is accomplished by bringing 474ea1d6981Smrg down the <File> menu and selecting <Print...>. This will result in 475ea1d6981Smrg the DtPrintSetupBox dialog, which will request the name of a printer, 476ea1d6981Smrg and offer limited capability to configure print options (e.g. number 477ea1d6981Smrg of copies). If the user wishes, they can select <Setup...>, which 478ea1d6981Smrg will start a dtpdm capable of modifying additional print options. 479ea1d6981Smrg Finally, the user should select <Print>. 480ea1d6981Smrg </para> 481ea1d6981Smrg </refsect1> 482ea1d6981Smrg 483ea1d6981Smrg <refsect1> 484ea1d6981Smrg <title>ENVIRONMENT</title> 485ea1d6981Smrg <variablelist> 486ea1d6981Smrg <varlistentry> 487ea1d6981Smrg <term><envar>${XPCONFIGDIR}</envar></term> 488ea1d6981Smrg <listitem> 489ea1d6981Smrg <para> This environment variable points to the root 490ea1d6981Smrg of the Xprint server configuration directory hierarchy. 491ea1d6981Smrg If the variable is not defined, the default 492ea1d6981Smrg path is be assumed. The default path may be 493ea1d6981Smrg <filename>/usr/X11R6/lib/X11/xserver/</filename>, 494ea1d6981Smrg <filename>/usr/lib/X11/xserver/</filename>, 495ea1d6981Smrg <filename>/usr/share/Xprint/xserver/</filename> or 496ea1d6981Smrg <filename>/usr/openwin/server/etc/XpConfig</filename>, depending on the 497ea1d6981Smrg system, and may be configured in <filename>/etc/init.d/xprint</filename>.</para> 498ea1d6981Smrg </listitem> 499ea1d6981Smrg </varlistentry> 500ea1d6981Smrg 501ea1d6981Smrg <varlistentry> 502ea1d6981Smrg <term><envar>${LANG}</envar></term> 503ea1d6981Smrg <listitem> 504ea1d6981Smrg <para> 505ea1d6981Smrg This environment variable selects the locale settings used by the Xprint server. 506ea1d6981Smrg Xprt allows language-specific settings (stored in <filename>${XPCONFIGDIR}/${LANG}/print/</filename>) 507ea1d6981Smrg which will override the default settings (stored in <filename>${XPCONFIGDIR}/C/print/</filename>). 508ea1d6981Smrg If <envar>${LANG}</envar> is not set "C" is assumed. 509ea1d6981Smrg </para> 510ea1d6981Smrg </listitem> 511ea1d6981Smrg </varlistentry> 512ea1d6981Smrg 513ea1d6981Smrg <varlistentry> 514ea1d6981Smrg <term><envar>${XPSERVERLIST}</envar></term> 515ea1d6981Smrg <listitem> 516ea1d6981Smrg <para>The environment variable <envar>${XPSERVERLIST}</envar> contains a list 517ea1d6981Smrg of display identifiers (separated by whitespace) which tell an 518ea1d6981Smrg application where it can find the Xprint servers. Usually 519ea1d6981Smrg <envar>${XPSERVERLIST}</envar> is set by the profile startup scripts (e.g. 520ea1d6981Smrg <filename>/etc/profile</filename> or <filename>/etc/profile.d/xprint.sh</filename>) using the output of 521ea1d6981Smrg <userinput>/etc/init.d/xprint get_xpserverlist</userinput>.</para> 522ea1d6981Smrg <para>Example: 523ea1d6981Smrg <informalexample> 524ea1d6981Smrg <programlisting> 525ea1d6981Smrg export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"</programlisting> 526ea1d6981Smrg </informalexample> 527ea1d6981Smrg </para> 528ea1d6981Smrg <para>Alternatively <envar>${XPSERVERLIST}</envar> can be set 529ea1d6981Smrg manually. Example:</para> 530ea1d6981Smrg <informalexample> 531ea1d6981Smrg <programlisting> 532ea1d6981Smrg export XPSERVERLIST="littlecat:80 bitdog:72"</programlisting> 533ea1d6981Smrg </informalexample> 534ea1d6981Smrg <para> 535ea1d6981Smrg instructs an application to find an Xprint server at display 536ea1d6981Smrg 80 on the machine "littlecat" and at display 72 on the 537ea1d6981Smrg machine bigdog. 538ea1d6981Smrg </para> 539ea1d6981Smrg </listitem> 540ea1d6981Smrg </varlistentry> 541ea1d6981Smrg 542ea1d6981Smrg <varlistentry> 543ea1d6981Smrg <term><envar>${XPRINTER}</envar> 544ea1d6981Smrg </term> 545ea1d6981Smrg <listitem> 546ea1d6981Smrg <para>The environment variable <envar>${XPRINTER}</envar> 547ea1d6981Smrg defines the default printer used by print 548ea1d6981Smrg applications. The syntax is either 549ea1d6981Smrg <replaceable>printername</replaceable> or 550ea1d6981Smrg <replaceable>printername</replaceable>@<replaceable>display</replaceable>.</para> 551ea1d6981Smrg <para>Examples: 552ea1d6981Smrg <variablelist> 553ea1d6981Smrg <varlistentry> 554ea1d6981Smrg <term><userinput>XPRINTER=ps003</userinput></term> 555ea1d6981Smrg <listitem><para> 556ea1d6981Smrg tells an application to look for the 557ea1d6981Smrg first printer named "ps003" on all Xprint 558ea1d6981Smrg servers.</para> 559ea1d6981Smrg </listitem> 560ea1d6981Smrg </varlistentry> 561ea1d6981Smrg 562ea1d6981Smrg <varlistentry> 563ea1d6981Smrg <!-- brain dead <term> does not permit quote marks 564ea1d6981Smrg (in XPRINTER="hplaser19@littlecat:80"), so omit them --> 565ea1d6981Smrg <term><userinput>XPRINTER=hplaser19@littlecat:80</userinput></term> 566ea1d6981Smrg <listitem><para> 567ea1d6981Smrg tells an application to use the printer "hplaser19" 568ea1d6981Smrg on the Xprint server at display 569ea1d6981Smrg "littlecat:80".</para> 570ea1d6981Smrg </listitem> 571ea1d6981Smrg </varlistentry> 572ea1d6981Smrg 573ea1d6981Smrg </variablelist> 574ea1d6981Smrg </para> 575ea1d6981Smrg <para>If <envar>${XPRINTER}</envar> is not set the applications 576ea1d6981Smrg will examine the values of the <envar>${PDPRINTER}</envar>, 577ea1d6981Smrg <envar>${LPDEST}</envar>, and 578ea1d6981Smrg <envar>${PRINTER}</envar> environment variables (in that order). 579ea1d6981Smrg </para> 580ea1d6981Smrg </listitem> 581ea1d6981Smrg </varlistentry> 582ea1d6981Smrg </variablelist> 583ea1d6981Smrg </refsect1> 584ea1d6981Smrg 585ea1d6981Smrg <refsect1> 586ea1d6981Smrg <title>SEE ALSO</title> 587ea1d6981Smrg <para> 588ea1d6981Smrg <simplelist type="inline"> 589ea1d6981Smrg <!-- specific references --> 590ea1d6981Smrg <!-- none --> 591ea1d6981Smrg 592ea1d6981Smrg <!-- Xprint general references --> 593ea1d6981Smrg<!-- 594ea1d6981Smrg <member><citerefentry><refentrytitle>Xprint</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry></member> 595ea1d6981Smrg--> 596ea1d6981Smrg <member><citerefentry><refentrytitle>X11</refentrytitle><manvolnum>__miscmansuffix__</manvolnum></citerefentry></member> 597ea1d6981Smrg <member><citerefentry><refentrytitle>xplsprinters</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 598ea1d6981Smrg <member><citerefentry><refentrytitle>xprehashprinterlist</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 599ea1d6981Smrg <member><citerefentry><refentrytitle>xphelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 600ea1d6981Smrg <member><citerefentry><refentrytitle>xpxmhelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 601ea1d6981Smrg <member><citerefentry><refentrytitle>xpawhelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 602ea1d6981Smrg <member><citerefentry><refentrytitle>xpxthelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 603ea1d6981Smrg <member><citerefentry><refentrytitle>xpsimplehelloworld</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 604ea1d6981Smrg <member><citerefentry><refentrytitle>Xserver</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 605ea1d6981Smrg <member><citerefentry><refentrytitle>Xprt</refentrytitle><manvolnum>__appmansuffix__</manvolnum></citerefentry></member> 606ea1d6981Smrg <!-- ToDO: Add manual pages for the single Xprint DDX implementations (PostScript/PDF/PCL/PCL-MONO/Raster/etc.) --> 607ea1d6981Smrg <member><citerefentry><refentrytitle>libXp</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member> 608ea1d6981Smrg <member><citerefentry><refentrytitle>libXprintUtils</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member> 609ea1d6981Smrg <member><citerefentry><refentrytitle>libXprintAppUtils</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member> 610ea1d6981Smrg <member><citerefentry><refentrytitle>XmPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member> 611ea1d6981Smrg <member><citerefentry><refentrytitle>XawPrintShell</refentrytitle><manvolnum>__libmansuffix__</manvolnum></citerefentry></member> 612ea1d6981Smrg <member>Xprint FAQ (<ulink url="http://xprint.mozdev.org/docs/Xprint_FAQ.html">http://xprint.mozdev.org/docs/Xprint_FAQ.html</ulink>)</member> 613ea1d6981Smrg <member>Xprint main site (<ulink url="http://xprint.mozdev.org/">http://xprint.mozdev.org/</ulink>)</member> 614ea1d6981Smrg </simplelist> 615ea1d6981Smrg </para> 616ea1d6981Smrg </refsect1> 617ea1d6981Smrg 618ea1d6981Smrg <refsect1> 619ea1d6981Smrg <title>AUTHORS</title> 620ea1d6981Smrg <para> 621ea1d6981Smrg This manual page was written by 622ea1d6981Smrg Roland Mainz <email>roland.mainz@nrubsig.org</email> based on the original X11R6.6 623ea1d6981Smrg <filename>xc/programs/Xserver/XpConfig/README</filename>. 624ea1d6981Smrg </para> 625ea1d6981Smrg </refsect1> 626ea1d6981Smrg</refentry> 627ea1d6981Smrg 628