Xprint.sgml revision ea1d6981
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>
26ea1d6981Smrg    <para>Xprint is a very flexible, extensible, scaleable, 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&rsquo;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&rsquo;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>
319ea1d6981Smrg            how many printers will be accessable 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
383ea1d6981Smrg            logs in.  Note: Deamons 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 &lt;Xprinters file&gt;] [:dispNum] &amp;</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] &amp;</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 &lt;File&gt; menu and selecting &lt;Print...&gt;.  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 &lt;Setup...&gt;, which
478ea1d6981Smrg      will start a dtpdm capable of modifying additional print options.
479ea1d6981Smrg      Finally, the user should select &lt;Print&gt;.
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