~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs-xml/smbdotconf/printing/printcommand.xml

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<samba:parameter name="print command"
 
2
                 context="S"
 
3
                                 type="string"
 
4
                 print="1"
 
5
                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
 
6
<description>
 
7
    <para>After a print job has finished spooling to 
 
8
    a service, this command will be used via a <command moreinfo="none">system()</command> 
 
9
    call to process the spool file. Typically the command specified will 
 
10
    submit the spool file to the host's printing subsystem, but there 
 
11
    is no requirement that this be the case. The server will not remove 
 
12
    the spool file, so whatever command you specify should remove the 
 
13
    spool file when it has been processed, otherwise you will need to 
 
14
    manually remove old spool files.</para>
 
15
                
 
16
    <para>The print command is simply a text string. It will be used 
 
17
    verbatim after macro substitutions have been made:</para>
 
18
 
 
19
        <para>%s, %f - the path to the spool
 
20
    file name</para>
 
21
 
 
22
    <para>%p - the appropriate printer 
 
23
    name</para>
 
24
 
 
25
    <para>%J - the job 
 
26
    name as transmitted by the client.</para>
 
27
 
 
28
    <para>%c - The number of printed pages
 
29
    of the spooled job (if known).</para>
 
30
 
 
31
    <para>%z - the size of the spooled
 
32
    print job (in bytes)</para>
 
33
 
 
34
    <para>The print command <emphasis>MUST</emphasis> contain at least 
 
35
    one occurrence of <parameter moreinfo="none">%s</parameter> or <parameter moreinfo="none">%f
 
36
    </parameter> - the <parameter moreinfo="none">%p</parameter> is optional. At the time 
 
37
    a job is submitted, if no printer name is supplied the <parameter moreinfo="none">%p
 
38
    </parameter> will be silently removed from the printer command.</para>
 
39
 
 
40
    <para>If specified in the [global] section, the print command given 
 
41
    will be used for any printable service that does not have its own 
 
42
    print command specified.</para>
 
43
 
 
44
    <para>If there is neither a specified print command for a 
 
45
    printable service nor a global print command, spool files will 
 
46
    be created but not processed and (most importantly) not removed.</para>
 
47
 
 
48
    <para>Note that printing may fail on some UNIXes from the 
 
49
    <constant>nobody</constant> account. If this happens then create 
 
50
    an alternative guest account that can print and set the <smbconfoption name="guest account"/> 
 
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 <smbconfoption name="printing"/>
 
64
        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 <smbconfoption name="printcap">cups</smbconfoption> 
 
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
</description>
 
86
 
 
87
<value type="example">/usr/local/samba/bin/myprintscript %p %s</value>
 
88
</samba:parameter>