Output Devices

Top  Previous  Next

When jobs are received by the server and delivered to a remote location, the output is delivered to a remote device, a term used somewhat loosely. A remote device is a printer, file, or command line that is printed to, copied to, or executed when a job's data is delivered.  In the case of a browser client, there is one "device" -- just the browser itself.

 

Devices have a target, which is where the document is sent at the remote location.  This can be a printer, a file, or a program.  Printers can be reached through the local spooler, or directly by UNC path or network address and port.

 

System locations support any number of remote devices. Whenever a system client logs into the server, it generates a list of printers at that location and creates output device records for any printers not previously defined.  These auto-created records are initially disabled, but can easily be enabled with the toolbar.

 

The top bar of the window is a location selector.  Each output device is specific to a location, so the location is selected first and devices for that location are displayed.

 

 

List Mode Buttons

Add a record

Edit the selected record (or double-click the record)

Filter text to filter the records to those containing the text

Enable selected records

Disable selected records

Download to download a CSV file of the records

Resize columns to fit their longest content

Reload the list of records

 

Edit Mode Buttons

Save the record, return to list mode

Delete the record, after validation

Copy or rename the record

Close without saving, and return to list mode

 

 

Fields

 

Location ID is non-editable, and is the parent record of this device record.

 

Device ID identifies this device within the location.

 

Name is an information field.

 

Device is inactive, if checked, disables this device so that no jobs can be processed for it.

 

Type selects the type of device, and determines what other fields are available.

Printer devices have a target that is a local printer where the location's system client is installed

File devices have a target that is a file name pattern

Command devices have a target that is a command line to run on the remote system

Network or Shared Printer is a direct output device where raw print documents can be sent

 

Filter is a server-side command line that can be used to modify the input file before it is sent to the output device.  Filters should be designed to accept two or three arguments, for the input file, the output file, and the error file.  The filter should read the input file, create the output file, and if an error occurs, write a message to the error file.  Use tags in the filter to identify these three files:

%i or {file} is the input file argument

%o or {respfile} is the output file argument

%e or {errfile} is the error file argument

 

Additional built in tags include:

{basename} original filename without extension from path or email source

{filename} original filename from path or email source

{path} original directory path from path source

{port} port number from port source

{ext} or {type} file extension

{to}, {replyto} {from}, {subject} from email source

{compid}, {locid}, {devid} output device fields

{srcid} source ID of the input source

{*}, {**} a string of all properties in name=value, line-feed delimited pairs.  The value for {*} is URL-encoded, and the value for {**} is base64-encoded.  Commands that use these must use appropriate decoding to obtain the values.

 

A filter might look like this:

 

uf100c -i "%i" -o "%o" -e "%e" -p pdf -f example.rul

 

Filters can be used to transform an input file to a format acceptable for delivery to a device.  For example, an XML or plain text file could be transformed into a PDF document using a tool like UnForm, a PCL5 or PCl6 print stream could be converted to an image by GhostPCL, or a Postscript print stream could be converted to PDF by Ghostscript.

 

Notes is an information field.

 

 

Printer Device Fields

 

Printer is the name of the printer on the machine running the system client for this location.  This is a Windows printer name (not its share name), or a Linux destination name.  These names are reported by the system client each time it connects to the server.

 

Allow Raw Printing Of These Formats is a list of print formats that the printer is known to support.  Check only those formats you know are compatible with the printer to prevent invalid print data from reaching the printer.

 

CirrusPrint can print PDF, image, and plain text files using print drivers.  In other cases, if the print data format matches one of the selected formats, it will be sent directly to the printer, bypassing the print driver.  For example, you may use an application that can produce Postscript data.  If the printer supports Postscript, check that box.  When Postscript data is submitted to Cirrusprint, it will be sent directly to the printer unchanged, allowing for features such as duplex or tray selection, as determined by the producing application.  For another example, a print job produced by a print driver before CirrusPrint receives it (such as a printer configured to print to a CirrusPrint inbound source port), will be in the format produced by the driver.  If that format matches one of the checked formats, it will be sent directly to the printer unmodified.

 

Text data is supported for both raw print and driver print jobs.  If you choose one of the two text formats as a raw print format, then text jobs will be sent in raw mode to the printer.  If not, text jobs will be printed with the printer driver.  This enables printing of specially formatted text, such as is common for label printers, in raw mode.  The two raw text formats are "plain  text", and "plain text, force CRLF".  The difference is with CRLF, the system client ensures that the file's line terminators are CR-LF character sequences, which is necessary for laser printers to avoid stair-stepped lines in their default state.

 

If you have both PCL5 and text force CRLF selected, then pcl jobs will also get coding to interpret bare LF characters as CR-LF sequences to avoid stair-stepped lines (this is intended for pcl-based initialization of print jobs that are mostly plain text, not fully graphical jobs, as pcl image data can contain intended bare LF characters).

 

If you check the 'Any other format' option, all documents are sent in raw mode to the printer.  This can enable sending documents to printers that do not support common formats or print drivers, but care must be taken to avoid sending data that is not supported by the device.

 

 

Default Printing Properties applies to PDF files, which are printed using a print driver  Some of these properties are reported by the system client for the selected printer, such as available trays.  Default properties are based on standardized Windows print driver options, and are mapped as appropriate for Linux system clients.

 

The paper size and tray settings are handled differently between Windows and Linux.  In both cases, a custom size will override the size selection offered in the drop-down list.  On Windows, this is unlikely to work because the system client has reported all known sizes supported by the driver and those are presented in the drop-down list.  The same applies to tray selections.

 

On Linux, the client reports only standard paper size and tray selection options.  The CUPS lp command media option is used for both tray and paper size selections that are specific to the printer, so normally the client will construct a command line combining both these values into the media option.  If you use a custom paper size, that will override the paper drop-down selection.  In addition, if the tray drop-down is not selected, the custom paper size can include tray, as well as other media option settings.  In this way, you can specify any set of CUPS media option supported by the printer.  Standard options are described in the CUPS documentation, and printer-specific options are available through CUPS command lines and web interface.

 

https://www.cups.org/doc/options.html

 

Priority and custom size settings are only supported in the Linux client.

 

Windows devices support bitmap printing, which can be turned on for either 300 or 600 dpi print mode.  Using this mode will print PDF files using a raster page image rather than using GDI drawing methods.  In some cases, this can improve image scaling and print performance.

 

 

File Device Fields

 

Target is a file path created on the machine running the system client for this location.  Directories required are automatically created.  The path can contain substitution tags in the format {name} that the system client replaces at the time the file is created.  Here are the standard tags and what they mean:

 

{file} a generated client workfile name for the job document file

{basename} original filename without extension from path or email source

{filename} original filename from path or email source

{path} original directory path from path source

{port} port number from port source

{ext} or {type} file extension

{from}, {subject} from email source

{compid}, {locid}, {devid} output device fields

{srcid} source ID of the input source

{jobid} server job ID

{yyyy}, {yy}, {mm}, {dd}, {ymd} date fragments

{hh}, {mn}, {ss} time fragments

{#}, {##}, {###}, {####}, {#####} auto sequencers to prevent overwrites

 

In addition, user-defined property values can be submitted with a job via the API, or in the case of a path input source, a related .ini file containing lines of name=value pairs.  For example, a property setting mycompid=001 could be referenced as {mycompid} in a path.

 

Here is an example target:

 

D:/Documents/Deliveries/{yyyy}-{mm}/{basename}-{#}.{ext}

 

 

 

Command Device Fields

 

Target is a command line to be run on the machine running the system client for this location.  The command line should contain at least one substitution tag, {file}, which will be replaced with a work file name of the document being delivered.  It can also contain tags for error and response files, as well as other standard property tags created by the job input source.  These file names are generated by the system client, and if the command line specifies them, the command line is expected to write messages to those files.

 

{file} is the work file containing the delivered document

{errfile} is the name of a file to which the command line can write error messages

{respfile} is the name of a file to which the command line can write a status message

{basename} original filename without extension from path or email source

{filename} original filename from path or email source

{path} original directory path from path source

{port} port number from port source

{ext} or {type} file extension

{from}, {subject} from email source

{compid}, {locid}, {devid} output device fields

{srcid} source ID of the input source

{jobid} server job ID

{*}, {**} a string of all properties in name=value, line-feed delimited pairs.  The value for {*} is URL-encoded, and the value for {**} is base64-encoded.  Commands that use these must use appropriate decoding to obtain the values.

 

In addition, user-defined property values can be submitted with a job via the API, or in the case of a path input source, a related .ini file containing lines of name=value pairs.  For example, a property setting mycompid=001 could be referenced as {mycompid} in a path.

 

Here is an example command line, which would rely on a user-defined property "printer":

 

uf100c -i "{file}" -o "windev:{printer}" -f example.rul -p pcl -e "{errfile}"

 

 

Network or Shared Printer Device Fields

 

Target is the network name of the printer.  This can be a network address or hostname, with an optional :port suffix, or a UNC path to a printer share name.  When printing to a network address, the port defaults to 9100 if no :port is provided.

 

Examples:

 

192.168.1.99

pserve1:9102

//PserveA/HP5000

\\PserveA\HP5000

 

Note that to print to a network share on a different machine, the system client service needs to run as a standard user rather than the local system account.  In order to facilitate automatic updates on the client, that user should be an administrative user.

 

Allow Raw Printing Of These Formats is a list of print formats that the printer is known to support.  Check only those formats you know are compatible with the printer to prevent invalid print data from reaching the printer.

 

Network printing is always in raw format, so you must send data formats that are supported by the printer.  Select the formats known to be supported by the printer to prevent incompatible data from being printed as garbage.  If the printer doesn't support the offered formats, you can choose the 'Any other format' option, and ensure that you always send compatible output to the printer.