Skip to main content
Skip table of contents

OPC-UA Interface Guide (Smart Connectivity)




Smart Print Controller v4.7.5241.0, Copyright (c) 2023 Global Graphics Software. All rights reserved.

Overview

Smart Print Controller provides a user with two conceptual methods of operations:

  1. Engineer - Installation and setup.
  2. Operator - Manage job submission and review progress.

This 'operator' level of operation can be driven from external clients using an industry-standard interface.

When the Open Platform Communications (OPC) server in Smart Print Controller is enabled an OPC node tree is published. The top-level nodes in this tree represent grouped areas of state and functionality. For example, the Servers section allows:

  • the RIP Server list to be enumerated.
  • the server connection status to be examined.
  • all servers to be restarted.
  • ...and more.

Certificates

Communication between OPC UA clients and servers require both parties to possess their own application certificate. To enable further communication each party must trust the opposing certificate. This trust can be established automatically, programmatically or manually depending on the application's configuration or implementation. The certificate for SPC can be found in %programdata%\Global Graphics Software Ltd\Smart Print Controller\App Certificates\certs should you need to copy it to the Trusted Peer Certificate folder. In this release it is a Self Signed Certificate issued by and for Smart Print Controller.

OPC Nodes

The OPC node mechanism will report when any state changes, allowing clients to react accordingly.

While most exposed values can be read by a client, write-access (or calling a method to request a state change in Smart Print Controller) requires External Control to be granted (See App.IsExternalControlActive). This is an action explicitly performed by the Smart Print Controller operator, resulting in control of the application to be given to the OPC client.

Server Mode

If Smart Print Controller is launched with a /ServerMode command-line argument the application will be launched minimized, with OPC automatically enabled and External Control granted.

Setting App.ServerModeLocked will ensure the application window stays minimized, with no option to be restored to the screen.

OPC Methods

Many published OPC method nodes return a String value indicating their success or error state. In all such cases a check for Success will indicate success, and any other value is an error.

Return ValueDescription
CommandCannotExecuteA command could not run because its execution criteria was not met.
FailedToLoadAppConfigFailed to load an application SPC configuration.
FailedToPreprocessThe PDF could not be preprocessed.
FailedToPrintThe job was submitted, but failed to print.
FailedToRestoreConfigsFailed to restore the HD configs to the original values.
FailedToSetConfigsFailed to update the HD configs to the values required for printing.
FailedtoSetPageRangeFailed to set the page range of a job.
FailedToStartPrintRunThe print run failed to start.
FailedToSubmitFailed to submit the job to the server(s).
FeatureIsDisabledDirect printing is currently disabled.
IncompatibleSmdThe media's printer profile differs from the 'active' profile.
InvalidParameterOne or more of the parameters were invalid.
ItemNotFoundThe specified item was not found.
NoServersAt least one server is required for printing.
PendingConnectionThe HD connection(s) must be connected or disconnected - Not pending.
PreprocessingFailedThe PDF was preprocessed, but was invalid (E.g. It contains non-embedded fonts).
PrintBarNotFoundThe print bar does not appear in the printer profile.
PrintRunIsActiveDirect printing cannot interrupt an active print run.
RequestDeniedThe conditions needed to perform the action were not satisfied.
ServerIsDisabledThe specified server is disabled.
SuccessThe request completed successfully.

Any methods returning data (E.g. JSON, comma-separated values, ...) will be explicitly documented. Callers should check the format of the returned data to see if the call succeeded (otherwise one of the above errors may be returned).

Any methods listed in this documentation include details about their required parameters (if any), and return value.

In the event of an error, please see the Smart Print Controller log file for more information.

OPC Client Library

The following documentation provides guidance on using the Traeger Industry Components GmbH OPC client library for software developers working with Smart Print Controller.

Configuring Custom Message Sizes

The default maximum message sizes used by OPC clients to communicate to the server are sufficient for most use cases. However, to ensure transfer of larger data packets (such as retrieving some job thumbnail images) it may be necessary to configure the OPC client with custom values.

For example:

	Client = new OpcClient();
	Client.Transport.MaxArrayLength = 1024 * 1024 * 50;
	Client.Transport.MaxBufferSize = 1024 * 1024 * 50;
	Client.Transport.MaxMessageSize = 1024 * 1024 * 50;
	Client.Transport.MaxStringLength = 1024 * 1024 * 50;

See here for more information.

Adjusting Communication Timeouts

OPC clients regularly verify the responsiveness of the connection to the OPC server. However, in certain circumstances where the system is under heavy load, maintaining a responsive connection might not always be possible. To mitigate potential issues under such conditions, it is recommended to increase the default communication timeouts.

The example below demonstrates how to adjust the default values:

	var defaultTimeOut = (int)TimeSpan.FromMinutes(10).TotalMilliseconds;
	Client = new OpcClient
	{
	    // Don't auto-disconnect - Dispose the client to explicitly disconnect.
	    DisconnectTimeout = int.MaxValue,
	    KeepAlive = { Interval = defaultTimeOut },
	    SessionTimeout = defaultTimeOut,
	    OperationTimeout = defaultTimeOut,
	    ReconnectTimeout = defaultTimeOut
	};

Please note that the provided examples serve as illustrations, and it's important to tailor the configuration to your specific requirements.

SPCSet

SPCSet is the top-level set containing all available OPC nodes. Immediately underneath this root-level node are a categorized collection of sub-nodes, each encapsulating a different area of behavior.

Section NameDescription
ActiveJobState relating to the currently active job.
ActiveMediaState relating to the currently active media.
AllJobsState relating to all jobs in the Waiting/Print/Completed queues. This tree dynamically includes children named from the GUID of each known job.
AllMediaState relating to all available media.
AllMedia.SelectedMediaState relating to the selected media (See AllMedia.SelectedName).
AppState relating to the entire application.
PrintBarGroupsState relating to the active print bars.
PrinterProfileState relating to the active printer profile.
PrintRunState relating to the print run.
PrintRunConfigState relating to the print configuration (Applies to both media sides).
PrintRunConfig.ConfigSideAThe print configuration specific to media side 'A'.
PrintRunConfig.ConfigSideBThe print configuration specific to media side 'B'.
ServersState relating to the collection of RIP Servers.
SingleJobDescribes the collection of nodes representing a single job, positioned as a child of the WaitingQueue, PrintQueue, or CompletedQueue nodes.
StreamlineDirectState relating to Streamline Direct technology.
WaitingQueueOptionsState relating to the behavior of the Waiting queue.

ActiveJob

State relating to the currently active job.

Properties

NameTypeWritableDescription
CopyCountInt32NoNumber of copies to print.

Writable only for unlocked jobs in the Waiting queue.
CurrentPageUInt32NoPage number of the current processed page.
GuidStringNoUnique job descriptor.
HasLiLoEnabledBooleanNoWhether or not the job can have lead in and/or lead out pages.
HasNonEmbeddedFontsBooleanNoThe result after running job font analysis.
IsAutotunedBooleanNoWhether or not the job has been Autotuned.
IsLockedBooleanNoWhether modifying operations (changes to copy count, job editor, ...) are allowed or not.

Writable only for jobs in the Waiting queue.
IsStreamlineOptimizedBooleanNoWhether Streamline Optimize has processed the job.
JobIdStringNoThe job ID received from the .complete file.
JobLabelStringNoProperty which can be used to group related jobs.
JobPartIdStringNoThe job part ID received from the .complete file.
JobTagStringNoProperty which can be used to attach arbitrary state to a job.

The source of the state comes from an optional JobTag string field in the .complete JSON file written into the Waiting queue hot folder.
The state lasts for the lifetime of the job, and will persist if a job is copied from the Completed queue to the Waiting queue.
Writable only for jobs in the Waiting queue.
LeadInCountInt32NoCount of the lead in pages.
LeadInThumbnailStringNoBASE64-encoded representation of the lead in page thumbnail PNG data.
LeadOutCountInt32NoCount of the lead out pages.
LeadOutThumbnailStringNoBASE64-encoded representation of the lead out page thumbnail PNG data.
NameStringNoThe job name (from the original job file name).
PageCountInt64NoPage count of the document.
PageHeightMmDoubleNoPage height (mm).
PageWidthMmDoubleNoPage width (mm).
PredictedLineSpeedDoubleNoThe Streamline Direct predicted line speed (m/min).
PredictedLineSpeedIndicatorStringNoThe Streamline Direct predicted line speed (Status indicator).

Values:
Unavailable - Analysis unavailable.
Red - Unable to achieve target speed.
Amber - Should achieve target speed.
Green - Will achieve target speed.
PrintabilityStringNoIndicates if a job is printable.

Values:
Unknown
Printable - The job is printable.
WarningProtrusion - The job has some printability issues, but can still be printed
WarningNonEmbeddedFonts - The job has some printability issues, but can potentially still be printed.
Error - The job cannot be printed.
StreamlineIssues - Streamline issues detected.
MediaMismatch - The job requires a media that is not currently active.
StartTimeStringNoWhen the job started printing (ISO 8601).
TargetMediaStringNoThe intended media to use when printing the job.
ThumbnailStringNoBASE64-encoded representation of the job thumbnail PNG data.
TotalPageCountInt64NoPage count of the printed document (PageCount * CopyCount).

ActiveMedia

State relating to the currently active media.

Details

The active media is the one actually being used to print.
The selected media (See AllMedia.SelectedName) is the one highlighted in the application UI.

Properties

NameTypeWritableDescription
AllowColorManagementBooleanNoWhether color management (E.g. ICC profiles) is enabled.
CalibrationDateString[]NoThe date that the PrintFlat calibration was applied to each colorant, if applicable.

Entries match the order of the Colorants list.
CmykImagesIntentOverrideStringNoThis intent overrides all CMYK images. This setting also applies to gray images when 'ColorManageGrayAsCmyk' is true.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
ColorantCurvesString[]NoCollection of colorant calibration curves.

Entries match the order of the Colorants list.
ColorantsString[]NoCollection of supported colorant names.
ColorManageGrayAsCmykBooleanNoWhether to process gray with CMYK color management.
DescriptionStringNoDescription of the media.
DeviceEmulationIccProfileStringNoName of the media's device emulation ICC profile. (See EmulateAnotherPrinter)
EmulateAnotherPrinterBooleanNoWhether the device emulation ICC profile will be used.
HasCalibrationAppliedBoolean[]NoWhether or not a PrintFlat Calibration has been applied to each colorant.

Entries match the order of the Colorants list.
InputCmykIccProfileStringNoName of the media's input CMYK ICC profile.
InputGrayIccProfileStringNoName of the media's input Gray ICC profile. (See ColorManageGrayAsCmyk)
InputRgbIccProfileStringNoName of the media's input RGB ICC profile.
KeepTextBlackBooleanNoWhether to keep text black.
MainRenderingIntentStringNoThis is the default rendering intent. The rendering intents in the document overrides it.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
NameStringNoThe active media name.
OutputIccProfileStringNoName of the media's output ICC profile.
OverrideColorManagementInPdfBooleanNoWhether to override the color management specified in the PDF.
Preserve100BlackBooleanNoWhether to preserve 100% black.
RgbImagesIntentOverrideStringNoThis intent overrides all RGB images.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
TotalAreaCoverageStringNoThis is the Total Area Coverage for the job.
WidthMmDoubleNoThe media width in mm.

AllJobs

State relating to all jobs in the Waiting/Print/Completed queues. This tree dynamically includes children named from the GUID of each known job.

Details

These OPC nodes are fully populated to a consistent state when the OPC server starts, apart from job GUIDs - These nodes are dynamically added and removed as jobs are added and removed to/from the workflow.
(If there are already jobs in the workflow, these GUIDs will exist when the OPC server starts.)

When a job is added to the Waiting queue a GUID node is created containing the job information (containing the same tag names as the ActiveJob node) and that GUID is added to the WaitingQueue array.
The job keeps the same GUID as is travels through the system, moving between the WaitingQueue, PrintingQueue, and CompletedQueue arrays.

The GUID node is removed when the job is removed from the workflow.

See the SingleJob section for a description of all available job-level nodes.

Properties

NameTypeWritableDescription
AutoPrintWaitingQueueJobsBooleanYesWhen enabled, jobs in the Waiting queue will automatically move to the Print queue.

NOTE Only jobs eligible for printing are included.
NOTE Modification requires external control.
AutoStopPrintRunBooleanYesWhen enabled, the print run is automatically stopped when all jobs have been printed.
NOTE Modification requires external control.
CompletedQueueString[]NoCollection of ordered GUIDs representing the jobs in the Completed queue.
CompletedQueueEventsInt32NoCount of node changes made to jobs within the Completed queue.
MonitorJobPerformanceBooleanYesFor internal use only.

NOTE Changes must be applied using App.ApplySettings() before they take effect on the server(s).
NOTE Modification requires external control.
PrintQueueString[]NoCollection of ordered GUIDs representing the jobs in the Print queue.
PrintQueueEventsInt32NoCount of node changes made to jobs within the Print queue.
TransferAllJobsBooleanYesWhen enabled, the print run will copy all jobs over before we start printing.
NOTE Modification requires external control.
WaitingQueueString[]NoCollection of ordered GUIDs representing the jobs in the Waiting queue.
WaitingQueueEventsInt32NoCount of node changes made to jobs within the Waiting queue.

Methods

NameReturnsDescription
CancelJob(String jobGuid)StringCancel a job in the Print queue. (Requires external control)
ChangeActiveMedia(String mediaName)StringChange the active media of the print run. (Requires external control)
ClearCompletedQueue()StringRemove all jobs from the Completed queue. (Requires external control)
DuplicateJob(String jobGuid)StringDuplicate a job in the Waiting queue. (Requires external control)
DuplicateJobWithName(String jobGuid, String jobName)StringDuplicate a job in the Waiting queue with a new name. (Requires external control)

NOTE The job name cannot contain illegal file path characters < > : " / \ | ? *
NOTE The job name cannot be the same as a reserved file name.
DuplicateJobWithNameAndPageSelection(String jobGuid, String jobName, String pageSelection)StringDuplicate a job in the Waiting queue with a new name and a set of selected pages. (Requires external control)

NOTE The job name cannot contain illegal file path characters < > : " / \ | ? *
NOTE The job name cannot be the same as a reserved file name.
NOTE You must provide a valid set of selected pages for the job specified.
Refer to the Page Ranges section of the Smart Print Controller User Guide for more information on valid page selections.
GetJobPageTimings(String jobGuid, Int32 serverIndex)StringReturns per-page RIP timings (seconds) for a single completed job. (Requires external control)

Returns data the form: <PageNumber>:<Interpretation>,<Composite>,<RenderPrepare>,<Print>,<HD_RIP>;...
NOTE Must be called after the job has completed and the print run ends, and before a new print run is started.
NOTE If multiple copies are printed, only data from the first is collected.
NOTE Requires AllJobsNode.MonitorJobPerformance to be enabled and applied prior to printing.
RemoveJob(String jobGuid)StringRemove a job from any queue. (Requires external control)

NOTE A locked job in the waiting queue is considered read-only.
ResubmitJob(String jobGuid)StringResubmit a job from the Completed queue to the Waiting queue. (Requires external control)
SendToPrePress(String jobGuid)StringMove a job from the Waiting queue to the Pre-Press folder. (Requires external control)
SendToPrintQueue(String jobGuid)StringMove a job from the Waiting queue to the Print queue. (Requires external control)
SetPageRange(String jobGuid, String pageRange)StringSet the page range of a job, rebuilding the PDF with the pages specified. (Requires external control)

NOTE Must be called on a job in the Waiting Queue.

AllMedia

State relating to all available media.

Properties

NameTypeWritableDescription
MediaNamesString[]NoCollection of all available media names.

NOTE Media which is incompatible with the current setup will be excluded.
SelectedMediaForIOStringYesCall prior to using the MediaDataIO node. (See InstallMedia()).
SelectedNameStringYesThe selected media name (which may differ from the applied media name).

Valid values can be obtained from MediaNames.
Examine the AllMedia.SelectedMedia node tree to see properties of the selected media.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
SuppressedInkNamesStringYesUser-definable comma-separated list of ink names to suppress. (Requires external control)

NOTE Changes must be applied using App.ApplySettings() before they take effect on the server(s).
NOTE This setting does not persist between application sessions.
NOTE Modification requires external control.

Methods

NameReturnsDescription
DeleteMedia(String mediaName)StringPermanently delete the named media (Use with caution). (Requires external control)

NOTE At least one media entry must always exist.
NOTE The active media should not be deleted.
InspectMedia()StringInspect the contents of a .smd media file. (Requires external control)

Prior to calling InspectMedia() clients should:
- Set SelectedMediaForIO to a unique GUID (which is internally used to reference the media).
- Use the MediaDataIO OPC file object to write the .smd file data. (Closing after use.)

The returned value is JSON in the following format:
- String: Name
- String: Description
- Double: WidthMm
- Bool: DisableColorManagement

NOTE The values returned may be extended in future.
InstallMedia()StringInstall a new .smd media file. (Requires external control)

Prior to calling InstallMedia() clients should:
- Set SelectedMediaForIO to a unique GUID (which is internally used to reference the media).
- Use the MediaDataIO OPC file object to write the .smd file data. (Closing after use.)

NOTE Any existing media with the same name will be overwritten.
InstallMediaWithName(String name)StringInstall a new .smd media file with the name provided. (Requires external control)

Prior to calling InstallMediaWithName() clients should:
- Set SelectedMediaForIO to a unique GUID (which is internally used to reference the media).
- Use the MediaDataIO OPC file object to write the .smd file data. (Closing after use.)

NOTE Any existing media with the same name will be overwritten.
NOTE If the new name is null or empty, the media will be installed with its existing name.

Files

NameDescription
MediaDataIOAllows read/write access to an SMD file. (See SelectedMediaForIO)

NOTE OPC File nodes contain functions which allow access to file content:

  • Open(int fileAccess) - Open the file with the specified fileAccess (1:read, 2:write), returning an integer file handle.
  • Read(int fileHandle, int length) - Read data from an open file handle, returning an array of bytes.
  • Write(int fileHandle, byte[] buffer) - Write/append data to an open file handle.
  • Close(int fileHandle) - Close the file handle after use.

For more information see the OPC documentation.

AllMedia.SelectedMedia

State relating to the selected media (See AllMedia.SelectedName).

Details

Note that when setting new media properties the changes are set in the Smart Media immediately, but changes must be applied using App.ApplySettings() before they take effect on the server(s).

Properties

NameTypeWritableDescription
AllowColorManagementBooleanYesWhether color management (E.g. ICC profiles) is enabled.
NOTE Modification requires external control.
CalibrationDateString[]NoThe date that the PrintFlat calibration was applied to each colorant, if applicable.

Entries match the order of the Colorants list.
CmykImagesIntentOverrideStringYesThis intent overrides all CMYK images. This setting also applies to gray images when 'ColorManageGrayAsCmyk' is true.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
NOTE Modification requires external control.
ColorantCurvesString[]NoCollection of colorant calibration curves.

Entries match the order of the Colorants list.
ColorantsString[]NoCollection of supported colorant names.
ColorManageGrayAsCmykBooleanYesWhether to process gray with CMYK color management.

NOTE Requires InputGrayIccProfile to be defined.
NOTE Modification requires external control.
DescriptionStringYesDescription of the media.
NOTE Modification requires external control.
DeviceEmulationIccProfileStringNoName of the media's device emulation ICC profile. (See EmulateAnotherPrinter)
EmulateAnotherPrinterBooleanYesWhether the device emulation ICC profile will be used.

NOTE Requires DeviceEmulationIccProfile to be defined.
NOTE Modification requires external control.
HasCalibrationAppliedBoolean[]NoWhether or not a PrintFlat Calibration has been applied to each colorant.

Entries match the order of the Colorants list.
InputCmykIccProfileStringNoName of the media's input CMYK ICC profile.
InputGrayIccProfileStringNoName of the media's input Gray ICC profile. (See ColorManageGrayAsCmyk)
InputRgbIccProfileStringNoName of the media's input RGB ICC profile.
KeepTextBlackBooleanYesWhether to keep text black.
NOTE Modification requires external control.
MainRenderingIntentStringYesThis is the default rendering intent. The rendering intents in the document overrides it.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
NOTE Modification requires external control.
NameStringNoThe selected media name.
OutputIccProfileStringNoName of the media's output ICC profile.
OverrideColorManagementInPdfBooleanYesWhether to override the color management specified in the PDF.
NOTE Modification requires external control.
Preserve100BlackBooleanYesWhether to preserve 100% black.
NOTE Modification requires external control.
RgbImagesIntentOverrideStringYesThis intent overrides all RGB images.

Values: RelativeColorimetric, Perceptual, Saturation, AbsoluteColorimetric
NOTE Modification requires external control.
TotalAreaCoverageStringNoThis is the Total Area Coverage for the job.
WidthMmDoubleYesThe media width in mm.
NOTE Modification requires external control.

Methods

NameReturnsDescription
SetColorantCurve(String colorantName, String csvCurve, Boolean reserved)StringAllows the calibration curve associated with a known colorant to be modified. (Requires external control)

NOTE Curve data must be presented as a list of comma-separated values.
NOTE Curve data must define an even number of values ranging from X=0.0 to X=1.0
SetDeviceEmulationIccProfile(String iccFileName)StringInstall an ICC profile into the selected media. (Requires external control)

NOTE iccFileName must specify a file path accessible to the OPC server.
SetInputCmykIccProfile(String iccFileName)StringInstall an ICC profile into the selected media. (Requires external control)

NOTE iccFileName must specify a file path accessible to the OPC server.
SetInputGrayIccProfile(String iccFileName)StringInstall an ICC profile into the selected media. (Requires external control)

NOTE iccFileName must specify a file path accessible to the OPC server.
SetInputRgbIccProfile(String iccFileName)StringInstall an ICC profile into the selected media. (Requires external control)

NOTE iccFileName must specify a file path accessible to the OPC server.
SetOutputIccProfile(String iccFileName)StringInstall an ICC profile into the selected media. (Requires external control)

NOTE iccFileName must specify a file path accessible to the OPC server.

App

State relating to the entire application.

Properties

NameTypeWritableDescription
CentralizedInkLibraryLocationStringNoThe application's local Centralized Ink Library Location
IsExternalControlActiveBooleanNoWhether the application is allowing clients external control.
IsPrePressFolderEnabledBooleanNoWhether the Pre-Press folder is active and can have jobs sent to it.
PrePressFolderStringNoThe application's local Pre-Press folder.
ProductNameStringNoThe application product name.
ServerModeLockedBooleanYesWhether to lock the minimized status of the application UI when running in server mode.

OPC clients can use this to prevent the application UI from being visible.
TotalSheetCountUInt64NoTally of the total printed sheet count.
VersionNumberStringNoDescribes the application version number.
WaitingQueueFolderStringNoThe application's local Waiting queue folder.
WaitingQueuePercentageSpaceUsedInt32NoThe percentage of space used on the disk where the application's local Waiting queue folder is located.

Methods

NameReturnsDescription
ApplySettings()StringApply the current application settings and update all RIP Server config files. (Requires external control)
LoadAppConfig(Byte[] spcFileData)StringLoad an SPC application configuration file. (Requires external control)

NOTE Changes must be applied using App.ApplySettings() before they take effect on the server(s).
PrintWithSmd(Byte[] pdfFileData, Byte[] smdFileData)StringFor internal use only. (Requires external control)
RevertSettings()StringRevert any pending application settings. (Requires external control)
SetClientIsBusy(String clientId, Boolean isBusy)voidAllows an OPC client to register it has entered/exited a 'busy' state requiring 'external control'.

A server operator disabling 'external control' will receive a warning if a client is within a 'busy' state.
clientId must be any string which uniquely identifies the client.
NOTE Clients are responsible for ensuring isBusy true/false calls are paired.

Files

NameDescription
LogFileAllows read-only access to the application log file.

NOTE OPC File nodes contain functions which allow access to file content:

  • Open(int fileAccess) - Open the file with the specified fileAccess (1:read, 2:write), returning an integer file handle.
  • Read(int fileHandle, int length) - Read data from an open file handle, returning an array of bytes.
  • Write(int fileHandle, byte[] buffer) - Write/append data to an open file handle.
  • Close(int fileHandle) - Close the file handle after use.

For more information see the OPC documentation.

PrintBarGroups

State relating to the active print bars.

Details

Note that each print bar 'group' corresponds to a collection of print bars which use the same settings (BPP, resolution, etc).

Properties

NameTypeWritableDescription
BitsPerPixelInt32[]NoThe bits per pixel (BPP) of each print bar group.
ColorantsString[]NoThe colorant list for each print bar group.
CountInt32NoThe number of print bar groups.
GroupNamesString[]NoThe names of each print bar group.
HorizontalResolutionInt32[]NoThe horizontal resolution (DPI) of each print bar group.
HorizontalScalingDouble[]YesThe horizontal page scale (%) of each print bar group.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
MediaSidesString[]NoWhich media side each print bar group relates to (A/B).
PlaneNumbersString[]NoThe plane numbers for each colorant in each print bar group.
VerticalResolutionInt32[]NoThe vertical resolution (DPI) of each print bar group.
VerticalScalingDouble[]YesThe vertical page scale (%) of each print bar group.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.

Methods

NameReturnsDescription
SetFailedNozzles(String inkName, Boolean isSideA, UInt64[] failedNozzles)StringSet a collection of failed nozzle indices for a given print bar.

PrinterProfile

State relating to the active printer profile.

Properties

NameTypeWritableDescription
EngineeringPINStringYesThe PIN required to access the Engineer pane. The PIN must be comprised of four characters, each being a number, or it can be left empty. An empty PIN will mean a PIN is not required to access the Engineer pane.
InkNamesString[]NoA list of ink names defined in the printer profile.
InksAsRGBString[]NoComplementing InkNames, a list of RGB color values than can be used to represent each ink.
LineSpeedMetersPerMinuteInt32NoThe printer line speed (m/min).
ManufacturerStringNoThe printer manufacturer.
MediaTypeStringNoThe type of media.

Values: Web, Sheet
ModelStringNoThe printer model.
NameStringYesThe name of the active printer profile.
NOTE Modification requires external control.
PrintBarHorizontalToImageBooleanNoWhether the print bars are horizontal to the printed page image.
PrinterTypeStringNoThe type of printer.

Values: Inkjet, Toner
SupportColorBooleanNoWhether the printer supports color.
SupportDirectQiBooleanNoWhether the printer supports a QI vision system.
SupportDuplexBooleanNoWhether the printer supports duplex.
SupportedMediaWidthsMmStringNoA list of supported media widths (mm).
SupportOfflineModeBooleanNoWhether the printer supports offline printing mode (RIP Ahead).

Methods

NameReturnsDescription
GetPrinterProfileAsJson()StringFor internal use only.

PrintRun

State relating to the print run.

Properties

NameTypeWritableDescription
AbortButtonStateStringNoThe state of the print run Abort button.

Values: Disabled, Enabled, Active
IsActiveBooleanNoWhether the print run is currently active.
MaxPrintingJobsInt32YesThe maximum number of simultaneous jobs to submit for printing at any one time.
NOTE Modification requires external control.
StartButtonStateStringNoThe state of the print run Start button.

Values: Disabled, Enabled, Active
StatusStringNoThe status of the print run.

Values: Stopped, Starting, Started, Stopping, Aborting
StopButtonStateStringNoThe state of the print run Stop button.

Values: Disabled, Enabled, Active

Methods

NameReturnsDescription
AbortPrintRun()StringAbort an active print run (Immediate). (Requires external control)
StartPrintRun()StringStart an active print run. (Requires external control)

Use IsActive to check when the operation completes.
StopPrintRun()StringStop an active print run (As soon as possible). (Requires external control)

Use IsActive to check when the operation completes.

PrintRunConfig

State relating to the print configuration (Applies to both media sides).

Properties

NameTypeWritableDescription
AddJobInformationPagesBooleanYesWhether to automatically append an information page to each printed job.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
CueMarkIntervalMmDoubleNoThe cue mark interval in mm.
DuplexModeStringNoThe duplex mode.

Values: Undefined, SimplexSideA, SimplexSideB, DuplexSideAFirst, DuplexSideBFirst
NozzleRefreshBarsEnabledBooleanYesWhether to add nozzle refresh bars onto the printed output.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
NozzleRefreshPageEndCountUInt64YesHow many nozzle refresh pages to append to the job. (0+)

NOTE Requires nozzle refresh pages to be enabled.
NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
NozzleRefreshPageIntervalUInt64YesHow many pages to process before inserting mid-document nozzle refresh pages. (1+)

NOTE Requires nozzle refresh pages to be enabled.
NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
NozzleRefreshPageIntervalCountUInt64YesHow many nozzle refresh pages to add each time NozzleRefreshPageInterval pages have been processed. (0+)

NOTE Requires nozzle refresh pages to be enabled.
NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
NozzleRefreshPagesEnabledBooleanYesWhether to add nozzle refresh pages into the printed output.

NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
NozzleRefreshPageStartCountUInt64YesHow many nozzle refresh pages to prepend to the job. (0+)

NOTE Requires nozzle refresh pages to be enabled.
NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.
RipModeStringYesWhether jobs are ripped, screened if they have been ripped, or are ripped and screened at once.

Values: RipDirect, RipAhead, ScreenDirect
NOTE Changes must be 'applied' before they take effect.
NOTE Modification requires external control.

PrintRunConfig.ConfigSideA

The print configuration specific to media side 'A'.

Properties

NameTypeWritableDescription
ActiveNozzlesInt32NoThe number of active nozzles that the print bar has.

NOTE Changes must be 'applied' before they take effect.
CalibrationJustificationInt32YesThe screen calibration justification (0, 1, 2).

The values map as follows: 0 = Left, 1 = Center, 2 = Right.
NOTE Changes are applied immediately if the print run is active, otherwise changes must be 'applied' before they take effect permanently.
NOTE Modification requires external control.
CalibrationOffsetInt32YesThe screen calibration offset in nozzles.

NOTE Changes are applied immediately if the print run is active, otherwise changes must be 'applied' before they take effect permanently.
NOTE Modification requires external control.
NozzleHashStringNoA hash representation of the nozzle configuration.

NOTE Changes must be 'applied' before they take effect.
PrintPositionStringNoThe print position (GearLeft, Center, OperatorRight).

PrintRunConfig.ConfigSideB

The print configuration specific to media side 'B'.

Properties

NameTypeWritableDescription
ActiveNozzlesInt32NoThe number of active nozzles that the print bar has.

NOTE Changes must be 'applied' before they take effect.
CalibrationJustificationInt32YesThe screen calibration justification (0, 1, 2).

The values map as follows: 0 = Left, 1 = Center, 2 = Right.
NOTE Changes are applied immediately if the print run is active, otherwise changes must be 'applied' before they take effect permanently.
NOTE Modification requires external control.
CalibrationOffsetInt32YesThe screen calibration offset in nozzles.

NOTE Changes are applied immediately if the print run is active, otherwise changes must be 'applied' before they take effect permanently.
NOTE Modification requires external control.
NozzleHashStringNoA hash representation of the nozzle configuration.

NOTE Changes must be 'applied' before they take effect.
PrintPositionStringNoThe print position (GearLeft, Center, OperatorRight).

Servers

State relating to the collection of RIP Servers.

Properties

NameTypeWritableDescription
ColorantsString[]NoWhich colorants each server can process.
ConnectionStatusesString[]NoPer-RIP Server connection statuses.

Values: Disconnected, Connecting, Connected
CountInt32NoThe number of RIP Servers.
EnabledColorantsString[]NoWhich colorants each server will process.
EnabledStatusesBoolean[]YesWhether each server is enabled or disabled.
NOTE Modification requires external control.
MediaSideString[]NoWhich media side each server relates to (A/B).
OverallConnectionStatusStringNoOverall connection status of all enabled servers.

Values: Disconnected, Connecting, Connected
PrintRunStatusesString[]NoPer-RIP Server print run statuses.

Values:
Idle - No jobs are printing.
Preparing - Print run is active and one or more jobs are preparing to print.
Processing - Print run is active and one or more jobs are printing.
Error - A job has failed to print.
ServerConfigsString[]NoPer-RIP Server configurations.
ServerPathsString[]NoPer-RIP Server paths.

Methods

NameReturnsDescription
GetPcInfo(Int32 serverIndex)StringRead the static (CPU model, ...) and dynamic (CPU load, ...) properties for the specified server.
RestartAll()StringRestart all RIP Servers. (Requires external control)
RunPluginCommand(Int32 serverIndex, String pluginName, String command)StringSends a plugin-dependent command to a named RIP Server plugin. (Requires external control)

NOTE The print run must be started for the command to succeed.
SelectLogFile(Int32 serverIndex)StringAllows a RIP Server log file to be selected for reading.

NOTE Must be called before any attempt to read data via ServerLogFile.

Files

NameDescription
ServerLogFileAllows read-only access to the selected RIP Server log file. (See SelectLogFile)

NOTE OPC File nodes contain functions which allow access to file content:

  • Open(int fileAccess) - Open the file with the specified fileAccess (1:read, 2:write), returning an integer file handle.
  • Read(int fileHandle, int length) - Read data from an open file handle, returning an array of bytes.
  • Write(int fileHandle, byte[] buffer) - Write/append data to an open file handle.
  • Close(int fileHandle) - Close the file handle after use.

For more information see the OPC documentation.

SingleJob

Describes the collection of nodes representing a single job, positioned as a child of the WaitingQueue, PrintQueue, or CompletedQueue nodes.

Properties

NameTypeWritableDescription
CopyCountInt32YesNumber of copies to print.

Writable only for unlocked jobs in the Waiting queue.
NOTE Modification requires external control.
EndTimeStringNoWhen the job finished printing. (ISO 8601)
GuidStringNoUnique job descriptor.
HasLiLoEnabledBooleanNoWhether or not the job can have lead in and/or lead out pages.
HasNonEmbeddedFontsBooleanNoThe result after running job font analysis.
IsAutotunedBooleanNoWhether or not the job has been Autotuned.
IsLockedBooleanYesWhether modifying operations (changes to copy count, job editor, ...) are allowed or not.

Writable only for jobs in the Waiting queue.
NOTE Modification requires external control.
IsStreamlineOptimizedBooleanNoWhether Streamline Optimize has processed the job.
JobIdStringNoThe job ID received from the .complete file.
JobLabelStringYesProperty which can be used to group related jobs.
NOTE Modification requires external control.
JobPartIdStringNoThe job part ID received from the .complete file.
JobTagStringYesProperty which can be used to attach arbitrary state to a job.

The source of the state comes from an optional JobTag string field in the .complete JSON file written into the Waiting queue hot folder.
The state lasts for the lifetime of the job, and will persist if a job is copied from the Completed queue to the Waiting queue.
Writable only for jobs in the Waiting queue.
NOTE Modification requires external control.
LeadInCountInt32YesCount of the lead in pages.
NOTE Modification requires external control.
LeadInThumbnailStringNoBASE64-encoded representation of the lead in page thumbnail PNG data.
LeadOutCountInt32YesCount of the lead out pages.
NOTE Modification requires external control.
LeadOutThumbnailStringNoBASE64-encoded representation of the lead out page thumbnail PNG data.
NameStringYesThe job name (from the original job file name).

Writable only for unlocked jobs in the Waiting queue that are not preprocessing.
NOTE Modification requires external control.
PageCountInt64NoPage count of the document.
PageHeightMmDoubleNoPage height (mm).
PagesSucceededInt64NoThe total number of pages submitted to the output device.

NOTE This does NOT mean they were printed, only submitted to the output device.
NOTE The value will not change after the print run is stopped.
NOTE The value may not be accurate if the print run is aborted.
PageWidthMmDoubleNoPage width (mm).
PredictedLineSpeedDoubleNoThe Streamline Direct predicted line speed (m/min).
PredictedLineSpeedIndicatorStringNoThe Streamline Direct predicted line speed (Status indicator).

Values:
Unavailable - Analysis unavailable.
Red - Unable to achieve target speed.
Amber - Should achieve target speed.
Green - Will achieve target speed.
PreprocessorStatusStringNoPreprocessor status.

Values: Pending, Active, Complete, Failed
PrintabilityStringNoIndicates if a job is printable.

Values:
Unknown
Printable - The job is printable.
WarningProtrusion - The job has some printability issues, but can still be printed
WarningNonEmbeddedFonts - The job has some printability issues, but can potentially still be printed.
Error - The job cannot be printed.
StreamlineIssues - Streamline issues detected.
MediaMismatch - The job requires a media that is not currently active.
QueuePositionInt32NoThe job position within the current queue (1+).
StartTimeStringNoWhen the job started printing (ISO 8601).
StatusStringNoUp-to-date print status of the job.

None - Inactive
Transferring - Copying to server(s).
TransferFailed - Copy failed.
ReadyToPrint - File copied and ready to print.
Printing - Currently printing.
Succeeded - Job printed completed successfully.
Failed - Job failed to print.
Cancelled - User cancelled printing.
PreRipped - Job pre-Ripped successfully.
TargetMediaStringYesThe intended media to use when printing the job.
NOTE Modification requires external control.
ThumbnailStringNoBASE64-encoded representation of the job thumbnail PNG data.
TotalPageCountInt64NoPage count of the printed document (PageCount * CopyCount).

StreamlineDirect

State relating to Streamline Direct technology.

Properties

NameTypeWritableDescription
AnalysisMaxPagesInt32YesThe number of pages to sample when estimating print time.

NOTE Takes effect when new jobs are added.
NOTE Modification requires external control.
BlockCriticalZoneJobsBooleanYesWhether jobs whose PredictedLineSpeedIndicator is Red - jobs that will not meet the Target Line Speed - can be sent to the Print Queue.

NOTE This option can only take effect if EnableEstimation is enabled.
NOTE Modification requires external control.
EnableAutotuneBooleanYesWhether to Autotune jobs that have been estimated.

NOTE Takes effect when new jobs are added.
NOTE Autotune can only occur if EnableEstimation is enabled.
NOTE Modification requires external control.
EnableEstimationBooleanYesWhether to estimate print time for jobs added to the Waiting Queue.

NOTE Takes effect when new jobs are added.
NOTE Modification requires external control.
LineSpeedInt32YesThe press's target line speed (m/min).
NOTE Modification requires external control.
SafetyZoneInt32YesThe percentage of extra line speed above the defined maximum line speed that can be allowed as an estimate.

NOTE Takes effect when new jobs are added.
NOTE Modification requires external control.

WaitingQueueOptions

State relating to the behavior of the Waiting queue.

Properties

NameTypeWritableDescription
AllowJobLockingBooleanYesDetermines whether the SPC UI exposes the ability to lock/unlock jobs in the Waiting queue.

NOTE When job locking is enabled and 'external control' is granted to an OPC client, the SPC UI will allow jobs in the Waiting queue to be modified. This must be considered by the OPC client when processing Waiting queue jobs.
AllowThumbnailsBooleanYesDetermines whether thumbnails will be generated for jobs added to the Waiting queue.

Disabling thumbnail generation may improve performance in situations where they are not required.
Changes are immediate and apply to new jobs added to the queue.
NOTE Modification requires external control.
ApplyMediaFilterBooleanYesDetermines whether the Waiting queue only displays jobs which target the active media (See ActiveMedia).
NOTE Modification requires external control.
HideLockedJobsBooleanYesDetermines whether the Waiting queue displays locked jobs.
NOTE Modification requires external control.
JavaScript errors detected

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

If this problem persists, please contact our support.