# Class StreamPrintService

java.lang.Object
javax.print.StreamPrintService

All Implemented Interfaces:
  `PrintService`

public abstract class StreamPrintService extends Object implements PrintService
This class extends `PrintService` and represents a print service that prints data in different formats to a client-provided output stream. This is principally intended for services where the output format is a document type suitable for viewing or archiving. The output format must be declared as a mime type. This is equivalent to an output document flavor where the representation class is always "java.io.OutputStream" An instance of the `StreamPrintService` class is obtained from a `StreamPrintServiceFactory` instance.

Note that a `StreamPrintService` is different from a `PrintService`, which supports a `Destination` attribute. A `StreamPrintService` always requires an output stream, whereas a `PrintService` optionally accepts a `Destination`. A `StreamPrintService` has no default destination for its formatted output. Additionally a `StreamPrintService` is expected to generate output in a format useful in other contexts. `StreamPrintService`'s are not expected to support the `Destination` attribute.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`StreamPrintService(OutputStream out)`
Constructs a `StreamPrintService` object.

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Disposes this `StreamPrintService`.
`abstract String`
`getOutputFormat()`
Returns the document format emitted by this print service.
`OutputStream`
`getOutputStream()`
Gets the output stream.
`boolean`
`isDisposed()`
Returns a `boolean` indicating whether or not this `StreamPrintService` has been disposed.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

### Methods declared in interface PrintService

`addPrintServiceAttributeListener, createPrintJob, equals, getAttribute, getAttributes, getDefaultAttributeValue, getName, getServiceUIFactory, getSupportedAttributeCategories, getSupportedAttributeValues, getSupportedDocFlavors, getUnsupportedAttributes, hashCode, isAttributeCategorySupported, isAttributeValueSupported, isDocFlavorSupported, removePrintServiceAttributeListener`
Modifier and Type
Method
Description
`void`
`addPrintServiceAttributeListener(PrintServiceAttributeListener listener)`
Registers a listener for events on this `PrintService`.
`DocPrintJob`
`createPrintJob()`
Creates and returns a `PrintJob` capable of handling data from any of the supported document flavors.
`boolean`
`equals(Object obj)`
Determines if two services are referring to the same underlying service.
`<T extends PrintServiceAttribute>
T`
`getAttribute(Class<T> category)`
Gets the value of the single specified service attribute.
`PrintServiceAttributeSet`
`getAttributes()`
Obtains this print service's set of printer description attributes giving this Print Service's status.
`Object`
`getDefaultAttributeValue(Class<? extends Attribute> category)`
Determines this print service's default printing attribute value in the given category.
`String`
`getName()`
Returns a string name for this print service which may be used by applications to request a particular print service.
`ServiceUIFactory`
`getServiceUIFactory()`
Returns a factory for UI components which allow users to interact with the service in various roles.
`Class<?>[]`
`getSupportedAttributeCategories()`
Determines the printing attribute categories a client can specify when setting up a job for this print service.
`Object`
`getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes)`
Determines the printing attribute values a client can specify in the given category when setting up a job for this print service.
`DocFlavor[]`
`getSupportedDocFlavors()`
Determines the print data formats a client can specify when setting up a job for this `PrintService`.
`AttributeSet`
`getUnsupportedAttributes(DocFlavor flavor, AttributeSet attributes)`
Identifies the attributes that are unsupported for a print request in the context of a particular `DocFlavor`.
`int`
`hashCode()`
This method should be implemented consistently with `equals(Object)`.
`boolean`
`isAttributeCategorySupported(Class<? extends Attribute> category)`
Determines whether a client can specify the given printing attribute category when setting up a job for this print service.
`boolean`
`isAttributeValueSupported(Attribute attrval, DocFlavor flavor, AttributeSet attributes)`
Determines whether a client can specify the given printing attribute value when setting up a job for this Print Service.
`boolean`
`isDocFlavorSupported(DocFlavor flavor)`
Determines if this print service supports a specific `DocFlavor`.
`void`
`removePrintServiceAttributeListener(PrintServiceAttributeListener listener)`
Removes the print-service listener from this print service.

## Constructor Details

### StreamPrintService

protected StreamPrintService(OutputStream out)
Constructs a `StreamPrintService` object.

Parameters:
  `out` - stream to which to send formatted print data

## Method Details

### getOutputStream

public OutputStream getOutputStream()
Gets the output stream.

Returns:
  the stream to which this service will send formatted print data

### getOutputFormat

public abstract String getOutputFormat()
Returns the document format emitted by this print service. Must be in mimetype format, compatible with the mime type components of `DocFlavors`

Returns:
  mime type identifying the output format
See Also:
  - `DocFlavor`

### dispose

public void dispose()
Disposes this `StreamPrintService`. If a stream service cannot be re-used, it must be disposed to indicate this. Typically the client will call this method. Services which write data which cannot meaningfully be appended to may also dispose the stream. This does not close the stream. It just marks it as not for further use by this service.

### isDisposed

public boolean isDisposed()
Returns a `boolean` indicating whether or not this `StreamPrintService` has been disposed. If this object has been disposed, will return `true`. Used by services and client applications to recognize streams to which no further data should be written.

Returns:
  `true` if this `StreamPrintService` has been disposed; `false` otherwise