javax.print

## 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

    All Methods Instance Methods Abstract Methods Concrete Methods
    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 inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface javax.print.PrintService

      `addPrintServiceAttributeListener, createPrintJob, equals, getAttribute, getAttributes, getDefaultAttributeValue, getName, getServiceUIFactory, getSupportedAttributeCategories, getSupportedAttributeValues, getSupportedDocFlavors, getUnsupportedAttributes, hashCode, isAttributeCategorySupported, isAttributeValueSupported, isDocFlavorSupported, removePrintServiceAttributeListener`

- - ### Constructor Detail

    - #### StreamPrintService

          protected StreamPrintService(OutputStream out)

      Constructs a StreamPrintService object.
      Parameters:
        `out` - stream to which to send formatted print data.

  - ### Method Detail

    - #### 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 @see DocFlavor.
      Returns:
        mime type identifying the output format.

    - #### 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:
        if this `StreamPrintService` has been disposed

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.