Skip to main content
Skip table of contents

(v13) The setteestream operator

This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP

statusdict string setteestream -

Provides a local seekable copy of streamed input in the file named by string . It is not efficient to use this operator for jobs available as local seekable files, or for PDF input (which is independently copied to a local file if provided over streaming input). Also, this operator does not provide a complete copy of multi-file jobs such as TIFF/IT-P1 and DCS files printed directly. DCS and OPI references within a job are not affected.

Note: Any operation that resets the standard input %stdin% such as use of the setstdio operator  will cause setteestream to restart its local file copy from the beginning, losing any content copied up to that point. For example, when using the spool folder, the initial control job which runs the main file is lost while the main file is captured.

Note: This operator is not available in watermark RIPs.

Example:

(local_copy/my_copy.ps) setteestream creates a file called my_copy.ps in the SW/local_copy folder. You can use this operator in a page feature, as follows:

(%os%mystream.ps) statusdict /setteestream get exec

Because input channels can run queries that do not draw anything, for example AppleTalk can run font queries, or run font download jobs, you may want to treat such jobs differently. On the basis of the page feature example above, you can use the StartPainting hook, described in (v13) Other pagedevice hooks and history , to specify the handling of non-graphic and graphic jobs:

TEXT
    <<
    /StartPainting <<
      /MyGraphicJob {globaldict /graphicjob true put} bind
    >>
    /EndJob <<
      /MyEndJob {
        globaldict /graphicjob known {
          %code to handle graphics jobs, if any, here (%os%mystream.ps) (%os%mystreamcompleted.ps) renamefile
        } {
          %code to handle non-graphic jobs here
          (non-graphic job) == (%os%mystream.ps) deletefile
        } ifelse
      } bind
    >>
  >> setpagedevice

If you just want to capture a job and not render anything, for example, as part of a workflow system, you can use the user parameter (v13) NeverRender (user param) in the page feature. Alternatively, you can use the (v13) PageRange (page device) key with an empty array value so that no pages are rendered, which is more efficient.

Once you determine a job is a graphic job, you can completely suppress interpretation whilst continuing to capture the input stream by flushing the file in the StartPainting hook using the file operator flushfile .

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.