---
title: "produce-imposition | Customer&#x27;s Canvas Hub"
canonical: "https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/produce-imposition/"
---

# produce-imposition

> Learn how the produce-imposition task arranges designs on sheets using Photoshop templates.

:::note
Consider the newer [`populate-psd-template`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/populate-psd-template.md) task, which supports vector masks and renders not only placeholders but also other design elements, addressing the limitations of `produce-imposition`. To migrate, change the task name and replace parameters starting with `"interpolation..."` with those beginning with `"output..."`.
:::

The `produce-imposition` task arranges images on a sheet based on the layout described in a PSD template. This task takes input files, creates new images of the same size as in the template, and places input images in place of smart objects in the template.

When the input contains a single image, you can copy it to all the placeholders as well as draw a specified number of copies. The VDP scenario is also supported when the input contains different versions of the design. In this case, you can define whether they should be placed on the same or different sheets.

The resulting print file may look as follows:

![Print file with imposition.](./images/imposition.png)

You can test how imposition works with this template in [our demos](https://customerscanvas.com/demos/business-card-imposition).

## Preparing an imposition template in Photoshop

To provide a template for imposition:

1. Create a PSD file in Photoshop. Select the sheet size depending on the desired dimensions of the output PDF file, for example, 8.5x11 inches or 12x18 inches.
2. Add smart objects of the same size as the design and arrange them in a grid with the desired gap.
3. Do not add other layer types since they will be ignored.

    If you need cropping marks, draw them using the [`draw-crop-marks`](https://customerscanvas.com/docs/hub/printer-guide/pipelines/tasks/draw-crop-marks.md) task before producing the imposition.

For reference, you can download an imposition template for the letter sheet [bc-8up-letter](pathname:///files/bc-8up-letter.zip).

## Parameters

### Defining a product template

The template source can be specified in two ways:

1. Using the `impositionTemplateId`: the identifier of the PSD template.
2. Using two parameters:

    - `impositionTemplateName`: The name of the PSD template in the tenant's **Image** assets.
    - `impositionTemplateFolder`: The folder path containing the PSD template in the tenant's **Image** assets. The default is `"/"`, which means the **Image** folder.

    You can parameterize the file name using the [interpolation mechanism](https://customerscanvas.com/docs/hub/printer-guide/pipelines/concepts/interpolation.md). For example, if your personalization workflow populates a field in a project, such as `ImpositionTemplate`, refer to it with the following expression:

    `"impositionTemplateName": "{{project.items.@.impositionTemplate}}"`

### Configuring the rendering

Additional parameters for the task:

- `impositionInputRepeatCount` (number): _(optional)_ Defines how many times the entire list of input images will be repeated. For example, the value `3` for the three images `A, B, C` will result in the sequence `A, B, C, A, B, C, A, B, C`. The default value is `1`.
- `impositionRenderSeparateFiles` (boolean): _(optional)_ If `true`, it renders pages of a  multipage result into separate files. Possible values are `true` and `false`. The default value is `false`, and the multipage result is output to a single file.
- `impositionRenderDpi` (number): _(optional)_ The DPI value of the resulting file. The default value is `300`.
- `impositionRenderFormat` (string): _(optional)_ The output file format, one of `jpeg`, `png`, `tiff`, or `pdf`. The default value is `pdf`.
- `impositionRenderPdfCompression` (string): The compression method for the resulting file. For PDF files, the supported compression methods are `jpeg` and `zip`.
- `impositionRenderJpegCompressionQuality` (number): _(optional)_ The compression level for the content inside the resulting file. This value applies to the `pdf`, `jpeg`, and `tiff` formats with `jpeg` compression. `100` corresponds to maximum quality and file size, `0`: minimum quality and file size. The default value is `90`.
- `impositionRenderPdfAuthor` (string): _(optional)_ Metadata property `"Author"` for the PDF format.
- `impositionRenderPdfCreator` (string): _(optional)_ Metadata property `"Creator"` for the PDF format.
- `impositionRenderPdfKeywords` (string): _(optional)_ Metadata property `"Keywords"` for the PDF format.
- `impositionRenderPdfSubject` (string): _(optional)_ Metadata property `"Subject"` for the PDF format.
- `impositionRenderPdfTitle` (string): _(optional)_ Metadata property `"Title"` for the PDF format.
- `impositionOutputArchiveType` (string): _(optional)_ If specified, the rendering result will be packed into an archive. Possible values are `Zip` and `SevenZip`. By default, it is not specified.
- `impositionsOutputArchiveCompressionType` (string): _(optional)_ Supported types are `none`, `copy`, `default`, `deflate`, `deflate64`, `lzma`, and `lzma2`. The default value is `default`.

## Input

Images in PDF, JPEG, PNG, and TIFF formats can be submitted to the input. It can be a single image or a multi-page file, packed into an archive or not. The task will insert these images as is, saving vector data and the color space.

When you have a single file or a multi-page file at the input, specify a single input artifact.

```json
{
  "inputArtifacts": ["design"]
}
```

To provide many files to the input, list them separated by commas or add an asterisk to the artifact name.

```json
{
  "inputArtifacts": ["design*"]
}
```

By default, the `impositionInputRepeatCount` parameter is `1`. This means that the task will insert input images into placeholders in a single copy, leaving the rest of placeholders blank. If you have a single image at the input, it will populate all the placeholders.

For multiple input images, you need to control the number of these images and placeholders. For example, for two images and eight placeholders, set `impositionInputRepeatCount` to `4`.

```json
{
    "parameters": {
        "impositionInputRepeatCount": 4
    },
    "inputArtifacts": ["design-1", "design-2"]
}
```

## Output

When you have a single image at the input, the task will create a single file with imposition. In this case, specify a single output artifact.

```json
{
  "outputArtifacts": ["imposition-result"]
}
```

If there are many file copies at the input or a multi-page PDF, and if images remain after filling in all placeholders, the task creates the next page and so on until all images run out.

At the same time, you have several options to configure the output files:

- Set `impositionRenderSeparateFiles` to `false` and get a single multi-page PDF.

    ```json
    {
        "parameters": {
            "impositionRenderSeparateFiles": false
        },
        "outputArtifacts": ["imposition-result"]
    }
    ```

- Create several single-page files and pack them to a single archive.

    ```json
    {
        "parameters": {
            "impositionRenderSeparateFiles": true,
            "impositionOutputArchiveType": "SevenZip",
            "impositionsOutputArchiveCompressionType": "lzma"
        },
        "outputArtifacts": ["imposition-result"]
    }
    ```

- Send each page to a separate file and get many files at the output. If needed, they can also be archived, but a separate archive will be created for each file:

    ```json
    {
        "parameters": {
            "impositionRenderSeparateFiles": true,
            "impositionOutputArchiveType": "SevenZip",
            "impositionsOutputArchiveCompressionType": "lzma"
        },
        "outputArtifacts": ["imposition-result*"]
    }
    ```

## Example

```json
{
    "description": "Imposition",
    "name": "produce-imposition",
    "type": "produce-imposition",
    "inputArtifacts": [
        "hires-design"
    ],
    "parameters": {
        "impositionTemplateId": "b3c3112f-baff-4994-b477-6ba232361611",
        "impositionRenderDpi": 200,
        "impositionRenderFormat": "png",
        "impositionRenderSeparateFiles": true,
        "impositionRenderJpegCompressionQuality": 50
    },
    "outputArtifacts": [
        "result*"
    ]
}
```

You can find a complete example in the [produce-imposition](https://customerscanvas.com/docs/hub/printer-guide/pipelines/examples/produce-imposition.md) topic.
