Line 0
Link Here
|
|
|
1 |
--- man/Xprint.man.orig 2018-07-24 10:46:56 UTC |
2 |
+++ man/Xprint.man |
3 |
@@ -0,0 +1,421 @@ |
4 |
+.\" -*- coding: us-ascii -*- |
5 |
+.TH Xprint __miscmansuffix__ "8 October 2004" |
6 |
+.SH NAME |
7 |
+Xprint \- The "X print service" - a portable, network-transparent printing system based on the X11 protocol |
8 |
+.SH SYNOPSIS |
9 |
+Xprint is a very flexible, extensible, scaleable, client/server |
10 |
+print system based on ISO 10175 (and some other specs) and the X11 |
11 |
+rendering protocol. |
12 |
+Using Xprint an application can search, query and use devices like |
13 |
+printers, FAX machines or create documents in formats like PDF. |
14 |
+In particular, an application can seek a printer, query supported |
15 |
+attributes (like paper size, trays, fonts etc.), configure the printer |
16 |
+device to match it\(cqs needs and print on it like on any other X device |
17 |
+reusing parts of the code which is used for the video card Xserver. |
18 |
+.SH OVERVIEW |
19 |
+The "X Print Service" technology allows X rendering to devices such as |
20 |
+printers and fax. Most of the service is available in the X11 |
21 |
+technology stack as Xp, with the remainder in single toolkit stacks (e.g. DtPrint for CDE). |
22 |
+Modifications have also been made to the LessTif/Motif/Qt technology |
23 |
+stacks to support Xprint. |
24 |
+.PP |
25 |
+The Xp portion consists of: |
26 |
+.TP 0.2i |
27 |
+\(bu |
28 |
+Xp Extension for the X-Server (included in the X-Server Xprt) |
29 |
+.TP 0.2i |
30 |
+\(bu |
31 |
+Xp Extension API for the client side (libXp/libXprintUtils) |
32 |
+.TP 0.2i |
33 |
+\(bu |
34 |
+PCL ddx driver that converts core X to native PCL |
35 |
+.TP 0.2i |
36 |
+\(bu |
37 |
+PDF ddx driver that converts core X to native PDF |
38 |
+.TP 0.2i |
39 |
+\(bu |
40 |
+PostScript ddx driver that converts core X to native PostScript |
41 |
+.TP 0.2i |
42 |
+\(bu |
43 |
+Raster ddx driver that generates xwd rasters which can be converted to PCL, PDF or PostScript rasters |
44 |
+.PP |
45 |
+.PP |
46 |
+From an X clients perspective, it can attach to one of two nearly |
47 |
+identical X-Servers, a "Video" X-Server, and a "Print" X-Server |
48 |
+which has the additional Xp capability but otherwise looks and |
49 |
+behaves the same. |
50 |
+.SH "HOW THE X PRINT SERVICE WORKS" |
51 |
+The X Print Service expands on the traditional X-Server and Xlib world |
52 |
+in four ways. |
53 |
+.TP 0.4i |
54 |
+1. |
55 |
+Most obvious is the use of "print ddx drivers" instead of |
56 |
+"video ddx drivers". While a video ddx driver modifies pixels |
57 |
+in a video frame buffer, a print ddx driver generates "page |
58 |
+description language (PDL)" output (such as PCL, PDF or PostScript) |
59 |
+or sends the print rendering instructions to a platform-specific |
60 |
+print API (like Win32/GDI). |
61 |
+ |
62 |
+Once a print ddx driver generates PDL output, it can be sent to |
63 |
+a spooler such as \fBlp\fR(1) |
64 |
+or retrieved by the client (to implement functionality like "print-to-file"). |
65 |
+ |
66 |
+Though not currently done, a single X-Server can support both |
67 |
+print and video ddx drivers. |
68 |
+.TP 0.4i |
69 |
+2. |
70 |
+Since printers support "paged" output, unlike video, a portion |
71 |
+of the Xp Extension supports APIs to delineate printed output. |
72 |
+For example, XpStartPage and XpEndPage tell the X-Server where |
73 |
+a physical page starts and ends in an otherwise continuous |
74 |
+stream of X rendering primitives. Likewise, XpStartJob and |
75 |
+XpEndJob determine when a collection of pages starts and ends. |
76 |
+XpEndJob typically causes the generated PDL to be submitted to |
77 |
+a spooler, such as \fBlp\fR(1). |
78 |
+.TP 0.4i |
79 |
+3. |
80 |
+Since printers have extensive capabilities, another portion of |
81 |
+the Xp Extension supports APIs to manipulate "print contexts". |
82 |
+ |
83 |
+Once a printer is selected using the Xp Extension API, a print |
84 |
+context to represent it can be created. A print context |
85 |
+embodies the printer selected - it contains the printer's |
86 |
+default capabilities, selectable range of capabilities, |
87 |
+printer state, and generated output. Some "attributes" within |
88 |
+the print context can be modified by the user, and the |
89 |
+X-Server and print ddx driver will react accordingly. For |
90 |
+example, the attribute "content-orientation" can be set to |
91 |
+"landscape" or "portrait" (if the printer supports these |
92 |
+values - which can be queried using the Xprint API as well). |
93 |
+.TP 0.4i |
94 |
+4. |
95 |
+Since printers can have "built in" fonts, the Xp Extension in |
96 |
+the X-Server works with the print ddx drivers to make |
97 |
+available (for printing only) additional fonts on a per print |
98 |
+context basis. |
99 |
+ |
100 |
+When a print context is created and set for a given printer, |
101 |
+the X font calls may be able to access additional printer |
102 |
+fonts. To do this (typically), the X-Server must have access |
103 |
+to "printer metric files" (.pmf) that describe at minimum the |
104 |
+metrics of the built in fonts. |
105 |
+.PP |
106 |
+.SH USAGE |
107 |
+There are three tasks to start the X Print Service: |
108 |
+.TP 0.4i |
109 |
+1. |
110 |
+configuring the X Print Server, |
111 |
+.TP 0.4i |
112 |
+2. |
113 |
+starting the X Print Service |
114 |
+.TP 0.4i |
115 |
+3. |
116 |
+configuring the user session so that clients can find the running X Print Service |
117 |
+.PP |
118 |
+.PP |
119 |
+The tasks are described in detail below. |
120 |
+.SH "SERVER CONFIGURATION" |
121 |
+The X Print Server (Xprt) can read a number of configuration files which |
122 |
+control its behavior and support for printers. Each vendor platform has |
123 |
+a default location for this information. Xprt can also read the |
124 |
+environment variable \fBXPCONFIGDIR\fR to locate alternate configuration |
125 |
+directories. Common settings include: |
126 |
+ |
127 |
+export XPCONFIGDIR=/X11/lib/X11/XpConfig/ |
128 |
+.PP |
129 |
+export XPCONFIGDIR=/proj/x11/xc/programs/Xserver/XpConfig/ |
130 |
+ |
131 |
+.PP |
132 |
+Xprt has many built-in defaults, and lacking any configuration files, |
133 |
+will immediately try to support all printers visible via \fBlpstat\fR(1). |
134 |
+.PP |
135 |
+In order of importance for configuration by a system administrator, the |
136 |
+configuration files for a "C" locale are as follows (see \fBXprt\fR(__appmansuffix__) for more |
137 |
+details (including support for non-"C" locales)): |
138 |
+.TP |
139 |
+\fB${XPCONFIGDIR}/C/print/Xprinters\fR |
140 |
+\&'Xprinters' is the top most configuration file. It tells |
141 |
+Xprt which specific printer names (e.g. mylaser) should |
142 |
+be supported, and whether \fBlpstat\fR(1) or other commands |
143 |
+should be used to automatically supplement the list of |
144 |
+printers. |
145 |
+.TP |
146 |
+\fB${XPCONFIGDIR}/C/print/attributes/printer\fR |
147 |
+The 'printer' file maps printer names to model |
148 |
+configurations (see 'model-config' below). For example, |
149 |
+"mylaser" could be mapped to a "HPDJ1600C", and all other |
150 |
+arbitrary printers could be mapped to a default, such as |
151 |
+"HPLJ4SI". When depending on \fBlpstat\fR(1) in the Xprinters |
152 |
+file, setting up defaults in 'printer' becomes all the |
153 |
+more important. |
154 |
+.TP |
155 |
+\fB${XPCONFIGDIR}/C/print/attributes/document\fR |
156 |
+The 'document' file specifies the initial document values |
157 |
+for any print jobs. For example, which paper tray to |
158 |
+use, what default resolution, etc. |
159 |
+.TP |
160 |
+\fB${XPCONFIGDIR}/C/print/attributes/job\fR |
161 |
+The 'job' file specifies the initial job values for any |
162 |
+print jobs. For example, "notification-profile" can be |
163 |
+set so that when a print job is successfully sent to a |
164 |
+printer, e-mail is sent to the user. |
165 |
+.TP |
166 |
+\fB${XPCONFIGDIR}/C/print/models/PSdefault/model\-config\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/fonts.dir\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00051.pmf\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00093.pmf\fR |
167 |
+The 'model-config' file has attributes that describe the |
168 |
+printer model\(cqs capabilities and default settings. |
169 |
+Printer model fonts may also be present. The model-config |
170 |
+file also identifies the print ddx driver to be used. |
171 |
+For each printer model supported, a complete hierarchy of |
172 |
+files should exist. In most cases, these files do not |
173 |
+need to be modified. |
174 |
+.TP |
175 |
+\fB${XPCONFIGDIR}/C/print/ddx\-config/raster/pcl\fR, \fB${XPCONFIGDIR}/C/print/ddx\-config/raster/pdf\fR, \fB${XPCONFIGDIR}/C/print/ddx\-config/raster/postscript\fR |
176 |
+The print ddx drivers can have highly specific |
177 |
+configuration files to control their behavior. In most |
178 |
+cases, these files do not need to be modified. |
179 |
+.PP |
180 |
+More information in how to configure and customize the X print server can be found in the |
181 |
+\fBXprt\fR(__appmansuffix__) |
182 |
+manual page. |
183 |
+.SH "STARTING UP" |
184 |
+The summary checklist for starting the X Print Service is as follows: |
185 |
+.TP 0.4i |
186 |
+1. |
187 |
+Choose an execution model for the X Print Service. The X |
188 |
+Print Service can be run on a per-user session basis, per |
189 |
+machine basis, or can be run on a few machines globally |
190 |
+available to a number of users. |
191 |
+.TP 0.4i |
192 |
+2. |
193 |
+If print jobs are to be submitted to a spooler (almost always |
194 |
+the case), make sure all needed printers are available to the |
195 |
+spooler subsystem (most often \fBlp\fR(1)) |
196 |
+on the same machine running the X Print Service. |
197 |
+.TP 0.4i |
198 |
+3. |
199 |
+Configure the X Print Server. See ``X Print Server |
200 |
+Configuration''. |
201 |
+.TP 0.4i |
202 |
+4. |
203 |
+Depending on #1, start the X Print Server process "Xprt", and |
204 |
+then the toolkit-specific Print Dialog Manager Daemon process |
205 |
+(such as CDEnext's "dtpdmd") at the appropriate times. |
206 |
+Note that libXprintUtils-based applications/toolkits do not need |
207 |
+a Print Dialog Manager Daemon process to use Xprint. |
208 |
+.PP |
209 |
+The details are described below. |
210 |
+.PP |
211 |
+Because the X Print Service is based on X, it can be easily distributed. |
212 |
+The most significant factors in which execution model to choose will be |
213 |
+driven by: |
214 |
+.TP 0.2i |
215 |
+\(bu |
216 |
+how many printers will be accessable through the printer |
217 |
+subsystem on any given machine. A system administrator may |
218 |
+choose to cluster printers on a few given machines, or |
219 |
+scatter them across an organization and possibly make |
220 |
+extensive use of remote spoolers to make them globally |
221 |
+available. |
222 |
+.TP 0.2i |
223 |
+\(bu |
224 |
+how many machines will need a copy of the X Print Server |
225 |
+configuration files. The files have been architected so |
226 |
+that one super-set version of them can be maintained and |
227 |
+distributed (e.g. via NFS), and a per-machine or per-user |
228 |
+version of the `Xprinters' is all that is needed to have the |
229 |
+appropriate information in them utilized or ignored. |
230 |
+.TP 0.2i |
231 |
+\(bu |
232 |
+how many users can demand services from a given X Print |
233 |
+Service. |
234 |
+.PP |
235 |
+With the above in mind, some obvious execution models include: |
236 |
+.TP 0.2i |
237 |
+\(bu |
238 |
+Global - in this model, the system administrator is choosing |
239 |
+to run the X Print Service on a *few* select machines with |
240 |
+appropriate printers configured, and allow clients access to |
241 |
+the global resource. This can centralize the administration |
242 |
+of printers and configuration files, but may have to be |
243 |
+monitored for performance loading. |
244 |
+ |
245 |
+Startup would likely be done by boot-up scripts (such as \fB/etc/init.d/xprint\fR). |
246 |
+.TP 0.2i |
247 |
+\(bu |
248 |
+Per-machine - every machine with potential X Print Service |
249 |
+users would run the service. Printer and configuration file |
250 |
+administration is decentralized, and usage would be limited |
251 |
+to the users on the machine. |
252 |
+ |
253 |
+Startup would likely be done by boot-up scripts (such as \fB/etc/init.d/xprint\fR). |
254 |
+.TP 0.2i |
255 |
+\(bu |
256 |
+Per-user session - every user would run an entire X Print |
257 |
+Service for themselves. In the future, the Video X Server |
258 |
+normally started may contain Print X Server capability, so |
259 |
+this model becomes very natural. |
260 |
+ |
261 |
+Startup would likely be done at session login or by |
262 |
+launching actions or processes manually once the user |
263 |
+logs in. Note: Deamons like "dtpdmd" must be started after Xprt. |
264 |
+.PP |
265 |
+.PP |
266 |
+Starting of the processes is straight forward. In strict order (example is for manually starting the X print server for CDEnext usage): |
267 |
+.TP 0.4i |
268 |
+1. |
269 |
+ |
270 |
+.nf |
271 |
+[machineA] % Xprt [\-XpFile <Xprinters file>] [:dispNum] & |
272 |
+.fi |
273 |
+ |
274 |
+ |
275 |
+Note that Xprt will look for configuration files in either |
276 |
+a default location or where \fBXPCONFIGDIR\fR points. |
277 |
+ |
278 |
+\fB\-XpFile\fR specifies an alternate `Xprinters' file, rather |
279 |
+than the default one or `\fB${XPCONFIGDIR}/C/print/Xprinters\fR'. |
280 |
+.TP 0.4i |
281 |
+2. |
282 |
+ |
283 |
+.nf |
284 |
+[machineA] % dtpdmd \-d machineA[:dispNum] [\-l /tmp/dtpdmd.log] & |
285 |
+.fi |
286 |
+ |
287 |
+ |
288 |
+The dtpdmd will maintain an X-Selection on the X-Server, |
289 |
+and will start dtpdm's as required to service requests. |
290 |
+.PP |
291 |
+.PP |
292 |
+In all but the per-user session model, the machine running the dtpdmd |
293 |
+(thus dtpdm's) will need display authorization to the users video |
294 |
+display. |
295 |
+.SH "CLIENT CONFIGURATION" |
296 |
+Once a X Print Server and dtpdmd have been started -- many of them |
297 |
+in some cases -- clients will need to find and use them. There are |
298 |
+two mechanisms that allow clients to discover X Print Servers and |
299 |
+printers. |
300 |
+.TP 0.2i |
301 |
+\(bu |
302 |
+"X Print Specifier" - assuming usage of the DtPrint/XprintUtils-based print |
303 |
+applications, the following notation is understood: |
304 |
+ |
305 |
+ |
306 |
+.nf |
307 |
+printer_name@machine[:dispNum] |
308 |
+.fi |
309 |
+ |
310 |
+ |
311 |
+For example: |
312 |
+ |
313 |
+ |
314 |
+.nf |
315 |
+colorlj7@printhub:2 |
316 |
+.fi |
317 |
+ |
318 |
+ |
319 |
+In the above example, the X Print Server running at `printhub:2' |
320 |
+is assumed to support the printer named `colorlj7'. |
321 |
+.TP 0.2i |
322 |
+\(bu |
323 |
+\fB${XPSERVERLIST}\fR - assuming usage of the DtPrint print dialogs, |
324 |
+the environment variable \fB${XPSERVERLIST}\fR can contain a list |
325 |
+of X Print Servers. For example: |
326 |
+ |
327 |
+ |
328 |
+.nf |
329 |
+XPSERVERLIST="printhub:2 printhub:3 otherdept:0" |
330 |
+.fi |
331 |
+ |
332 |
+ |
333 |
+Then in the dialogs, only a printer name needs to be entered. |
334 |
+The dialog will then search the X Print Servers in \fB${XPSERVERLIST}\fR |
335 |
+for a server than supports the printer, and then establish |
336 |
+contact. |
337 |
+.PP |
338 |
+.SH "END-USER SEQUENCE" |
339 |
+From most CDEnext applications, printing is accomplished by bringing |
340 |
+down the <File> menu and selecting <Print...>. This will result in |
341 |
+the DtPrintSetupBox dialog, which will request the name of a printer, |
342 |
+and offer limited capability to configure print options (e.g. number |
343 |
+of copies). If the user wishes, they can select <Setup...>, which |
344 |
+will start a dtpdm capable of modifying additional print options. |
345 |
+Finally, the user should select <Print>. |
346 |
+.SH ENVIRONMENT |
347 |
+.TP |
348 |
+\fB${XPCONFIGDIR}\fR |
349 |
+This environment variable points to the root |
350 |
+of the Xprint server configuration directory hierarchy. |
351 |
+If the variable is not defined, the default |
352 |
+path is be assumed. The default path may be |
353 |
+\fB/usr/X11R6/lib/X11/xserver/\fR, |
354 |
+\fB/usr/lib/X11/xserver/\fR, |
355 |
+\fB/usr/share/Xprint/xserver/\fR or |
356 |
+\fB/usr/openwin/server/etc/XpConfig\fR, depending on the |
357 |
+system, and may be configured in \fB/etc/init.d/xprint\fR. |
358 |
+.TP |
359 |
+\fB${LANG}\fR |
360 |
+This environment variable selects the locale settings used by the Xprint server. |
361 |
+Xprt allows language-specific settings (stored in \fB${XPCONFIGDIR}/${LANG}/print/\fR) |
362 |
+which will override the default settings (stored in \fB${XPCONFIGDIR}/C/print/\fR). |
363 |
+If \fB${LANG}\fR is not set "C" is assumed. |
364 |
+.TP |
365 |
+\fB${XPSERVERLIST}\fR |
366 |
+The environment variable \fB${XPSERVERLIST}\fR contains a list |
367 |
+of display identifiers (separated by whitespace) which tell an |
368 |
+application where it can find the Xprint servers. Usually |
369 |
+\fB${XPSERVERLIST}\fR is set by the profile startup scripts (e.g. |
370 |
+\fB/etc/profile\fR or \fB/etc/profile.d/xprint.sh\fR) using the output of |
371 |
+\fB/etc/init.d/xprint get_xpserverlist\fR. |
372 |
+ |
373 |
+Example: |
374 |
+ |
375 |
+.nf |
376 |
+ |
377 |
+ export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`" |
378 |
+.fi |
379 |
+ |
380 |
+ |
381 |
+Alternatively \fB${XPSERVERLIST}\fR can be set |
382 |
+manually. Example: |
383 |
+ |
384 |
+.nf |
385 |
+ |
386 |
+ export XPSERVERLIST="littlecat:80 bitdog:72" |
387 |
+.fi |
388 |
+ |
389 |
+instructs an application to find an Xprint server at display |
390 |
+80 on the machine "littlecat" and at display 72 on the |
391 |
+machine bigdog. |
392 |
+.TP |
393 |
+\fB${XPRINTER}\fR |
394 |
+The environment variable \fB${XPRINTER}\fR |
395 |
+defines the default printer used by print |
396 |
+applications. The syntax is either |
397 |
+\fIprintername\fR or |
398 |
+\fIprintername\fR@\fIdisplay\fR. |
399 |
+ |
400 |
+Examples: |
401 |
+.RS |
402 |
+.TP |
403 |
+\fBXPRINTER=ps003\fR |
404 |
+tells an application to look for the |
405 |
+first printer named "ps003" on all Xprint |
406 |
+servers. |
407 |
+.TP |
408 |
+\fBXPRINTER=hplaser19@littlecat:80\fR |
409 |
+tells an application to use the printer "hplaser19" |
410 |
+on the Xprint server at display |
411 |
+"littlecat:80". |
412 |
+.RE |
413 |
+ |
414 |
+ |
415 |
+If \fB${XPRINTER}\fR is not set the applications |
416 |
+will examine the values of the \fB${PDPRINTER}\fR, |
417 |
+\fB${LPDEST}\fR, and |
418 |
+\fB${PRINTER}\fR environment variables (in that order). |
419 |
+.SH "SEE ALSO" |
420 |
+\fBX11\fR(__miscmansuffix__), \fBxplsprinters\fR(__appmansuffix__), \fBxprehashprinterlist\fR(__appmansuffix__), \fBxphelloworld\fR(__appmansuffix__), \fBxpxmhelloworld\fR(__appmansuffix__), \fBxpawhelloworld\fR(__appmansuffix__), \fBxpxthelloworld\fR(__appmansuffix__), \fBxpsimplehelloworld\fR(__appmansuffix__), \fBXserver\fR(__appmansuffix__), \fBXprt\fR(__appmansuffix__), \fBlibXp\fR(__libmansuffix__), \fBlibXprintUtils\fR(__libmansuffix__), \fBlibXprintAppUtils\fR(__libmansuffix__), \fBXmPrintShell\fR(__libmansuffix__), \fBXawPrintShell\fR(__libmansuffix__), Xprint FAQ (http://xprint.mozdev.org/docs/Xprint_FAQ.html), Xprint main site (http://xprint.mozdev.org/) |
421 |
+.SH AUTHORS |
422 |
+This manual page was written by |
423 |
+Roland Mainz <roland.mainz@nrubsig.org> based on the original X11R6.6 |
424 |
+\fBxc/programs/Xserver/XpConfig/README\fR. |