RFC2566 - Internet Printing Protocol/1.0: Model and Semantics(4)

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

4.2.9 number-up (integer(1:MAX))

This attribute specifies the number of print-stream pages to impose

upon a single side of an instance of a selected medium. For example,

if the value is:

Value Description

'1' the Printer MUST place one print-stream page on a single

side of an instance of the selected medium (MAY add

some sort of translation, scaling, or rotation).

'2' the Printer MUST place two print-stream pages on a single

side of an instance of the selected medium (MAY add

some sort of translation, scaling, or rotation).

'4' the Printer MUST place four print-stream pages on a single

side of an instance of the selected medium (MAY add

some sort of translation, scaling, or rotation).

This attribute primarily controls the translation, scaling and

rotation of print-stream pages.

Note: The effect of this attribute on jobs with multiple documents is

controlled by the "multiple-document-handling" job attribute (section

4.2.4) and the relationship of this attribute and the other

attributes that control document processing is described in section

15.3.

4.2.10 orientation-requested (type2 enum)

This attribute indicates the desired orientation for printed print-

stream pages; it does not describe the orientation of the client-

supplied print-stream pages.

For some document formats (such as 'application/postscript'), the

desired orientation of the print-stream pages is specified within the

document data. This information is generated by a device driver

prior to the submission of the print job. Other document formats

(such as 'text/plain') do not include the notion of desired

orientation within the document data. In the latter case it is

possible for the Printer object to bind the desired orientation to

the document data after it has been submitted. It is expected that a

Printer object would only support "orientations-requested" for some

document formats (e.g., 'text/plain' or 'text/html') but not others

(e.g., 'application/postscript'). This is no different than any

other Job Template attribute since section 4.2, item 1, points out

that a Printer object may support or not support any Job Template

attribute based on the document format supplied by the client.

However, a special mention is made here since it is very likely that

a Printer object will support "orientation-requested" for only a

subset of the supported document formats.

Standard enum values are:

Value Symbolic Name and Description

'3' 'portrait': The content will be imaged across the short

edge of the medium.

'4' 'landscape': The content will be imaged across the long

edge of the medium. Landscape is defined to be a

rotation of the print-stream page to be imaged by +90

degrees with respect to the medium (i.e. anti-

clockwise) from the portrait orientation. Note: The

+90 direction was chosen because simple finishing on

the long edge is the same edge whether portrait or

landscape

'5' 'reverse-landscape': The content will be imaged across the

long edge of the medium. Reverse-landscape is defined

to be a rotation of the print-stream page to be imaged

by - 90 degrees with respect to the medium (i.e.

clockwise) from the portrait orientation. Note: The '

reverse-landscape' value was added because some

applications rotate landscape -90 degrees from

portrait, rather than +90 degrees.

'6' 'reverse-portrait': The content will be imaged across the

short edge of the medium. Reverse-portrait is defined

to be a rotation of the print-stream page to be imaged

by 180 degrees with respect to the medium from the

portrait orientation. Note: The 'reverse-portrait'

value was added for use with the "finishings"

attribute in cases where the opposite edge is desired

for finishing a portrait document on simple finishing

devices that have only one finishing position. Thus a

'text'/plain' portrait document can be stapled "on the

right" by a simple finishing device as is common use

with some middle eastern languages such as Hebrew.

Note: The effect of this attribute on jobs with multiple documents is

controlled by the "multiple-document-handling" job attribute (section

4.2.4) and the relationship of this attribute and the other

attributes that control document processing is described in section

15.3.

4.2.11 media (type3 keyword name(MAX))

This attribute identifies the medium that the Printer uses for all

impressions of the Job.

The values for "media" include medium-names, medium-sizes, input-

trays and electronic forms so that one attribute specifies the media.

If a Printer object supports a medium name as a value of this

attribute, such a medium name implicitly selects an input-tray that

contains the specified medium. If a Printer object supports a medium

size as a value of this attribute, such a medium size implicitly

selects a medium name that in turn implicitly selects an input-tray

that contains the medium with the specified size. If a Printer

object supports an input-tray as the value of this attribute, such an

input-tray implicitly selects the medium that is in that input-tray

at the time the job prints. This case includes manual-feed input-

trays. If a Printer object supports an electronic form as the value

of this attribute, such an electronic form implicitly selects a

medium-name that in turn implicitly selects an input-tray that

contains the medium specified by the electronic form. The electronic

form also implicitly selects an image that the Printer MUST merge

with the document data as its prints each page.

Standard keyword values are (taken from ISO DPA and the Printer MIB)

and are listed in section 14. An administrator MAY define additional

values using the 'name' or 'keyword' attribute syntax, depending on

implementation.

There is also an additional Printer attribute named "media-ready"

which differs from "media-supported" in that legal values only

include the subset of "media-supported" values that are physically

loaded and ready for printing with no operator intervention required.

If an IPP object supports "media-supported", it NEED NOT support

"media-ready".

The relationship of this attribute and the other attributes that

control document processing is described in section 15.3.

4.2.12 printer-resolution (resolution)

This attribute identifies the resolution that Printer uses for the

Job.

4.2.13 print-quality (type2 enum)

This attribute specifies the print quality that the Printer uses for

the Job.

The standard enum values are:

Value Symbolic Name and Description

'3' 'draft': lowest quality available on the printer

'4' 'normal': normal or intermediate quality on the printer

'5' 'high': highest quality available on the printer

4.3 Job Description Attributes

The attributes in this section form the attribute group called "job-

description". The following table summarizes these attributes. The

third column indicates whether the attribute is a REQUIRED attribute

that MUST be supported by Printer objects. If it is not indicated as

REQUIRED, then it is OPTIONAL. The maximum size in octets for 'text'

and 'name' attributes is indicated in parenthesizes.

+----------------------------+----------------------+----------------+

Attribute Syntax REQUIRED?

+----------------------------+----------------------+----------------+

job-uri uri REQUIRED

+----------------------------+----------------------+----------------+

job-id integer(1:MAX) REQUIRED

+----------------------------+----------------------+----------------+

job-printer-uri uri REQUIRED

+----------------------------+----------------------+----------------+

job-more-info uri

+----------------------------+----------------------+----------------+

job-name name (MAX) REQUIRED

+----------------------------+----------------------+----------------+

job-originating-user-name name (MAX) REQUIRED

+----------------------------+----------------------+----------------+

job-state type1 enum REQUIRED

+----------------------------+----------------------+----------------+

job-state-reasons 1setOf type2 keyword

+----------------------------+----------------------+----------------+

job-state-message text (MAX)

+----------------------------+----------------------+----------------+

number-of-documents integer (0:MAX)

+----------------------------+----------------------+----------------+

output-device-assigned name (127)

+----------------------------+----------------------+----------------+

time-at-creation integer (0:MAX)

+----------------------------+----------------------+----------------+

time-at-processing integer (0:MAX)

+----------------------------+----------------------+----------------+

time-at-completed integer (0:MAX)

+----------------------------+----------------------+----------------+

number-of-intervening-jobs integer (0:MAX)

+----------------------------+----------------------+----------------+

job-message-from-operator text (127)

+----------------------------+----------------------+----------------+

job-k-octets integer (0:MAX)

+----------------------------+----------------------+----------------+

job-impressions integer (0:MAX)

+----------------------------+----------------------+----------------+

+----------------------------+----------------------+----------------+

Attribute Syntax REQUIRED?

+----------------------------+----------------------+----------------+

job-media-sheets integer (0:MAX)

+----------------------------+----------------------+----------------+

job-k-octets-processed integer (0:MAX)

+----------------------------+----------------------+----------------+

job-impressions-completed integer (0:MAX)

+----------------------------+----------------------+----------------+

job-media-sheets-completed integer (0:MAX)

+----------------------------+----------------------+----------------+

attributes-charset charset REQUIRED

+----------------------------+----------------------+----------------+

attributes-natural-language naturalLanguage REQUIRED

+----------------------------+----------------------+----------------+

4.3.1 job-uri (uri)

This REQUIRED attribute contains the URI for the job. The Printer

object, on receipt of a new job, generates a URI which identifies the

new Job. The Printer object returns the value of the "job-uri"

attribute as part of the response to a create request. The precise

format of a Job URI is implementation dependent. If the Printer

object supports more than one URI and there is some relationship

between the newly formed Job URI and the Printer object's URI, the

Printer object uses the Printer URI supplied by the client in the

create request. For example, if the create request comes in over a

secure channel, the new Job URI MUST use the same secure channel.

This can be guaranteed because the Printer object is responsible for

generating the Job URI and the Printer object is aware of its

security configuration and policy as well as the Printer URI used in

the create request.

For a description of this attribute and its relationship to "job-id"

and "job-printer-uri" attribute, see the discussion in section 2.4 on

"Object Identity".

4.3.2 job-id (integer(1:MAX))

This REQUIRED attribute contains the ID of the job. The Printer, on

receipt of a new job, generates an ID which identifies the new Job on

that Printer. The Printer returns the value of the "job-id"

attribute as part of the response to a create request. The 0 value

is not included to allow for compatibility with SNMP index values

which also cannot be 0.

For a description of this attribute and its relationship to "job-uri"

and "job-printer-uri" attribute, see the discussion in section 2.4 on

"Object Identity".

4.3.3 job-printer-uri (uri)

This REQUIRED attribute identifies the Printer object that created

this Job object. When a Printer object creates a Job object, it

populates this attribute with the Printer object URI that was used in

the create request. This attribute permits a client to identify the

Printer object that created this Job object when only the Job

object's URI is available to the client. The client queries the

creating Printer object to determine which languages, charsets,

operations, are supported for this Job.

For a description of this attribute and its relationship to "job-uri"

and "job-id" attribute, see the discussion in section 2.4 on "Object

Identity".

4.3.4 job-more-info (uri)

Similar to "printer-more-info", this attribute contains the URI

referencing some resource with more information about this Job

object, perhaps an HTML page containing information about the Job.

4.3.5 job-name (name(MAX))

This REQUIRED attribute is the name of the job. It is a name that is

more user friendly than the "job-uri" attribute value. It does not

need to be unique between Jobs. The Job's "job-name" attribute is

set to the value supplied by the client in the "job-name" operation

attribute in the create request (see Section 3.2.1.1). If, however,

the "job-name" operation attribute is not supplied by the client in

the create request, the Printer object, on creation of the Job, MUST

generate a name. The printer SHOULD generate the value of the Job's

"job-name" attribute from the first of the following sources that

produces a value: 1) the "document-name" operation attribute of the

first (or only) document, 2) the "document-URI" attribute of the

first (or only) document, or 3) any other piece of Job specific

and/or Document Content information.

4.3.6 job-originating-user-name (name(MAX))

This REQUIRED attribute contains the name of the end user that

submitted the print job. The Printer object sets this attribute to

the most authenticated printable name that it can obtain from the

authentication service over which the IPP operation was received.

Only if such is not available, does the Printer object use the value

supplied by the client in the "requesting-user-name" operation

attribute of the create operation (see Section 8).

Note: The Printer object needs to keep an internal originating user

id of some form, typically as a credential of a principal, with the

Job object. Since such an internal attribute is implementation-

dependent and not of interest to clients, it is not specified as a

Job Description attribute. This originating user id is used for

authorization checks (if any) on all subsequent operation.

4.3.7 job-state (type1 enum)

This REQUIRED attribute identifies the current state of the job.

Even though the IPP protocol defines eight values for job states,

implementations only need to support those states which are

appropriate for the particular implementation. In other words, a

Printer supports only those job states implemented by the output

device and available to the Printer object implementation.

Standard enum values are:

Values Symbolic Name and Description

'3' 'pending': The job is a candidate to start processing, but

is not yet processing.

'4' 'pending-held': The job is not a candidate for processing

for any number of reasons but will return to the '

pending' state as soon as the reasons are no longer

present. The job's "job-state-reason" attribute MUST

indicate why the job is no longer a candidate for

processing.

'5' 'processing': One or more of:

1. the job is using, or is attempting to use, one or

more purely software processes that are analyzing,

creating, or interpreting a PDL, etc.,

2. the job is using, or is attempting to use, one or

more hardware devices that are interpreting a PDL,

making marks on a medium, and/or performing finishing,

such as stapling, etc.,

3. the Printer object has made the job ready for

printing, but the output device is not yet printing

it, either because the job hasn't reached the output

device or because the job is queued in the output

device or some other spooler, awaiting the output

device to print it.

When the job is in the 'processing' state, the entire

job state includes the detailed status represented in

the printer's "printer-state", "printer-state-

reasons", and "printer-state-message" attributes.

Implementations MAY, though they NEED NOT, include

additional values in the job's "job-state-reasons"

attribute to indicate the progress of the job, such as

adding the 'job-printing' value to indicate when the

output device is actually making marks on paper and/or

the 'processing-to-stop-point' value to indicate that

the IPP object is in the process of canceling or

aborting the job. Most implementations won't bother

with this nuance.

'6' 'processing-stopped': The job has stopped while processing

for any number of reasons and will return to the '

processing' state as soon as the reasons are no longer

present.

The job's "job-state-reason" attribute MAY indicate

why the job has stopped processing. For example, if

the output device is stopped, the 'printer-stopped'

value MAY be included in the job's "job-state-reasons"

attribute.

Note: When an output device is stopped, the device

usually indicates its condition in human readable form

locally at the device. A client can obtain more

complete device status remotely by querying the

Printer object's "printer-state", "printer-state-

reasons" and "printer-state-message" attributes.

'7' 'canceled': The job has been canceled by a Cancel-Job

operation and the Printer object has completed

canceling the job and all job status attributes have

reached their final values for the job. While the

Printer object is canceling the job, the job remains

in its current state, but the job's "job-state-

reasons" attribute SHOULD contain the 'processing-to-

stop-point' value and one of the 'canceled-by-user', '

canceled-by-operator', or 'canceled-at-device' value.

When the job moves to the 'canceled' state, the '

processing-to-stop-point' value, if present, MUST be

removed, but the 'canceled-by-xxx', if present, MUST

remain.

'8' 'aborted': The job has been aborted by the system, usually

while the job was in the 'processing' or 'processing-

stopped' state and the Printer has completed aborting

the job and all job status attributes have reached

their final values for the job. While the Printer

object is aborting the job, the job remains in its

current state, but the job's "job-state-reasons"

attribute SHOULD contain the 'processing-to-stop-

point' and 'aborted-by-system' values. When the job

moves to the 'aborted' state, the 'processing-to-

stop-point' value, if present, MUST be removed, but

the 'aborted-by-system' value, if present, MUST

remain.

'9' 'completed': The job has completed successfully or with

warnings or errors after processing and all of the job

media sheets have been successfully stacked in the

appropriate output bin(s) and all job status

attributes have reached their final values for the

job. The job's "job-state-reasons" attribute SHOULD

contain one of: 'completed-successfully', '

completed-with-warnings', or 'completed-with-errors'

values.

The final value for this attribute MUST be one of: 'completed', '

canceled', or 'aborted' before the Printer removes the job

altogether. The length of time that jobs remain in the 'canceled', '

aborted', and 'completed' states depends on implementation.

The following figure shows the normal job state transitions.

+----> canceled

/

+----> pending --------> processing ---------+------> completed

^ ^ --->+ +----> aborted

v v /

+----> pending-held processing-stopped ---+

Normally a job progresses from left to right. Other state

transitions are unlikely, but are not forbidden. Not shown are the

transitions to the 'canceled' state from the 'pending', 'pending-

held', and 'processing-stopped' states.

Jobs reach one of the three terminal states: 'completed', 'canceled',

or 'aborted', after the jobs have completed all activity, including

stacking output media, after the jobs have completed all activity,

and all job status attributes have reached their final values for the

job.

Note: As with all other IPP attributes, if the implementation can not

determine the correct value for this attribute, it SHOULD respond

with the out-of-band value 'unknown' (see section 4.1) rather than

try to guess at some possibly incorrect value and give the end user

the wrong impression about the state of the Job object. For example,

if the implementation is just a gateway into some printing system

that does not provide detailed status about the print job, the IPP

Job object's state might literally be 'unknown'.

4.3.8 job-state-reasons (1setOf type2 keyword)

This attribute provides additional information about the job's

current state, i.e., information that augments the value of the job's

"job-state" attribute.

Implementation of these values is OPTIONAL, i.e., a Printer NEED NOT

implement them, even if (1) the output device supports the

functionality represented by the reason and (2) is available to the

Printer object implementation. These values MAY be used with any job

state or states for which the reason makes sense. Furthermore, when

implemented, the Printer MUST return these values when the reason

applies and MUST NOT return them when the reason no longer applies

whether the value of the Job's "job-state" attribute changed or not.

When the Job does not have any reasons for being in its current

state, the value of the Job's "job-state-reasons" attribute MUST be '

none'.

Note: While values cannot be added to the 'job-state' attribute

without impacting deployed clients that take actions upon receiving

"job-state" values, it is the intent that additional "job-state-

reasons" values can be defined and registered without impacting such

deployed clients. In other words, the "job-state-reasons" attribute

is intended to be extensible.

The following standard keyword values are defined. For ease of

understanding, the values are presented in the order in which the

reasons are likely to occur (if implemented), starting with the '

job-incoming' value:

'none': There are no reasons for the job's current state.

'job-incoming': The Create-Job operation has been accepted by the

Printer, but the Printer is expecting additional Send-Document

and/or Send-URI operations and/or is accessing/accepting

document data.

'submission-interrupted': The job was not completely submitted for

some unforeseen reason, such as: (1) the Printer has crashed

before the job was closed by the client, (2) the Printer or the

document transfer method has crashed in some non-recoverable way

before the document data was entirely transferred to the

Printer, (3) the client crashed or failed to close the job

before the time-out period. See section 4.4.28.

'job-outgoing': The Printer is transmitting the job to the output

device.

'job-hold-until-specified': The value of the job's "job-hold-

until" attribute was specified with a time period that is still

in the future. The job MUST NOT be a candidate for processing

until this reason is removed and there are no other reasons to

hold the job.

'resources-are-not-ready': At least one of the resources needed by

the job, such as media, fonts, resource objects, etc., is not

ready on any of the physical printer's for which the job is a

candidate. This condition MAY be detected when the job is

accepted, or subsequently while the job is pending or

processing, depending on implementation. The job may remain in

its current state or be moved to the 'pending-held' state,

depending on implementation and/or job scheduling policy.

'printer-stopped-partly': The value of the Printer's "printer-

state-reasons" attribute contains the value 'stopped-partly'.

'printer-stopped': The value of the Printer's "printer-state"

attribute is 'stopped'.

'job-interpreting': Job is in the 'processing' state, but more

specifically, the Printer is interpreting the document data.

'job-queued': Job is in the 'processing' state, but more

specifically, the Printer has queued the document data.

'job-transforming': Job is in the 'processing' state, but more

specifically, the Printer is interpreting document data and

producing another electronic representation.

'job-printing': The output device is marking media. This value is

useful for Printers which spend a great deal of time processing

(1) when no marking is happening and then want to show that

marking is now happening or (2) when the job is in the process

of being canceled or aborted while the job remains in the '

processing' state, but the marking has not yet stopped so that

impression or sheet counts are still increasing for the job.

'job-canceled-by-user': The job was canceled by the owner of the

job using the Cancel-Job request, i.e., by a user whose

authenticated identity is the same as the value of the

originating user that created the Job object, or by some other

authorized end-user, such as a member of the job owner's

security group.

'job-canceled-by-operator': The job was canceled by the operator

using the Cancel-Job request, i.e., by a user who has been

authenticated as having operator privileges (whether local or

remote). If the security policy is to allow anyone to cancel

anyone's job, then this value may be used when the job is

canceled by other than the owner of the job. For such a

security policy, in effect, everyone is an operator as far as

canceling jobs with IPP is concerned.

'job-canceled-at-device': The job was canceled by an unidentified

local user, i.e., a user at a console at the device.

'aborted-by-system': The job (1) is in the process of being

aborted, (2) has been aborted by the system and placed in the '

aborted' state, or (3) has been aborted by the system and placed

in the 'pending-held' state, so that a user or operator can

manually try the job again.

'processing-to-stop-point': The requester has issued a Cancel-Job

operation or the Printer object has aborted the job, but is

still performing some actions on the job until a specified stop

point occurs or job termination/cleanup is completed.

This reason is recommended to be used in conjunction with the '

processing' job state to indicate that the Printer object is

still performing some actions on the job while the job remains

in the 'processing' state. After all the job's job description

attributes have stopped incrementing, the Printer object moves

the job from the 'processing' state to the 'canceled' or '

aborted' job states.

'service-off-line': The Printer is off-line and accepting no jobs.

All 'pending' jobs are put into the 'pending-held' state. This

situation could be true if the service's or document transform's

input is impaired or broken.

'job-completed-successfully': The job completed successfully.

'job-completed-with-warnings': The job completed with warnings.

'job-completed-with-errors': The job completed with errors (and

possibly warnings too).

4.3.9 job-state-message (text(MAX))

This attribute specifies information about the "job-state" and "job-

state-reasons" attributes in human readable text. If the Printer

object supports this attribute, the Printer object MUST be able to

generate this message in any of the natural languages identified by

the Printer's "generated-natural-language-supported" attribute (see

the "attributes-natural-language" operation attribute specified in

Section 3.1.4.1).

Note: the value SHOULD NOT contain additional information not

contained in the values of the "job-state" and "job-states-reasons"

attributes, such as interpreter error information. Otherwise,

application programs might attempt to parse the (localized text).

For such additional information such as interpreter errors for

application program consumption, a new attribute with keyword values,

needs to be developed and registered.

4.3.10 number-of-documents (integer(0:MAX))

This attribute indicates the number of documents in the job, i.e.,

the number of Send-Document, Send-URI, Print-Job, or Print-URI

operations that the Printer has accepted for this job, regardless of

whether the document data has reached the Printer object or not.

Implementations supporting the OPTIONAL Create-Job/Send-

Document/Send-URI operations SHOULD support this attribute so that

clients can query the number of documents in each job.

4.3.11 output-device-assigned (name(127))

This attribute identifies the output device to which the Printer

object has assigned this job. If an output device implements an

embedded Printer object, the Printer object NEED NOT set this

attribute. If a print server implements a Printer object, the value

MAY be empty (zero-length string) or not returned until the Printer

object assigns an output device to the job. This attribute is

particularly useful when a single Printer object support multiple

devices (so called "fan-out").

4.3.12 time-at-creation (integer(0:MAX))

This attribute indicates the point in time at which the Job object

was created. In order to populate this attribute, the Printer object

uses the value in its "printer-up-time" attribute at the time the Job

object is created.

4.3.13 time-at-processing (integer(0:MAX))

This attribute indicates the point in time at which the Job object

began processing. In order to populate this attribute, the Printer

object uses the value in its "printer-up-time" attribute at the time

the Job object is moved into the 'processing' state for the first

time.

4.3.14 time-at-completed (integer(0:MAX))

This attribute indicates the point in time at which the Job object

completed (or was cancelled or aborted). In order to populate this

attribute, the Printer object uses the value in its "printer-up-time"

attribute at the time the Job object is moved into the 'completed' or

'canceled' or 'aborted' state.

4.3.15 number-of-intervening-jobs (integer(0:MAX))

This attribute indicates the number of jobs that are "ahead" of this

job in the relative chronological order of expected time to complete

(i.e., the current scheduled order). For efficiency, it is only

necessary to calculate this value when an operation is performed that

requests this attribute.

4.3.16 job-message-from-operator (text(127))

This attribute provides a message from an operator, system

administrator or "intelligent" process to indicate to the end user

the reasons for modification or other management action taken on a

job.

4.3.17 job-k-octets (integer(0:MAX))

This attribute specifies the total size of the document(s) in K

octets, i.e., in units of 1024 octets requested to be processed in

the job. The value MUST be rounded up, so that a job between 1 and

1024 octets MUST be indicated as being 1, 1025 to 2048 MUST be 2,

etc.

This value MUST NOT include the multiplicative factors contributed by

the number of copies specified by the "copies" attribute, independent

of whether the device can process multiple copies without making

multiple passes over the job or document data and independent of

whether the output is collated or not. Thus the value is independent

of the implementation and indicates the size of the document(s)

measured in K octets independent of the number of copies.

This value MUST also not include the multiplicative factor due to a

copies instruction embedded in the document data. If the document

data actually includes replications of the document data, this value

will include such replication. In other words, this value is always

the size of the source document data, rather than a measure of the

hardcopy output to be produced.

Note: This attribute and the following two attributes ("job-

impressions" and "job-media-sheets") are not intended to be counters;

they are intended to be useful routing and scheduling information if

known. For these three attributes, the Printer object may try to

compute the value if it is not supplied in the create request. Even

if the client does supply a value for these three attributes in the

create request, the Printer object MAY choose to change the value if

the Printer object is able to compute a value which is more accurate

than the client supplied value. The Printer object may be able to

determine the correct value for these three attributes either right

at job submission time or at any later point in time.

4.3.18 job-impressions (integer(0:MAX))

This attribute specifies the total size in number of impressions of

the document(s) being submitted (see the definition of impression in

section 13.2.5).

As with "job-k-octets", this value MUST NOT include the

multiplicative factors contributed by the number of copies specified

by the "copies" attribute, independent of whether the device can

process multiple copies without making multiple passes over the job

or document data and independent of whether the output is collated or

not. Thus the value is independent of the implementation and

reflects the size of the document(s) measured in impressions

independent of the number of copies.

As with "job-k-octets", this value MUST also not include the

multiplicative factor due to a copies instruction embedded in the

document data. If the document data actually includes replications

of the document data, this value will include such replication. In

other words, this value is always the number of impressions in the

source document data, rather than a measure of the number of

impressions to be produced by the job.

See the Note in the "job-k-octets" attribute that also applies to

this attribute.

4.3.19 job-media-sheets (integer(0:MAX))

This attribute specifies the total number of media sheets to be

produced for this job.

Unlike the "job-k-octets" and the "job-impressions" attributes, this

value MUST include the multiplicative factors contributed by the

number of copies specified by the "copies" attribute and a 'number of

copies' instruction embedded in the document data, if any. This

difference allows the system administrator to control the lower and

upper bounds of both (1) the size of the document(s) with "job-k-

octets-supported" and "job-impressions-supported" and (2) the size of

the job with "job-media-sheets-supported".

See the Note in the "job-k-octets" attribute that also applies to

this attribute.

4.3.20 job-k-octets-processed (integer(0:MAX))

This attribute specifies the total number of octets processed in K

octets, i.e., in units of 1024 octets so far. The value MUST be

rounded up, so that a job between 1 and 1024 octets inclusive MUST be

indicated as being 1, 1025 to 2048 inclusive MUST be 2, etc.

For implementations where multiple copies are produced by the

interpreter with only a single pass over the data, the final value

MUST be equal to the value of the "job-k-octets" attribute. For

implementations where multiple copies are produced by the interpreter

by processing the data for each copy, the final value MUST be a

multiple of the value of the "job-k-octets" attribute.

Note: This attribute and the following two attributes ("job-

impressions-completed" and "job-sheets-completed") are intended to be

counters. That is, the value for a job that has not started

processing MUST be 0. When the job's "job-state" is 'processing' or

'processing-stopped', this value is intended to contain the amount of

the job that has been processed to the time at which the attributes

are requested.

4.3.21 job-impressions-completed (integer(0:MAX))

This job attribute specifies the number of impressions completed for

the job so far. For printing devices, the impressions completed

includes interpreting, marking, and stacking the output.

See the note in "job-k-octets-processed" which also applies to this

attribute.

4.3.22 job-media-sheets-completed (integer(0:MAX))

This job attribute specifies the media-sheets completed marking and

stacking for the entire job so far whether those sheets have been

processed on one side or on both.

See the note in "job-k-octets-processed" which also applies to this

attribute.

4.3.23 attributes-charset (charset)

This REQUIRED attribute is populated using the value in the client

supplied "attributes-charset" attribute in the create request. It

identifies the charset (coded character set and encoding method) used

by any Job attributes with attribute syntax 'text' and 'name' that

were supplied by the client in the create request. See Section 3.1.4

for a complete description of the "attributes-charset" operation

attribute.

This attribute does not indicate the charset in which the 'text' and

'name' values are stored internally in the Job object. The internal

charset is implementation-defined. The IPP object MUST convert from

whatever the internal charset is to that being requested in an

operation as specified in Section 3.1.4.

4.3.24 attributes-natural-language (naturalLanguage)

This REQUIRED attribute is populated using the value in the client

supplied "attributes-natural-language" attribute in the create

request. It identifies the natural language used for any Job

attributes with attribute syntax 'text' and 'name' that were supplied

by the client in the create request. See Section 3.1.4 for a

complete description of the "attributes-natural-language" operation

attribute. See Sections 4.1.1.2 and 4.1.2.2 for how a Natural

Language Override may be supplied explicitly for each 'text' and '

name' attribute value that differs from the value identified by the

"attributes-natural-language" attribute.

4.4 Printer Description Attributes

These attributes form the attribute group called "printer-

description". The following table summarizes these attributes, their

syntax, and whether or not they are REQUIRED for a Printer object to

support. If they are not indicated as REQUIRED, they are OPTIONAL.

The maximum size in octets for 'text' and 'name' attributes is

indicated in parenthesizes.

Note: How these attributes are set by an Administrator is outside the

scope of this specification.

+----------------------------+----------------------+----------------+

Attribute Syntax REQUIRED?

+----------------------------+----------------------+----------------+

printer-uri-supported 1setOf uri REQUIRED

+----------------------------+----------------------+----------------+

uri-security-supported 1setOf type2 keyword REQUIRED

+----------------------------+----------------------+----------------+

printer-name name (127) REQUIRED

+----------------------------+----------------------+----------------+

printer-location text (127)

+----------------------------+----------------------+----------------+

printer-info text (127)

+----------------------------+----------------------+----------------+

printer-more-info uri

+----------------------------+----------------------+----------------+

printer-driver-installer uri

+----------------------------+----------------------+----------------+

printer-make-and-model text (127)

+----------------------------+----------------------+----------------+

printer-more-info- uri

manufacturer

+----------------------------+----------------------+----------------+

printer-state type1 enum REQUIRED

+----------------------------+----------------------+----------------+

printer-state-reasons 1setOf type2 keyword

+----------------------------+----------------------+----------------+

printer-state-message text (MAX)

+----------------------------+----------------------+----------------+

operations-supported 1setOf type2 enum REQUIRED

+----------------------------+----------------------+----------------+

charset-configured charset REQUIRED

+----------------------------+----------------------+----------------+

charset-supported 1setOf charset REQUIRED

+----------------------------+----------------------+----------------+

natural-language-configured naturalLanguage REQUIRED

+----------------------------+----------------------+----------------+

generated-natural-language- 1setOf REQUIRED

supported naturalLanguage

+----------------------------+----------------------+----------------+

document-format-default mimeMediaType REQUIRED

+----------------------------+----------------------+----------------+

document-format- 1setOf REQUIRED

supported mimeMediaType

+----------------------------+----------------------+----------------+

printer-is-accepting-jobs boolean REQUIRED

+----------------------------+----------------------+----------------+

queued-job-count integer (0:MAX) RECOMMENDED

+----------------------------+----------------------+----------------+

+----------------------------+----------------------+----------------+

Attribute Syntax REQUIRED?

+----------------------------+----------------------+----------------+

printer-message-from- text (127)

operator

+----------------------------+----------------------+----------------+

color-supported boolean

+----------------------------+----------------------+----------------+

reference-uri-schemes- 1setOf uriScheme

supported

+----------------------------+----------------------+----------------+

pdl-override-supported type2 keyword REQUIRED

+----------------------------+----------------------+----------------+

printer-up-time integer (1:MAX) REQUIRED

+----------------------------+----------------------+----------------+

printer-current-time dateTime

+----------------------------+----------------------+----------------+

multiple-operation-time-out integer (1:MAX)

+----------------------------+----------------------+----------------+

compression-supported 1setOf type3 keyword

+----------------------------+----------------------+----------------+

job-k-octets-supported rangeOfInteger

(0:MAX)

+----------------------------+----------------------+----------------+

job-impressions-supported rangeOfInteger

(0:MAX)

+----------------------------+----------------------+----------------+

job-media-sheets-supported rangeOfInteger

(0:MAX)

+----------------------------+----------------------+----------------+

4.4.1 printer-uri-supported (1setOf uri)

This REQUIRED Printer attribute contains at least one URI for the

Printer object. It OPTIONALLY contains more than one URI for the

Printer object. An administrator determines a Printer object's

URI(s) and configures this attribute to contain those URIs by some

means outside the scope of IPP/1.0. The precise format of this URI

is implementation dependent and depends on the protocol. See the

next section for a description "uri-security-supported" which is the

REQUIRED companion attribute to this "printer-uri-supported"

attribute. See section 2.4 on Printer object identity and section

8.2 on security and URIs for more information.

4.4.2 uri-security-supported (1setOf type2 keyword)

This REQUIRED Printer attribute MUST have the same cardinality

(contain the same number of values) as the "printer-uri-supported"

attribute. This attribute identifies the security mechanisms used

for each URI listed in the "printer-uri-supported" attribute. The "i

th" value in "uri-security-supported" corresponds to the "i th" value

in "printer-uri-supported" and it describes the security mechanisms

used for accessing the Printer object via that URI. The following

standard values are defined:

'none': There are no secure communication channel protocols in use

for the given URI.

'ssl3': SSL3 [SSL] is the secure communications channel protocol in

use for the given URI.

Consider the following example. For a single Printer object, an

administrator configures the "printer-uri-supported" and "uri-

security-supported" attributes as follows:

"printer-uri-supported": 'http://acme.com/open-use-printer', '

http://acme.com/restricted-use-printer', '

http://acme.com/private-printer'

"uri-security-supported": 'none', 'none', 'ssl3'

In this case, one Printer object has three URIs.

- For the first URI, 'http://acme.com/open-use-printer', the value

'none' in "uri-security-supported" indicates that there is no

secure channel protocol configured to run under HTTP. The name

implies that there is no Basic or Digest authentication being

used, but it is up to the client to determine that while using

HTTP underneath the IPP application protocol.

- For the second URI, 'http://acme.com/restricted-use-printer', the

value 'none' in "uri-security-supported" indicates that there is

no secure channel protocol configured to run under HTTP. In

this case, although the name does imply that there is some sort

of Basic or Digest authentication being used within HTTP, it is

up to the client to determine that while using HTTP and by

processing any '401 Unauthorized' HTTP error messages.

- For the third URI, 'http://acme.com/private-printer', the value '

ssl3' in "uri-security-supported" indicates that SSL3 is being

used to secure the channel. The client SHOULD be prepared to

use SSL3 framing to negotiate an acceptable ciphersuite to use

while communicating with the Printer object. In this case, the

name implies the use of a secure communications channel, but the

fact is made explicit by the presence of the 'ssl3' value in

"uri-security-supported". The client does not need to resort to

understanding which security it must use by following naming

conventions or by parsing the URI to determine which security

mechanisms are implied.

It is expected that many IPP Printer objects will be configured to

support only one channel (either configured to use SSL3 access or

not), and will therefore only ever have one URI listed in the

"printer-uri-supported" attribute. No matter the configuration of

the Printer object (whether it has only one URI or more than one

URI), a client MUST supply only one URI in the target "printer-uri"

operation attribute.

4.4.3 printer-name (name(127))

This REQUIRED Printer attribute contains the name of the Printer

object. It is a name that is more end-user friendly than a URI. An

administrator determines a printer's name and sets this attribute to

that name. This name may be the last part of the printer's URI or it

may be unrelated. In non-US-English locales, a name may contain

characters that are not allowed in a URI.

4.4.4 printer-location (text(127))

This Printer attribute identifies the location of the device. This

could include things like: "in Room 123A, second floor of building

XYZ".

4.4.5 printer-info (text(127))

This Printer attribute identifies the descriptive information about

this Printer object. This could include things like: "This printer

can be used for printing color transparencies for HR presentations",

or "Out of courtesy for others, please print only small (1-5 page)

jobs at this printer", or even "This printer is going away on July 1,

1997, please find a new printer".

4.4.6 printer-more-info (uri)

This Printer attribute contains a URI used to obtain more information

about this specific Printer object. For example, this could be an

HTTP type URI referencing an HTML page accessible to a Web Browser.

The information obtained from this URI is intended for end user

consumption. Features outside the scope of IPP can be accessed from

this URI. The information is intended to be specific to this printer

instance and site specific services (e.g. job pricing, services

offered, end user assistance). The device manufacturer may initially

populate this attribute.

4.4.7 printer-driver-installer (uri)

This Printer attribute contains a URI to use to locate the driver

installer for this Printer object. This attribute is intended for

consumption by automata. The mechanics of print driver installation

is outside the scope of IPP. The device manufacturer may initially

populate this attribute.

4.4.8 printer-make-and-model (text(127))

This Printer attribute identifies the make and model of the device.

The device manufacturer may initially populate this attribute.

4.4.9 printer-more-info-manufacturer (uri)

This Printer attribute contains a URI used to obtain more information

about this type of device. The information obtained from this URI is

intended for end user consumption. Features outside the scope of IPP

can be accessed from this URI (e.g., latest firmware, upgrades, print

drivers, optional features available, details on color support). The

information is intended to be germane to this printer without regard

to site specific modifications or services. The device manufacturer

may initially populate this attribute.

4.4.10 printer-state (type1 enum)

This REQUIRED Printer attribute identifies the current state of the

device. The "printer-state reasons" attribute augments the

"printer-state" attribute to give more detailed information about the

Printer in the given printer state.

A Printer object need only update this attribute before responding to

an operation which requests the attribute; the Printer object NEED

NOT update this attribute continually, since asynchronous event

notification is not part of IPP/1.0. A Printer NEED NOT implement

all values if they are not applicable to a given implementation.

The following standard enum values are defined:

Value Symbolic Name and Description

'3' 'idle': If a Printer receives a job (whose required

resources are ready) while in this state, such a job

MUST transit into the 'processing' state immediately.

If the "printer-state-reasons" attribute contains any

reasons, they MUST be reasons that would not prevent a

job from transiting into the 'processing' state

immediately, e.g., 'toner-low'. Note: if a Printer

controls more than one output device, the above

definition implies that a Printer is 'idle' if at

least one output device is idle.

'4' 'processing': If a Printer receives a job (whose required

resources are ready) while in this state, such a job

MUST transit into the 'pending' state immediately.

Such a job MUST transit into the 'processing' state

only after jobs ahead of it complete. If the

"printer-state-reasons" attribute contains any

reasons, they MUST be reasons that do not prevent the

current job from printing, e.g. 'toner-low'. Note:

if a Printer controls more than one output device, the

above definition implies that a Printer is '

processing' if at least one output device is

processing, and none is idle.

'5' 'stopped': If a Printer receives a job (whose required

resources are ready) while in this state, such a job

MUST transit into the 'pending' state immediately.

Such a job MUST transit into the 'processing' state

only after some human fixes the problem that stopped

the printer and after jobs ahead of it complete

processing. If supported, the "printer-state-reasons"

attribute MUST contain at least one reason, e.g. '

media-jam', which prevents it from either processing

the current job or transitioning a 'pending' job to

the 'processing' state.

Note: if a Printer controls more than one output

device, the above definition implies that a Printer is

'stopped' only if all output devices are stopped.

Also, it is tempting to define 'stopped' as when a

sufficient number of output devices are stopped and

leave it to an implementation to define the sufficient

number. But such a rule complicates the definition of

'stopped' and 'processing'. For example, with this

alternate definition of 'stopped', a job can move from

'pending' to 'processing' without human intervention,

even though the Printer is stopped.

4.4.11 printer-state-reasons (1setOf type2 keyword)

This Printer attribute supplies additional detail about the device's

state.

Each keyword value MAY have a suffix to indicate its level of

severity. The three levels are: report (least severe), warning, and

error (most severe).

- '-report': This suffix indicates that the reason is a "report".

An implementation may choose to omit some or all reports. Some

reports specify finer granularity about the printer state;

others serve as a precursor to a warning. A report MUST contain

nothing that could affect the printed output.

- '-warning': This suffix indicates that the reason is a "warning".

An implementation may choose to omit some or all warnings.

Warnings serve as a precursor to an error. A warning MUST

contain nothing that prevents a job from completing, though in

some cases the output may be of lower quality.

- '-error': This suffix indicates that the reason is an "error".

An implementation MUST include all errors. If this attribute

contains one or more errors, printer MUST be in the stopped

state.

If the implementation does not add any one of the three suffixes, all

parties MUST assume that the reason is an "error".

If a Printer object controls more than one output device, each value

of this attribute MAY apply to one or more of the output devices. An

error on one output device that does not stop the Printer object as a

whole MAY appear as a warning in the Printer's "printer-state-reasons

attribute". If the "printer-state" for such a Printer has a value of

'stopped', then there MUST be an error reason among the values in the

"printer-state-reasons" attribute.

The following standard keyword values are defined:

'other': The device has detected an error other than one listed in

this document.

'none': There are not reasons. This state reason is semantically

equivalent to "printer-state-reasons" without any value.

'media-needed': A tray has run out of media.

'media-jam': The device has a media jam.

'paused': Someone has paused the Printer object. In this state, a

Printer MUST NOT produce printed output, but it MUST perform

other operations requested by a client. If a Printer had been

printing a job when the Printer was paused, the Printer MUST

resume printing that job when the Printer is no longer paused

and leave no evidence in the printed output of such a pause.

'shutdown': Someone has removed a Printer object from service, and

the device may be powered down or physically removed. In this

state, a Printer object MUST NOT produce printed output, and

unless the Printer object is realized by a print server that is

still active, the Printer object MUST perform no other

operations requested by a client, including returning this

value. If a Printer object had been printing a job when it was

shutdown, the Printer NEED NOT resume printing that job when the

Printer is no longer shutdown. If the Printer resumes printing

such a job, it may leave evidence in the printed output of such

a shutdown, e.g. the part printed before the shutdown may be

printed a second time after the shutdown.

'connecting-to-device': The Printer object has scheduled a job on

the output device and is in the process of connecting to a

shared network output device (and might not be able to actually

start printing the job for an arbitrarily long time depending on

the usage of the output device by other servers on the network).

'timed-out': The server was able to connect to the output device

(or is always connected), but was unable to get a response from

the output device.

'stopping': The Printer object is in the process of stopping the

device and will be stopped in a while. When the device is

stopped, the Printer object will change the Printer object's

state to 'stopped'. The 'stopping-warning' reason is never an

error, even for a Printer with a single output device. When an

output-device ceases accepting jobs, the Printer will have this

reason while the output device completes printing.

'stopped-partly': When a Printer object controls more than one

output device, this reason indicates that one or more output

devices are stopped. If the reason is a report, fewer than half

of the output devices are stopped. If the reason is a warning,

fewer than all of the output devices are stopped.

'toner-low': The device is low on toner.

'toner-empty': The device is out of toner.

'spool-area-full': The limit of persistent storage allocated for

spooling has been reached.

'cover-open': One or more covers on the device are open.

'interlock-open': One or more interlock devices on the printer are

unlocked.

'door-open': One or more doors on the device are open.

'input-tray-missing': One or more input trays are not in the

device.

'media-low': At least one input tray is low on media.

'media-empty': At least one input tray is empty.

'output-tray-missing': One or more output trays are not in the

device

'output-area-almost-full': One or more output area is almost full

(e.g. tray, stacker, collator).

'output-area-full': One or more output area is full. (e.g. tray,

stacker, collator)

'marker-supply-low': The device is low on at least one marker

supply. (e.g. toner, ink, ribbon)

'marker-supply-empty: The device is out of at least one marker

supply. (e.g. toner, ink, ribbon)

'marker-waste-almost-full': The device marker supply waste

receptacle is almost full.

'marker-waste-full': The device marker supply waste receptacle is

full.

'fuser-over-temp': The fuser temperature is above normal.

'fuser-under-temp': The fuser temperature is below normal.

'opc-near-eol': The optical photo conductor is near end of life.

'opc-life-over': The optical photo conductor is no longer

functioning.

'developer-low': The device is low on developer.

'developer-empty: The device is out of developer.

'interpreter-resource-unavailable': An interpreter resource is

unavailable (i.e. font, form)

4.4.12 printer-state-message (text(MAX))

This Printer attribute specifies the additional information about the

printer state and printer state reasons in human readable text. If

the Printer object supports this attribute, the Printer object MUST

be able to generate this message in any of the natural languages

identified by the Printer's "generated-natural-language-supported"

attribute (see the "attributes-natural-language" operation attribute

specified in Section 3.1.4.1).

4.4.13 operations-supported (1setOf type2 enum)

This REQUIRED Printer attribute specifies the set of supported

operations for this Printer object and contained Job objects. All

32-bit enum values for this attribute MUST NOT exceed 0x8FFF, since

these values are passed in two octets in each Protocol request

[RFC2565].

The following standard enum and "operation-id" (see section 3.1.2)

values are defined:

Value Operation Name

----------------- -------------------------------------

第一页    上一页    第4页/共7页    下一页    最后页
第01页 第02页 第03页 第04页 第05页 第06页 第07页 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有