Articles in this section

Automation with XML job tickets

This feature is available with PrimeCenter package    3_PrimeCenter-Max_30px.png

This article is intended for advanced users who want to automate their prepress workflow by integrating third-party systems (ERP, webshops, etc.) with PrimeCenter.

You can automate workflows in PrimeCenter by exchanging XML job tickets. Job tickets describe the input files, processing options, and layout results. They can be created externally and imported into PrimeCenter, or exported by PrimeCenter for reuse in other systems.

 

What is an XML job ticket?

An XML job ticket is a file generated by a third-party application upstream of PrimeCenter. It is linked to a print job and contains metadata such as:

  • Customer ID
  • Number of copies
  • Job name or comment
  • Preflight instructions

 

PrimeCenter uses this metadata to:

  • Automate file naming, organization, and filtering
  • Apply recipes and check/fix profiles
  • Export structured job and layout information downstream

 

  Info

The XML ticket must follow the specific format defined by Caldera. The third-party application must generate tickets in this format.

 

Format of an XML job ticket

Before V4.7 Starting from V4.7

An XML ticket is composed of 3 parts:

  • Job part: Contains job path and job information to be processed by PrimeCenter. This part is always present in input tickets and in output tickets per image.
  • Layout part: Contains metadata about the layout generated by PrimeCenter. This part is present in all output tickets (per image or per layout) but never in input tickets. You can update this part later on with information from other third-party applications such as a RIP or a cutter controller.
  • Messages part: Contains error information when a file cannot be processed, or when a print or cut file cannot be exported.  This part can be present in output tickets per image and per layout when an error occurs.

 

Ticket types

Ticket type Job part Layout part Messages part Notes
Input ticket Yes No No Submitted to PrimeCenter to process an image
Output ticket - per image Yes Yes Yes Generated for each image in a layout, includes job metadata and layout information
Output ticket - per layout No Yes Yes Generated for each layout, includes only layout information

 

  Good to know

  • Choose which type of output ticket you want to generate in Export settings.
  • Starting from PrimeCenter V4.3, output XML tickets can be generated even if no input ticket exists.

 

Input ticket

<ticket>   
 <job>
    <source>...</source>
    <media>...</media>    
    <process>...</process>   
    <info>...</info>    
    <preflight>...</preflight>   
 </job>   
</ticket>   

 

Output ticket per image

<ticket>
  <job>
    <source>...</source>
    <media>...</media>    
    <process>...</process>   
    <info>...</info>    
    <preflight>...</preflight>   
 </job>
 <layout>
   <cutGUID>...</cutGUID>
   <info>...</info>
   <paths>...</paths>
   <contents>...</contents>
 </layout>
 <messages>...</messages> (V4.7)
</ticket>

 

Output ticket per layout

<ticket>
 <layout>
   <cutGUID>...</cutGUID>
   <info>...</info>
   <paths>...</paths>
   <contents>...</contents>
 </layout>
 <messages>...</messages> (V4.7)
</ticket>

 

Job part (input instructions)

The <job> tag contains instructions submitted to PrimeCenter. It is present in input tickets and in output tickets per image. It is mandatory and includes the job creation timestamp.

<job creationTime="2026-03-04T08:32:17+0100">

 

📌 <source> tag

Mandatory. Contains information about the job file:

  • <filespec> (mandatory): path of the job file. Can be:
    • Absolute path
    • Relative path (relative to the folder where the ticket is placed)
    • HTTP or HTTPS link

        HTTP link rules

      • Must end with the file name and its extension.
      • Must follow proper character encoding rules. You can use this tool to clean your link and generate a usable version.

 

Example

<!-- Relative path -->
<filespec>file://myfolder/myfile.pdf</filespec>

<!-- Absolute path -->
<filespec>file:///Users/john/myfolder/myfile.pdf</filespec>

<!-- Windows mapped network drive -->
<filespec>file://S:/PrimeCenter_Jobs/myfolder/myfile.pdf</filespec>

<!-- HTTP link -->
<filespec>https://www.caldera.com/wp-content/uploads/2024/12/primecenter-slider-generic.png</filespec>

 

  • <pages> (optional): pages to process in a PDF file. By default, all pages (1–N) are used. Can be a list, interval, or both:
<pages>1,2,5</pages> <!-- list -->
<pages>1-4</pages> <!-- interval -->
<pages>1,3-5,7-N</pages> <!-- list + interval -->

 

  • <copies> (optional): number of copies per page:
<copies>5</copies>

 

  • Size modifiers and scaling: you can override the image size directly in the XML. If multiple tags are used, PrimeCenter applies them in the priority order:
    1. <scale>: percentage
    2. <width>: forced width
    3. <height>: forced height
    • supported unit: mm (default), cm, m, in, ft

 

Examples

<scale>50</scale>
<width unit="in">20</width>
<height unit="cm">30</height>

 

📌 <media> tag (media override)

Optional. Overrides the media format defined in the recipe:

  • <formatName> (optional): informational only. Used for identification in the output if the media is overridden.
  • <width> / <height>:
    • Must include units
    • For roll media: only one of the two is required, the other can be left empty.

        Nesting direction tip for rolls

      • Height = 0 → horizontal
      • Width = 0 → vertical
    • For sheet media: both are mandatory.
  • <margins> (optional):
    • top, bottom, left, right
    • defaults to 0 if omitted

 

Example

  <media>
    <formatName>Roll 1300</formatName>
    <width unit="mm">1300</width>
    <height>0</height>
    <margins>
      <top unit="mm">25.5</top>
      <bottom unit="mm">15</bottom>
    </margins>
  </media>

 

📌 <process> tag

Optional. Defines processing instructions:

  • <recipe> (mandatory if using Global hotfolder with XML extraction): recipe name to use.
  • <gang> (optional): gang ID or metadata for nesting (Only one of the gang options can be used).

 

Examples

  <process>
   <recipe>Stickers</recipe>
   <gang>2</gang>          <!-- free ID -->
   <gang by="orderID"/>         <!-- metadata -->
  </process>

 

📌 <info> tag

Optional. Contains job identifiers and metadata:

  • <jobID> (optional): unique job identity

      Job identification fallback starting from V4.3

    • If <jobID> is missing, PrimeCenter uses <jobName>.
    • If <jobName> is missing, PrimeCenter uses the file name.
  • <customerID> (optional): customer ID
  • <orderID> (optional): order number
  • <jobName> (optional): job name
  • <comment> (optional): free comment
  • <sequence> (optional): defines nesting order

 

Examples

  <info>
   <jobID>0014</jobID>
   <customerID>Karl_Dera</customerID>
   <orderID>0134</orderID>
   <jobName>Rocket_blue</jobName>
   <comment>Very Important Client</comment>
   <sequence>4</sequence>
  </info>

 

📌 <preflight> tag

Optional. Allows defining check/fix and variables for automated workflows. Export a template from the Input check/fix tool to see which variables to use for each profile.

  Good to know

Starting from PrimeCenter V4.7, you can share XML input tickets containing check/fix profiles across different workstations and Operating Systems. The path identifying the check/fix profile includes their names instead of an identifyer, making them easily recognizable.

 

Layout part (output result)

The layout part of the XML job ticket is automatically generated by PrimeCenter. It contains detailed information about the layouts created, which you can use if you want to integrate or analyze the data in another system.

 

📌 <layout> tag

The root tag for each layout. Attributes include:

  • name: name of the layout in PrimeCenter
  • lastEvent: last modification time (local time)
  • lastEventGMT: last modification time (GMT)

 

Example

<layout name="Nest - Karl_Dera" lastEvent="2026-03-04T08:32:17+0100" lastEventGMT="2026-03-04T08:32:17+0100"></layout>

 

📌 <cutGUID> tag

Indicates the printed barcode value for the layout, which can be used to track the cut or link with another system.

 

Example

<cutGUID>2BBD406B</cutGUID>

 

📌 <info> tag

Contains key metadata about the layout:

  • <fillRatio>: media coverage in percentage
  • <stats>: layout area and media waste (added in V4.3)
  • <mediaName>: media used for the layout
  • <gang>: gang applied if any
  • <width> / <height>: size of the layout in millimeters
  • <linear meter>: layout height for roll formats (added in V4.3, always express in meters starting from V4.7)
  • <cropped>: indicates if the “Crop to data” option was applied (added in V4.3)
  • <format>: information about the sheet or roll format used, including type, width, height, and name (added in V4.3)

 

Example

  <info>
   <fillRatio>29</fillRatio>
   <stats>
    <area unit="m2">0.417</area>
    <waste unit="m2">1.023</waste>
   </stats>
   <mediaName>Carbon fibre prepreg</mediaName>
   <gang>KarlDera</gang> <!-- metadata -->
   <width>914.4</width>
   <height>457.2</height>
   <cropped>true</cropped>
   <format type="Sheet">
    <width unit="mm">1200</width>
    <height unit="mm">1200</height>
    <name>MyCustomFormat</name>
   </format>
  </info>

 

📌 <paths> tag

Lists the file paths generated by PrimeCenter:

  • <output>: print file path
  • <cut>: cut file path. This tag is not present when the cutter is connected via the network.

 

Example

  <paths>
   <output timeStamp="2025-08-01T12:05:00+0100" timeStampGMT="2025-08-01T10:05:00+0100">/path/to/layout.pdf</output>
   <cut timeStamp="2025-08-01T12:05:00+0100" timeStampGMT="2025-08-01T10:05:00+0100">/path/to/layout.zcc</cut>
  </paths>

 

📌 <contents> tag

Ticket per image

Lists all items related to the image/job.

  • <job>: ID of the job and number of items
  • <item>: position (x, y), size (w, h), page number, and rotation angle

 

Example
<contents>
 <job id="0001" items="2">
    <item page="1" x="100" y="50" w="200" h="300" angle="0"/>
    <item page="2" x="150" y="70" w="200" h="300" angle="0"/>
 </job>
</contents>

 

Ticket per layout

Lists all jobs and their items included in the layout.

  • <job>: ID of the job and number of items
  • <item>: position (x, y), size (w, h), page number, and rotation angle

 

Example
<contents>
 <job id="0001" items="2">
    <item page="1" x="100" y="50" w="200" h="300" angle="0"/>
    <item page="2" x="150" y="70" w="200" h="300" angle="0"/>
 </job>
 <job id="0002" items="3">
    <item page="1" x="100" y="50" w="200" h="300" angle="0"/>
    <item page="2" x="150" y="70" w="200" h="300" angle="0"/>
    <item page="3" x="200" y="100" w="200" h="300" angle="0"/>
 </job>
 <job id="0003" items="1">
    <item page="1" x="300" y="150" w="200" h="300" angle="0"/>
 </job>
</contents>

 

Messages part (starting from V4.7)

The message part of the XML job output ticket is automatically generated by PrimeCenter. It contains information about the errors that may occur while processing input files and/or exporting print and cut files. It helps identifying the errors that occurred for a specific file in order to fix it and put back to file into production.

 

📌 <message> tag

Attributes include:

  • type: type of message. For now, only error messages are displayed in this section.
  • timestamp: date and time of the error
  • error: code of the error

  Info

For the list of error codes, see this article to understand their meaning and identify possible corrective actions.

Example

<messages>
  <message type="ERROR" timestamp="2026-02-03T18:02:10+0100" error="NEST_REJECTED_SIZE"></message>
</messages>

 

Example: Full output XML ticket per layout

<ticket version="1" lastEvent="2026-03-16T15:27:54+0100">

   <job creationTime="2026-03-16T15:27:54+0100">
    <source>
     <filespec>file:///path/to/file.pdf</filespec>
     <pages>1-3</pages>
     <copies>5</copies>
    </source>
    <media>
     <formatName>Roll 1300</formatName>
     <width unit="mm">1300</width>
     <height>0</height>
    </media>
    <process>
     <recipe>Stickers</recipe>
     <gang>12</gang>
    </process>
    <info>
     <jobID>0014</jobID>
     <customerID>Karl_Dera</customerID>
     <orderID>0134</orderID>
     <jobName>Rocket_blue</jobName>
     <comment>Very Important Client</comment>
     <sequence>4</sequence>
    </info>
    <preflights>
     <preflight1>
      <profile>profileLocation</profile>
      <variables>
       <PC-Parameter1>xxx</PC-Parameter1>
      </variables>
     </preflight1>
    </preflights>
   </job>

   <layout name="Nest - Karl_Dera" lastEvent="2025-08-01T18:00:00+0100">
    <info>
     <fillRatio>29</fillRatio>
     <stats>
      <area unit="m2">0.417</area>
      <waste unit="m2">1.023</waste>
     </stats>
     <mediaName>Carbon fibre prepreg</mediaName>
     <gang>12</gang>
     <width>914.400000</width>
     <height>457.200000</height>
     <cropped>true</cropped>
     <format type="Sheet">
      <width unit="mm">1200</width>
      <height unit="mm">1200</height>
      <name>MyCustomFormat</name>
     </format>
    </info>
    <paths>
     <output timeStamp="2025-08-01T18:00:00+0100">file:///path/to/layout.pdf</output>
     <cut timeStamp="2025-08-01T18:00:00+0100">file:///path/to/layout.zcc</cut>
    </paths>
    <contents>
     <job id="0014" items="2">
      <item page="1" x="845.067979" y="65.194744" w="114.064345" h="510.416519"/>
      <item page="2" x="845.067979" y="65.194744" w="114.064345" h="510.416519"/>
     </job>
    </contents>
   </layout>
   
  <messages>
    <message type="ERROR" timestamp="2019-08-23T18:00:04+0100" error="NEST_REJECTED_SIZE"></message>
  </messages>

  </ticket>

 

Downloadable examples

Was this article helpful?
3 out of 3 found this helpful