Skip to content

Use Document Streams


Introduction

As of version 5.7.0, PLOSSYS 5 supports document streams.

Document streams are the Output Engine way to ensure that a series of individual documents can be printed without being interrupted by other documents.

Caution - risk of confusion

Be aware that a document stream differs fundamentally from the PLOSSYS 4 set functionality. Please read this document carefully!

Document streams work by giving high priority to all individual documents belonging to the document stream currently being printed and blocking the printer for all other documents for a configurable period of time. The members of a document stream are identified by a unique stream identifier assigned to each document of the stream. The last document of the stream should have an end identifier with the same value as the stream identifier.

A document stream begins when the first document of the stream is processed. PLOSSYS Output Engine does not wait until all of the documents in the stream have arrived, but documents that have already arrived will be printed immediately. The document stream is then active until the last document of the stream has been printed (identified by its end identifier) or no more documents arrive within the configurable timeout. As long as a document stream is active the assigned printer is locked. No other documents can be output.

The order of documents in a stream can not be changed. Documents will be printed in the same order as they arrive.

After the document stream is finished, the printer will continue with the next document in the queue.

Hint - document streams in PLOSSYS Administrator

In PLOSSYS Administrator, jobs belonging to a document stream are marked with a B, for example icon of a job marked as part of a document stream in PLOSSYS Administrator. Printers blocked by a document stream are marked with a B as well, for example icon of a printer blocked by a document stream in PLOSSYS Administrator.


Command Line Clients


send2pls

To print a document stream with the command line client send2pls, simply add the stream identifier to the IPP parameters using the -param option. The identifier must be preceded by documentStreamId=. The end identifier must be preceded by documentStreamEnd=.

Example:

send2pls -param "documentStreamId=12345678-1234-1234-1234-123456789012" ...all other parameters...

For the last document of the stream:

send2pls -param "documentStreamEnd=12345678-1234-1234-1234-123456789012" ...all other parameters...

For Implementers

Printing jobs as document streams can only be done by using the IPP protocol.

To do this, the client needs to create a unique stream identifier and assign it to each document of the stream. The last document of the stream should have an end identifier with the same value as the stream identifier. This helps the printer to detect the end of the stream and release the printer lock before the timeout is reached.

The unique identifier of the documents is transferred in the IPP attribute seal-attributes-v2 of the attribute group operation-attributes-tag. The attribute seal-attributes-v2 is an array of strings. The identifier is transferred as a single array entry with the syntax documentStreamId=<identifier>. The identifier may only consist of the characters a-z, A-Z, 0-9, -, _. The identifier must be at least 1 character long.

The end identifier is transferred as a string with the syntax documentStreamEnd=<identifier>.

In documents of the document stream, only documentStreamId (a UUID is recommended) or documentStreamEnd must be transferred. Both attributes may also be transferred for the last document.

At the time of printing, the documentStreamId must be unique for the executing printer. Once the document stream has been completed, the ID can also be reused.

The identifier is stored in the job database and can be queried via the Output Engine REST-API.

The printer lock timeout can be configured with the environment variable DOCUMENT_STREAM_TIMEOUT for the seal-controller service. The timeout is specified as a string in the usual human-readable form. The default is 1m (1 minute). For more information, refer to DOCUMENT_STREAM_TIMEOUT.


Back to top