Skip to main content
Skip table of contents

Hot Folder Job Submission

Hot Folder Job Submission is a method that allows jobs to be submitted to the Smart Print Controller without using the UI.
This is useful in larger workflows allowing a process before the Smart Print Controller (for example imposition) to automatically submit jobs.

Hot Folder Job Submission is always enabled and available.

Hot Folder Location

The Hot Folder Location is defined in the Engineering Pane → Folders → Waiting Queue Folder.

It is good practice when using a Hot Folder workflow to ensure the correct folder is used.
The location of the Waiting Queue Hot Folder is reported over the OPC interface (App/WaitingQueueFolder).

Submitting a Job

The Waiting Queue Hot Folder contains a file called printrun.config.
This is a JSON file that contains information about the current setup of the Smart Print Controller.
Stages in the workflow before Smart Print Controller can use this information to prepare the job before submission.

A job is submitted in two stages:

  1. Write the file to be processed (e.g. MyFile.pdf) to the Waiting Folder.
  2. Write a '.complete' file (e.g. MyFile.pdf.complete) to the Waiting Folder

Step two is used to indicate to SPC that the write of the pdf file has completed, therefore these must be two distinct operations and must not overlap.

Once a job has been accepted into SPC, the original file and .complete file are replaced by a single PDF file with a UID as the filename.

printrun.config Format

This file contains a JSON representation of key setting inside the Smart Print Controller

Example printrun.config

{
  "DuplexMode": "SimplexSideA",
  "ActiveMediaWidthMm": 330.2,
  "CueMarkIntervalMm": 254.0,
  "PageLayouts": {
    "SideA": {
      "PrintPosition": "GearLeft",
      "PrintMarginMm": 0
    },
    "SideB": {
      "PrintPosition": "GearLeft",
      "PrintMarginMm": 0
    }
  },
  "PossibleDuplexModes": "SimplexSideA",
  "PossiblePrintPosition": "GearLeft Center OperatorRight",
  "Colorants": {
    "Black (A)": {
      "Resolution": "1200 x 1200 dpi",
      "BitsPerPixel": 2
    },
    "Cyan (A)": {
      "Resolution": "1200 x 1200 dpi",
      "BitsPerPixel": 2
    },
    "Magenta (A)": {
      "Resolution": "1200 x 1200 dpi",
      "BitsPerPixel": 2
    },
    "Yellow (A)": {
      "Resolution": "1200 x 1200 dpi",
      "BitsPerPixel": 2
    }
  },
  "AvailableMedia": [
    "Media_Default"
  ]
}

DuplexMode supports the values listed in the PossibleDuplexModes list, which you can customize to be a subset of the following:

  • SimplexSideA
  • SimplexSideB
  • DuplexSideAFirst
  • DuplexSideBFirst

PrintPosition supports the values listed in the PossiblePrintPosition list, which you can customize to be a subset of the following:

  • GearLeft
  • Center
  • OperatorRight

.complete Format

The .complete file must have the same filename as the job to submit (including extension) with .complete append to the end.

This can be an empty file in which case it is used to trigger the Smart Print Controller to start processing, but all settings are left unchanged.

It can also be a JSON file with the following keys:

KeyTypeDescription
CopyCountIntegerThe number of copies required.
JobTagStringA property which can be used to attach arbitrary state to a job.
MisDictionary

This can be used to attach MIS information to a job and can be read as part of the Job Information via the OPC interface.

    • JobID
    • JobPartID

Both are string values.

TargetMediaNameStringThe name of the media required for this job.
LiLoDictionary

For LILO jobs the first page is used as the Lead In page, the second page is the Lead Out page, and all remaining pages are the content of the job.
Therefore a LILO job must have at least 3 pages.

    • LiCount
      The number of Lead In pages.
    • LoCount
      The number of Lead Out pages.

Both are integer values.

Example .complete File

{
  "CopyCount": 10,
  "Mis": {
      "JobId": "MyJob",
      "JobPartId": "Item 72"
    },
  "TargetMediaName": "Media_Default"
}



JavaScript errors detected

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

If this problem persists, please contact our support.