Skip to content
getnextpdf.com

Pro edition

Print Job

NextPDF Pro builds XJDF (XML JDF 2.0) job tickets for production print workflows: job metadata, media specification, color intent, finishing operations, priority, and copy count.

This capability ships in NextPDF Pro (nextpdf/pro) and activates with a Pro-tier license envelope. A deployment without that entitlement does not load the capability’s classes. Print Job carries no separate per-feature license flag. Compare editions and get a license.

Terminal window
composer require nextpdf/pro:^3

A print-production system consumes a job ticket that describes how to produce a job. NextPDF Pro emits an XJDF 2.1 document with a fluent builder:

  • XjdfJobTicket — the builder. Set the job ID and name, priority, media, color, finishing, and copy count, then serialize to an XJDF 2.1 XML document.
  • MediaSpec — immutable media properties: type, width and height in millimeters, weight in g/m², coating, and color. Defaults to A4 white paper.
  • ColorSpec, FinishingSpec, JobPriority — color intent, finishing operations, and a priority enum.

The generated XML follows the simplified XJDF 2.1 structure. The module produces the ticket; it does not submit it to a press controller or device.

Print Job builds a ticket and stops there. It never submits the job or renders a print stream. That boundary is deliberate. The XJDF document is a portable description of intent — media, color, finishing, priority, copies — that a downstream press controller consumes and executes. Keeping the module a pure serializer lets one ticket drive a high-volume production run without coupling your code to a device protocol. The specification objects are immutable, so identical inputs always yield the same ticket, which keeps batch output reproducible.

Design background: High-volume document generation.

ClassResponsibility
XjdfJobTicketFluent XJDF 2.1 job-ticket builder.
MediaSpecMedia physical properties.
ColorSpecColor intent.
FinishingSpecFinishing operations.
JobPriorityPriority enum.
use NextPDF\Pro\PrintJob\XjdfJobTicket;
$xml = (new XjdfJobTicket())
->setJobId('JOB-1001')
->setJobName('Quarterly report')
->toXml();
use NextPDF\Pro\PrintJob\{XjdfJobTicket, MediaSpec, JobPriority};
$xml = (new XjdfJobTicket())
->setJobId($jobId)
->setPriority(JobPriority::High)
->setMedia(new MediaSpec(mediaType: 'Paper', widthMm: 297.0, heightMm: 420.0))
->setCopies(500)
->toXml();
$logger->info('printjob.ticket_built', ['job_id' => $jobId]);
  • Serialize with toXml(); when the job ID is empty, it generates a unique identifier rather than failing.
  • setCopies() rejects a copy count below 1.
  • Media dimensions are millimeters; convert from points before passing them.
  • The output is a ticket document, not a rendered print stream.

Ticket construction is constant-time relative to document size; it depends only on the configured resources.

The builder emits XML from values you supply. Sanitize externally sourced job names and identifiers before building.

BehaviorReferenceStatus
XJDF 2.1 job-ticket structureXJDF 2.1 (CIP4)Aligned (simplified subset)
  • XjdfJobTicket is a fluent builder for job ID and name, priority, media, color, finishing, and copy count, serializing to a simplified XJDF 2.1 XML document via toXml(). setCopies() rejects a copy count below 1; an empty job ID is auto-generated.
  • MediaSpec carries immutable media properties (type, width/height in millimeters, weight in g/m², coating, color) and defaults to A4 white paper.
  • ColorSpec, FinishingSpec, and JobPriority describe color intent, finishing operations, and priority.
  • The module produces a ticket document only. It does not render a print stream or submit the ticket to a press controller or device.

Enterprise does not change Print Job behavior. Enterprise adds higher-tier features documented separately; they are not required to build an XJDF job ticket.

There is no Core equivalent for XJDF 2.1 job-ticket generation. This is a Pro addition.

This page documents externally observable behavior and the supported public API surface only. Internal namespace paths, helper classes, mechanism tables, runbook filenames, and ticket prefixes are out of scope.