summaryrefslogtreecommitdiff
path: root/IPPTOOL.txt
blob: 2293a45e2974ba867c1d7091338ecd345d52ea5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
IPPTOOL.txt - 2013-07-15
------------------------

See the file CHANGES-IPPTOOL.txt for a list of changes to this software.


INTRODUCTION

    CUPS includes two user programs for IPP printers.  The first is called
    ipptool and can be used to send arbitrary IPP requests to a CUPS server or
    IPP printer.  This tool started life as part of the CUPS automated test
    suite and has grown to support complex conformance tests and a simple way
    to query printer, job, and subscription attributes.

    The second program called ippfind that can be used to find IPP printers
    that have registered themselves using Bonjour (DNS-SD, mDNS, and Zeroconf)
    and run commands such as ipptool.


READING THE DOCUMENTATION

    Full documentation on the ipptool command can be found in the
    "man-ipptool.html" and "man-ipptoolfile.html" files; the latter describes
    the test file format supported by ipptool.

    Full documentation on the ippfind command can be found in the
    "man-ippfind.html" file.


IPPFIND BASIC USAGE

    The ippfind command can be used to discover IPP printers on your network.
    For example, the following command prints the printer URI of registered IPP
    printers:

        ippfind

    To find all color IPP printers, run:

        ippfind --txt-color T

    And to run the IPP Everywhere conformance test file on every registered IPP
    printer, run the following command:

        ippfind _ipp._tcp,_print --exec ipptool -t '{}' ipp-everywhere.test \;


IPPTOOL BASIC USAGE

    The ipptool command requires a printer URI and one or more "test" files that
    describe the operations, attributes to display, and expected status and
    attribute values. Several standard files are included with CUPS, for example
    to show a list of pending print jobs on a CUPS printer called "myprinter"
    you'd run:

        ipptool ipp://localhost/printers/myprinter get-jobs.test

    which would produce something like this:

	job-id job-state    job-name     job-originating-user-name
	------ ------------ ------------ -------------------------
	72     pending      testfile.pdf msweet
	73     pending      testfile.ps  msweet
	74     pending-held testfile.jpg msweet
	75     pending-held testfile.txt msweet

    To get output suitable for import into a spreadsheet, use the "-c" (CSV)
    option:

        ipptool -c ipp://localhost/printers/myprinter get-jobs.test

    which will produce something like this:

	job-id,job-state,job-name,job-originating-user-name
	72,pending,testfile.pdf,msweet
	73,pending,testfile.ps,msweet
	74,pending-held,testfile.jpg,msweet
	75,pending-held,testfile.txt,msweet


STANDARD TEST FILES

    The following standard test files are included with ipptool:

        create-printer-subscription.test    Creates a printer subscription for
                                            state change notifications
        get-completed-jobs.test             Shows a list of completed jobs
        get-jobs.test                       Shows a list of pending jobs
        get-notifications.test              Shows events for an ippget
	                                    subscription.
        get-printer-attributes.test         Shows printer attributes
        get-subscriptions.test              Shows a list of subscriptions
        ipp-1.1.test                        IPP/1.1 conformance test suite
        ipp-2.0.test                        IPP/2.0 conformance test suite
        ipp-2.1.test                        IPP/2.1 conformance test suite
        ipp-2.2.test                        IPP/2.2 conformance test suite
        ipp-everywhere.test                 IPP Everywhere conformance test
                                            suite
        print-job.test                      Prints a file
        print-job-deflate.test              Prints a file, compressing with
                                            deflate.
        print-job-gzip.test                 Prints a file, compressing with gzip
        validate-job.test                   Validates attributes for a job
                                            submission.


CONFORMANCE TESTS

    We provide basic IPP conformance tests for IPP/1.1, IPP/2.0, IPP/2.1,
    IPP/2.2, and IPP Everywhere.  For a given printer URI, the following
    commands perform tests at each level:

        ipptool -tf filename [options] -I printer-uri ipp-1.1.test
        ipptool -tf filename [options] -I -V 2.0 printer-uri ipp-2.0.test
        ipptool -tf filename [options] -I -V 2.1 printer-uri ipp-2.1.test
        ipptool -tf filename [options] -I -V 2.2 printer-uri ipp-2.2.test

    The filename must use a format supported by the printer; ipptool will guess
    the MIME media type using the extension, otherwise application/octet stream
    will be used.  The following standard test files are included:

	color.jpg
	document-a4.pdf
	document-a4.ps
	document-letter.pdf
	document-letter.ps
	gray.jpg
	onepage-a4.pdf
	onepage-a4.ps
	onepage-letter.pdf
	onepage-letter.ps
	testfile.jpg
	testfile.pcl
	testfile.pdf
	testfile.ps
	testfile.txt

    Useful options include the following:

        -4           Connect using IPv4
        -6           Connect using IPv6
        -C           Send chunked requests (default)
        -d name=val  Define a variable
        -E           Test IPP with HTTP Upgrade to TLS
        -L           Send requests using the Content-Length header (HTTP/1.0)
        -S           Test IPP over HTTPS (default for ipps: URIs)
        -T seconds   Set a timeout for responses in seconds
        -v           Be verbose, showing all attributes sent and received
        -X           Produce XML (Apple plist) output

    The printer-uri must be a URI supported by the printer using the "ipp" or
    "ipps" scheme, for example:

        ipp://192.168.0.1/ipp
        ipps://192.168.0.1/ipp/print

    Print-by-reference (URL) printing can be tested by defining the document-uri
    variable as a URL, for example:

        ipptool -tf filename -d document-uri=url -I printer-uri ipp-1.1.test

    The standard test files are available on cups.org under the "test"
    directory, for example:

        ipptool -tf document-a4.pdf \
            -d document-uri=http://www.cups.org/test/document-a4.pdf \
            ipp://192.168.0.1/ipp -I -V 2.0 ipp-2.0.test

    The "document" test files contain 4 pages each.  Doing the IPP conformance
    tests will will produce up to 90 pages on various media, depending on the
    printer.


IPP EVERYWHERE TESTING

    The IPP Everywhere tests use sample PWG raster files available from:

        ftp://ftp.pwg.org/pub/pwg/ipp/examples

    Extract the corresponding ZIP archives into the current directory before
    running the ipp-everywhere.test file.  The test file will attempt to print
    each PWG Raster file that is supported by the printer being tested - up to
    372 pages including the 90 pages produced by the regular IPP test suite.


GETTING SUPPORT AND OTHER RESOURCES

    If you have problems, READ THE DOCUMENTATION FIRST!  We also provide
    discussion forums which are available at:

	http://www.cups.org/


REPORTING BUGS

    If you believe you have discovered a bug in ippfind or ipptool, please fill
    out the bug form at:

	http://www.cups.org/str.php

    Be sure to identify the version of CUPS and ippfind/ipptool (if you
    downloaded the standalone version) you are using, the printer (if any) and
    firmware version, and include any files that apply.

    If you downloaded the standalone version of ippfind/ipptool, please also
    re-run the command with debug logging enabled.  Run the following commands
    on Windows to enable debug logging:

        setdebug.bat

    For Linux and Mac OS X use:

	CUPS_DEBUG_LOG=ipptool.log; export CUPS_DEBUG_LOG
	CUPS_DEBUG_LEVEL=6; export CUPS_DEBUG_LEVEL

    Then when you run the ippfind or ipptool command a new "ipptool.log" file
    will be created with detailed information - attach this file to the bug you
    file as well.


LEGAL STUFF

    CUPS is Copyright 2007-2013 by Apple Inc.  CUPS and the CUPS logo are
    trademarks of Apple Inc.

    The MD5 Digest code is Copyright 1999 Aladdin Enterprises.

    CUPS is provided under the terms of version 2 of the GNU General Public
    License and GNU Library General Public License. This program is distributed
    in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
    the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    See the "doc/help/license.html" or "LICENSE.txt" files for more information.