> For the complete documentation index, see [llms.txt](https://docs.santacruzsoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.santacruzsoftware.com/printui/guides/job-complexity.md).

# Job Complexity

PrintUI uses a complexity score to estimate how long a template or customized job may take to process on InDesign Server. Complexity matters most when requesting production output such as PDF, JPEG, PNG, or IDML.

## What affects complexity

A job may become complex when it contains:

* Very large images.
* Complex vector artwork, EPS, AI, or PDF placements.
* Many pages or many page items.
* Transparency, blending, or other expensive rendering effects.
* User-uploaded artwork that is much heavier than the original template content.
* Template content that changes unpredictably from job to job.

The complexity calculated when a template is uploaded is based on the template at upload time. If users later add large images or complex artwork, the customized job may be more expensive to process than the original template suggested.

## Stable vs unpredictable content

Template Options include a content type setting. Use **Stable Content** when jobs are expected to stay similar to the uploaded template. Use **Unpredictable Content** when users may add or replace content in ways that can substantially increase processing cost.

Unpredictable content takes longer to evaluate during upload, but it gives PrintUI a more conservative complexity estimate for templates where user edits may vary widely.

## Symptoms of complexity problems

Complexity issues usually appear during output generation, not while editing. Watch for:

* PDF, JPEG, PNG, or IDML requests that time out.
* Output requests that take much longer than comparable jobs.
* Jobs that preview acceptably but fail when high-resolution output is requested.
* Failures that happen only after users upload large images or artwork.

## Reduce complexity

Before releasing a template, simplify expensive content where possible.

* Resize images to the required production size instead of using oversized originals.
* Convert complex vector artwork to JPEG or PNG when editability is not required.
* Avoid unnecessary transparency and blending effects on high-resolution artwork.
* Keep user upload rules aligned with final output needs.
* Test with worst-case user content, not only the clean designer version of the template.

## Use complex processing when needed

For jobs that legitimately require more processing time, developers can request complex processing for PDF generation by passing the output API's `process` parameter as `complex` when supported by the endpoint.

Complex processing places the job into a lower-priority queue. This can help demanding jobs finish without slowing normal jobs for other clients, but it may also mean the output starts later when servers are busy.

## Release checklist

Before making a complex template available to users:

1. Upload the template with the correct content type.
2. Create a job with realistic user edits.
3. Test output with the largest expected images and most complex expected artwork.
4. Generate final PDF, JPEG, PNG, or IDML, not only editor previews.
5. Decide whether the host integration should request standard or complex processing.
6. Document any image-size or artwork restrictions for users or administrators.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.santacruzsoftware.com/printui/guides/job-complexity.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
