Appearance
Layouts and imposition
This page is for prepress people who are new to the CoCoCo data model. It maps the model's terms onto the ones you already use.
Everything in this page hangs off a component (ComponentState). A component is one printed part of a job, such as a cover or a text block. Three of its fields carry the prepress data:
| Component field | Prepress analog | Type |
|---|---|---|
layout | Page geometry: trim, bleed, safe area, die lines, finishes | ComponentLayout |
impositionSpecs | Imposition plans for the component | ImpositionSpecState |
prepressOperations | Prepress steps and their status | PrepressOperationState |
All lengths are Length values. Each keeps the unit it was entered in (raw and unit) and can be read back in any unit (millimeters, points, inches, or value(unit:)).
Component layout: the page box model
ComponentLayout describes one finished piece before imposition:
| Field | Prepress meaning |
|---|---|
substrate | Physical sheet or substrate size before cutting (LayoutDimension) |
trimBox | Final trimmed size (LayoutBox) |
bleed | Bleed per side (top, right, bottom, left), measured from the trim box edges (BleedSpec) |
bleedBox | Explicit absolute bleed box. When present, it overrides bleed. |
safeBox | Safe or live-content area inside the trim box |
allowance | Extra allowance per side, for example for hemming or grommets (LayoutAllowance) |
layers | Ordered layers: content, marks, die lines and finishes (LayoutLayer) |
A box's x and y give its bottom-left corner.
Each layer has a kind (LayoutLayerKind). Content kinds are CONTENT, MARKS and WHITE_UNDERPRINT. Cutting and forming kinds are DIE_CUT, KISS_CUT, REVERSE_CUT, PARTIAL_CUT, CREASE, PERFORATION, FOLD, DRILL and PUNCH. Finishing kinds are SPOT_VARNISH, FLOOD_VARNISH, LAMINATE, FOIL, EMBOSS, DEBOSS, GLUE, EYELETS, HEMMING and OTHER. Each layer also records whether it is printable, its stacking sortOrder, its boundary shape and any marks. placement stays empty on an authored layer. It is set only when the layer is placed onto an imposed sheet.
graphql
query ComponentPrepress($id: ComponentID!) {
getComponent(id: $id) {
name
layout {
substrate { width { millimeters } height { millimeters } }
trimBox { width { millimeters } height { millimeters } }
bleed { top { millimeters } right { millimeters } bottom { millimeters } left { millimeters } }
layers { id name kind printable sortOrder }
}
impositionSpecs { id name isPrimary pagesUp scheme orientation layoutStatus }
prepressOperations { kind status completedAt }
}
}Imposition specs
An ImpositionSpecState is one imposition scenario for a component. A component can have several specs. isPrimary marks the one selected for assessment.
A spec holds two kinds of data:
- The planning decision. This is
pagesUp,sheetsPerForm,totalForms,totalPages,scheme,orientation,bindingType,gutterHandgutterV. Schemes (ImpositionScheme) areWORK_AND_TURN,WORK_AND_TUMBLE,SHEETWISE,WEB_PERFECTandOTHER. The binding type decides page order on a folded signature (saddle-stitch nests, perfect-bound gathers). Without one, pages are imposed sequentially. - The sheet geometry (
layout, aSheetLayout). This is the press sheet size, margins, grid, placed cells, fold lines, trim marks and the pages on the front and back surfaces.
layoutStatus (ImpositionLayoutStatus) records where the geometry came from. Read it before you trust the geometry:
| Status | Meaning | Can be imposed |
|---|---|---|
ENGINE | Calculated by the imposition engine against a real substrate | Yes |
SYNTHESIZED | Rebuilt from the entered pages-up, scheme and orientation against the component's real substrate | Yes |
PROVISIONAL | Rebuilt, but the component has no substrate, so the press sheet size is a guess | No, until the stock is confirmed |
NONE | Too little information to place a cell | No |
The impose_pdf workflow node refuses PROVISIONAL and NONE specs. A guessed sheet size would produce plates that look right but cut wrong.
Calculating an imposition
The imposition engine has three modes (ImposingMode):
SIGNATURE: folded signatures for books and brochures.GANGING: identical items stepped and repeated for flatwork.WEB: roll-fed web presses, described by a web press profile.
In signature mode, the engine tries the fold patterns that fit each substrate. It returns every plan that is not beaten on all four objectives at once: waste, sheet utilisation, signature count and fold uniformity. recommendedIndex points at the suggested plan. A fold pattern is skipped when the substrate is thicker than that pattern allows. listFoldPatterns returns the fold catalogue.
previewImposition runs the engine without saving anything. You can use it for estimates before a component exists:
graphql
query PreviewBrochure($substrate: String!) {
previewImposition(input: {
finishedWidth: { value: 210, unit: MM }
finishedHeight: { value: 297, unit: MM }
totalPages: 32
bleed: { value: 3, unit: MM }
quantity: 2000
mode: SIGNATURE
substrateIds: [$substrate]
}) {
recommendedIndex
plans {
sheetsPerCopy
totalForms
copiesPerSheet
totalSheets
wastePages
objectives { waste utilisation signatureCount foldUniformity }
signatures { index foldPatternId }
layout { cols rows sheetWidth { millimeters } sheetHeight { millimeters } }
}
errors { path message }
}
}Unless you override them, the press settings default to a 10 mm grip edge, 5 mm tail edge, 5 mm side margins, zero gutters and 3 mm bleed. Utilisation values are ratios between 0 and 1, not percentages.
Other imposition operations:
calculateImpositionruns the engine against a component. It reads finished size, bleed, page count and quantity from the component. InSIGNATUREmode it writes the selected plan (the recommended one unless you passselectPlanIndex) as imposition specs, one per signature, and by default replaces the existing specs. InGANGINGandWEBmode it only returns plans and writes nothing.upsertImpositionSpecsaves a plan you enter by hand. Its geometry is rebuilt, so itslayoutStatusisSYNTHESIZED,PROVISIONALorNONE.renderImpositionSVGdraws a saved spec or an inline sheet layout as an SVG, front or back.
In workflows, the impose_plan node runs the engine and outputs the plan. The impose_pdf node takes a plan or saved specs, imposes the component's source PDFs and stores the print-ready PDF as a file attached to the component.
Prepress operations
A PrepressOperationState tracks one prepress step on a component. The step has a kind (PrepressOperationKind): PREFLIGHT, RIP, CTP, PROOF, COLOR_CONVERSION, IMPOSITION, COLOR_MANAGEMENT, TRAPPING or OTHER. Each operation also carries a status, notes, an assigned user, start and completion times, and the output file it produced (for example a proof PDF or a plate file).
The queries and mutations named on this page are listed in the query and mutation reference.