Skip to content

Imposition: n-up, gang-up, booklets, creep, and sheet furniture #603

Description

@mberrys

Scope

Its own subsystem, built on a neutral model rather than page-content rewriting.

Model

PressSheet (width, height, gripper, margins, front, back); Placement (source_document, source_page, transform, trim_box, bleed_box, clipping, rotation); Signature (pages[], binding, creep, sheet_sequence).

Modes

  • N-up — place source pages as Form XObjects onto sheet pages; never flatten or rewrite their original content. Grid counts, gutters, orientation, scale policy, bleed overlap, duplex orientation.
  • Step-and-repeat / gang-up — multiple copies of one product or mixed products on a sheet; start with manually specified quantities and layouts (an automatic packing optimiser is a separate later issue).
  • Booklets — signature planning implemented separately from geometric placement: blank insertion, page ordering, left/right placement, front/back orientation, selectable signature sizes.
  • Creep / shingling — per nested sheet, offset pages toward/away from the spine from substrate thickness and sheet position, stored as an explicit creep_offset on the Placement rather than altering source artwork.
  • Sheet furniture — call the printer-marks engine (Printer marks and production furniture) for crop marks, registration marks, sheet identifiers and colour bars.

Architecture

Product pages → Signature Planner → Sheet Layout → Furniture → imposed PDF — which maps naturally to press/MIS integration later.

Deliverables

  • Sheet/Placement/Signature schemas + fixtures (n-up grids, duplex, booklet signatures, gang-up, creep).
  • Placement preview with page counts, sheet count, scaling and gutter values shown before commit.
  • Imposed output opens in an independent parser with correct boxes; source pages byte-preserved.
  • Creep stored on placements (never baked into source content).
  • Regression corpus: single-page, mixed page sizes, rotated pages, bleed/no-bleed.

Prerequisites / related

Shared mutation foundation; Printer marks and production furniture; interacts with PDF/VT record boundaries (PDF/VT variable-data production).

Batch context (2026-09-15 architecture review). These items are epics sharing five foundations, not isolated UI features: a production PDF object/mutation engine (parse page content/resources into an editable object model, mutate transactionally, regenerate a valid PDF, preserve untouched objects, run render/preflight/separation regression after every mutation), a separation/color engine, a sheet/layout engine, a production semantic/job model, and a revision/provenance model. Every edit is expected to produce a change record (changed_object_ids, operation, before, after, warnings, reversible). Recommended sequencing: Ink Manager + mutation foundation + printer furniture + basic hairline normalization first; then imposition and direct-object editing foundations; then ISO 19593 packaging; then PDF/VT and XJDF; customer portals and cloud collaboration much later.

Parked: no milestone, labeled future planned. Promote by assigning a milestone and removing the label when a release train picks this up.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    future plannedParked future work: no milestone; promote by assigning a milestone

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions