1 | <samba:parameter name="print command"
|
---|
2 | context="S"
|
---|
3 | type="string"
|
---|
4 | xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
|
---|
5 | <description>
|
---|
6 | <para>After a print job has finished spooling to
|
---|
7 | a service, this command will be used via a <command moreinfo="none">system()</command>
|
---|
8 | call to process the spool file. Typically the command specified will
|
---|
9 | submit the spool file to the host's printing subsystem, but there
|
---|
10 | is no requirement that this be the case. The server will not remove
|
---|
11 | the spool file, so whatever command you specify should remove the
|
---|
12 | spool file when it has been processed, otherwise you will need to
|
---|
13 | manually remove old spool files.</para>
|
---|
14 |
|
---|
15 | <para>The print command is simply a text string. It will be used
|
---|
16 | verbatim after macro substitutions have been made:</para>
|
---|
17 |
|
---|
18 | <para>%s, %f - the path to the spool
|
---|
19 | file name</para>
|
---|
20 |
|
---|
21 | <para>%p - the appropriate printer
|
---|
22 | name</para>
|
---|
23 |
|
---|
24 | <para>%J - the job
|
---|
25 | name as transmitted by the client.</para>
|
---|
26 |
|
---|
27 | <para>%c - The number of printed pages
|
---|
28 | of the spooled job (if known).</para>
|
---|
29 |
|
---|
30 | <para>%z - the size of the spooled
|
---|
31 | print job (in bytes)</para>
|
---|
32 |
|
---|
33 | <para>The print command <emphasis>MUST</emphasis> contain at least
|
---|
34 | one occurrence of <parameter moreinfo="none">%s</parameter> or <parameter moreinfo="none">%f
|
---|
35 | </parameter> - the <parameter moreinfo="none">%p</parameter> is optional. At the time
|
---|
36 | a job is submitted, if no printer name is supplied the <parameter moreinfo="none">%p
|
---|
37 | </parameter> will be silently removed from the printer command.</para>
|
---|
38 |
|
---|
39 | <para>If specified in the [global] section, the print command given
|
---|
40 | will be used for any printable service that does not have its own
|
---|
41 | print command specified.</para>
|
---|
42 |
|
---|
43 | <para>If there is neither a specified print command for a
|
---|
44 | printable service nor a global print command, spool files will
|
---|
45 | be created but not processed and (most importantly) not removed.</para>
|
---|
46 |
|
---|
47 | <para>Note that printing may fail on some UNIXes from the
|
---|
48 | <constant>nobody</constant> account. If this happens then create
|
---|
49 | an alternative guest account that can print and set the <smbconfoption name="guest account"/>
|
---|
50 | in the [global] section.</para>
|
---|
51 |
|
---|
52 | <para>You can form quite complex print commands by realizing
|
---|
53 | that they are just passed to a shell. For example the following
|
---|
54 | will log a print job, print the file, then remove it. Note that
|
---|
55 | ';' is the usual separator for command in shell scripts.</para>
|
---|
56 |
|
---|
57 | <para><command moreinfo="none">print command = echo Printing %s >>
|
---|
58 | /tmp/print.log; lpr -P %p %s; rm %s</command></para>
|
---|
59 |
|
---|
60 | <para>You may have to vary this command considerably depending
|
---|
61 | on how you normally print files on your system. The default for
|
---|
62 | the parameter varies depending on the setting of the <smbconfoption name="printing"/>
|
---|
63 | parameter.</para>
|
---|
64 |
|
---|
65 | <para>Default: For <command moreinfo="none">printing = BSD, AIX, QNX, LPRNG
|
---|
66 | or PLP :</command></para>
|
---|
67 | <para><command moreinfo="none">print command = lpr -r -P%p %s</command></para>
|
---|
68 |
|
---|
69 | <para>For <command moreinfo="none">printing = SYSV or HPUX :</command></para>
|
---|
70 | <para><command moreinfo="none">print command = lp -c -d%p %s; rm %s</command></para>
|
---|
71 |
|
---|
72 | <para>For <command moreinfo="none">printing = SOFTQ :</command></para>
|
---|
73 | <para><command moreinfo="none">print command = lp -d%p -s %s; rm %s</command></para>
|
---|
74 |
|
---|
75 | <para>For printing = CUPS : If SAMBA is compiled against
|
---|
76 | libcups, then <smbconfoption name="printcap">cups</smbconfoption>
|
---|
77 | uses the CUPS API to
|
---|
78 | submit jobs, etc. Otherwise it maps to the System V
|
---|
79 | commands with the -oraw option for printing, i.e. it
|
---|
80 | uses <command moreinfo="none">lp -c -d%p -oraw; rm %s</command>.
|
---|
81 | With <command moreinfo="none">printing = cups</command>,
|
---|
82 | and if SAMBA is compiled against libcups, any manually
|
---|
83 | set print command will be ignored.</para>
|
---|
84 | </description>
|
---|
85 |
|
---|
86 | <value type="example">/usr/local/samba/bin/myprintscript %p %s</value>
|
---|
87 | </samba:parameter>
|
---|