
META-INF.modules.java.desktop.classes.javax.print.attribute.standard.package-info Maven / Gradle / Ivy
/*
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* Package {@code javax.print.attribute.standard} contains classes for specific
* printing attributes. The parent package,
* javax.print.attribute, provides classes and interfaces that describe the
* types of Java Print Service attributes and how they can be collected into
* attribute sets.
*
* An attribute represents a printing feature that a print service can provide.
* For each attribute, a print service either does or does not support the
* attribute. For each possible value of a supported attribute, a print service
* either does or does not support the value.
*
* The API requires every print service to support certain attributes; other
* attributes are optional and the service can choose whether or not to support
* them. Each attribute has a set of values that it accepts. The API requires
* every print service to support certain values for certain attributes; other
* attribute values are optional and the service can choose whether or not to
* support them. These support requirements are recorded in the documentation
* for each attribute class.
*
* Package {@code javax.print.attribute.standard} contains standard printing
* attributes and standard printing attribute values that are widely used in the
* printing domain. A print service vendor can provide new vendor-specific
* printing attributes in addition to the standard ones. A vendor can also
* provide vendor-specific extensions (subclasses) of the standard printing
* attributes -- for example, to provide additional vendor-specific values for
* an existing standard attribute. Of course, if a vendor wants clients to be
* able to use any added or extended attributes, the vendor must publish the new
* attribute classes.
*
* Many of the standard attribute classes extend one of the abstract syntax
* classes of the {@code javax.print.attribute} package. These abstract syntax
* classes each represent a different type. The
* EnumSyntax class, for example, represents a type-safe enumeration. The
* abstract syntax class provides a wrapper for the attribute value.
*
* If an attribute class extends {@code EnumSyntax}, and the value of the
* attribute is an IPP-compatible value, the attribute's {@code toString} method
* returns the IPP string representation of the attribute value, such as
* "processing-stopped" for the JobState attribute.
* However, because the {@code EnumSyntax} class is extensible, vendors can
* define their own attribute values. If an attribute uses the
* {@code EnumSyntax} class and is set to one of these vendor-defined values
* then the {@code toString} method will not return the IPP string
* representation of the value.
*
* A printing client application will typically not need to use all the printing
* attribute classes in package javax.print.attribute.standard, just the ones
* that pertain to the application.
*
* The attribute classes in package {@code javax.print.attribute.standard} are
* based on the Internet Printing Protocol (IPP) attributes as defined in the
* Internet RFC document, RFC 2911 Internet Printing Protocol/1.1: Model and
* Semantics dated September 2000. See
* RFC 2911 for more
* information. The descriptive text for each attribute class was taken largely
* from the above documents. The above authors' contribution to the API is
* gratefully acknowledged.
*
*
Attribute Organization
* There are five kinds of printing attributes: doc attributes, print request
* attributes, print job attributes, print service attributes, and
* supported-values attributes.
*
* Doc Attributes
* Doc attributes specify the characteristics of an individual doc and the print
* job settings to be applied to an individual doc. A doc attribute class
* implements interface DocAttribute. A doc
* attribute can appear in a
* DocAttributeSet.
*
* Print Request Attributes
* Print request attributes specify the settings to be applied to a whole print
* job and to all the docs in the print job. A print request attribute class
* implements interface
* PrintRequestAttribute. A print request attribute can appear in a
* PrintRequestAttributeSet.
*
* Some attributes are doc attributes but not print request attributes and may
* only be specified at the doc level. Some attributes are print request
* attributes but not doc attributes and may only be specified at the Print
* Request level. Some attributes are both doc attributes and print request
* attributes and may be specified either at the doc level or at the Print
* Request level.
*
* When specified at the doc level, an attribute applies just to that one doc.
* When specified at the Print Request level, an attribute applies to the whole
* job, including all the docs in the job. However, an attribute specified at
* the doc level overrides an attribute in the same category specified at the
* Print Request level.
*
*
Print Job Attributes
* Print job attributes report the status of a Print Job. A print job attribute
* class implements interface
* PrintJobAttribute. A print job attribute can appear in a
* PrintJobAttributeSet.
*
* Some attributes are both print request attributes and print job attributes; a
* client may include such attributes in a Print Request to specify
* characteristics for the ensuing Print Job, and those attributes then also
* appear in the Print Job's attribute set. Some attributes are print job
* attributes but not print request attributes; the print service itself adds
* these attributes to the Print Job's attribute set.
*
*
Print Service Attributes
* Print service attributes report the status of a print service. A print
* service attribute class implements interface
* PrintServiceAttribute. A print
* service attribute can appear in a
* PrintServiceAttributeSet.
*
* Supported-Values Attributes
* A supported-value attribute indicates the legal values for another attribute
* that a print service supports. A supported-values attribute class implements
* interface
* SupportedValuesAttribute. However, supported-values attributes never
* appear in attribute sets, so there is no restricted
* AttributeSet subinterface for them.
*
* Attribute Table
* The table below lists all the printing attributes. The table shows the
* tagging interfaces each attribute class implements in addition to interface
* Attribute, thus indicating how each
* attribute is used in the API. For each doc attribute and print request
* attribute, the column marked "SupportedValuesAttribute" lists the
* supported-values attribute class, if any, with which a print service
* indicates the supported values for that attribute category.
*
*
* Lists all printing attributes as described above
*
*
* Attribute Class
* Doc
Attribute
* Print
Request
Attribute
* Print
Job
Attribute
* Print
Service
Attribute
* SupportedValuesAttribute
*
*
*
* Compression
* X
*
*
*
*
*
* DocumentName
* X
*
*
*
*
*
* Chromaticity
* X
* X
* X
*
*
*
* Copies
*
* X
* X
*
* CopiesSupported
*
* Finishings
* X
* X
* X
*
*
*
* JobHoldUntil
*
* X
* X
*
*
*
* JobImpressions
*
* X
* X
*
* JobImpressionsSupported
*
* JobKOctets
*
* X
* X
*
* JobKOctetsSupported
*
* JobMediaSheets
*
* X
* X
*
* JobMediaSheetsSupported
*
* JobName
*
* X
* X
*
*
*
* JobPriority
*
* X
* X
*
* JobPrioritySupported
*
* JobSheets
*
* X
* X
*
*
*
* Media
* X
* X
* X
*
*
*
* MediaSize
*
*
*
*
*
*
*
* MultipleDocumentHandling
*
* X
* X
*
*
*
* NumberUp
* X
* X
* X
*
* NumberUpSupported
*
*
* OrientationRequested
* X
* X
* X
*
*
*
* PageRanges
* X
* X
* X
*
*
*
*
* PresentationDirection
* X
* X
* X
*
*
*
* PrinterResolution
* X
* X
* X
*
*
*
* PrintQuality
* X
* X
* X
*
*
*
* RequestingUserName
*
* X
* X
*
*
*
* SheetCollate
* X
* X
* X
*
*
*
* Sides
* X
* X
* X
*
*
*
*
* DateTimeAtCompleted
*
*
* X
*
*
*
* DateTimeAtCreation
*
*
* X
*
*
*
*
* DateTimeAtProcessing
*
*
* X
*
*
*
*
* JobImpressionsCompleted
*
*
* X
*
*
*
*
* JobKOctetsProcessed
*
*
* X
*
*
*
*
* JobMediaSheetsCompleted
*
*
* X
*
*
*
*
* JobMessageFromOperator
*
*
* X
*
*
*
*
* JobOriginatingUserName
*
*
* X
*
*
*
* JobState
*
*
* X
*
*
*
* JobStateReasons
*
* Contains zero or more --
*
*
* X
*
*
*
* -- JobStateReason
*
*
*
*
*
*
* NumberOfDocuments
*
*
* X
*
*
*
*
* NumberOfInterveningJobs
*
*
* X
*
*
*
*
* OutputDeviceAssigned
*
*
* X
*
*
*
* ColorSupported
*
*
*
* X
*
*
* PagesPerMinute
*
*
*
* X
*
*
*
* PagesPerMinuteColor
*
*
*
* X
*
*
*
* PDLOverrideSupported
*
*
*
* X
*
*
*
* PrinterIsAcceptingJobs
*
*
*
* X
*
*
* PrinterInfo
*
*
*
* X
*
*
* PrinterLocation
*
*
*
* X
*
*
*
* PrinterMessageFromOperator
*
*
*
* X
*
*
*
* PrinterMakeAndModel
*
*
*
* X
*
*
* PrinterMoreInfo
*
*
*
* X
*
*
*
* PrinterMoreInfoManufacturer
*
*
*
* X
*
*
* PrinterName
*
*
*
* X
*
*
* PrinterState
*
*
*
* X
*
*
*
* PrinterStateReasons
*
* Contains zero or more --
*
*
*
* X
*
*
* --
* PrinterStateReason
*
*
*
*
*
*
* -- Severity
*
*
*
*
*
*
* QueuedJobCount
*
*
*
* X
*
*
*
* ReferenceUriSchemesSupported
*
*
*
*
*
*
*
*
* Please note: In the {@code javax.print} APIs, a {@code null} reference
* parameter to methods is incorrect unless explicitly documented on the method
* as having a meaningful interpretation. Usage to the contrary is incorrect
* coding and may result in a run time exception either immediately or at some
* later time. {@code IllegalArgumentException} and {@code NullPointerException}
* are examples of typical and acceptable run time exceptions for such cases.
*
* @since 1.4
*/
package javax.print.attribute.standard;