This commit was manufactured by cvs2svn to create branch 'SAMBA_3_0'.(This used to...
[sfrench/samba-autobuild/.git] / docs / docbook / smbdotconf / printing / printcommand.xml
1 <samba:parameter name="print command"
2                  context="S"
3                  print="1"
4                  xmlns:samba="http://samba.org/common">
5 <listitem>
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 <link linkend="GUESTACCOUNT">
50     <parameter moreinfo="none">guest account</parameter></link> 
51     in the [global] section.</para>
52
53     <para>You can form quite complex print commands by realizing 
54     that they are just passed to a shell. For example the following 
55     will log a print job, print the file, then remove it. Note that 
56     ';' is the usual separator for command in shell scripts.</para>
57
58     <para><command moreinfo="none">print command = echo Printing %s &gt;&gt; 
59     /tmp/print.log; lpr -P %p %s; rm %s</command></para>
60
61     <para>You may have to vary this command considerably depending 
62     on how you normally print files on your system. The default for 
63     the parameter varies depending on the setting of the <link linkend="PRINTING">
64     <parameter moreinfo="none">printing</parameter></link> parameter.</para>
65
66     <para>Default: For <command moreinfo="none">printing = BSD, AIX, QNX, LPRNG 
67     or PLP :</command></para>
68     <para><command moreinfo="none">print command = lpr -r -P%p %s</command></para>
69
70     <para>For <command moreinfo="none">printing = SYSV or HPUX :</command></para>
71     <para><command moreinfo="none">print command = lp -c -d%p %s; rm %s</command></para>
72
73     <para>For <command moreinfo="none">printing = SOFTQ :</command></para>
74     <para><command moreinfo="none">print command = lp -d%p -s %s; rm %s</command></para>
75
76     <para>For printing = CUPS :   If SAMBA is compiled against
77     libcups, then <link linkend="PRINTING">printcap = cups</link> 
78     uses the CUPS API to
79     submit jobs, etc.  Otherwise it maps to the System V
80     commands with the -oraw option for printing, i.e. it
81     uses <command moreinfo="none">lp -c -d%p -oraw; rm %s</command>.   
82     With <command moreinfo="none">printing = cups</command>,
83     and if SAMBA is compiled against libcups, any manually 
84     set print command will be ignored.</para>
85
86
87     <para>Example: <command moreinfo="none">print command = /usr/local/samba/bin/myprintscript %p %s</command></para>
88 </listitem>
89 </samba:parameter>