Types

Supporting interfaces, type aliases and enums referenced by the JS API reference pages - the request/response shapes that show up as parameter and return types there. Generated from printess-editor.d.ts alongside the method pages, so this always matches what’s actually referenced.

AiTextEditOptionAllow

Type: “allowAiTextRewrite” | “allowAiTextFixSpelling” | “allowAiTextAddMoreText” | “allowAiTextShortenText” | “allowAiTextChangeWritingStyle” | “allowAiTextGenerateQuiz”

appliedLayoutInfo

isThemeDesign Flag

Type: null | { // template name tn: string, // document name dn: string, // document id did: string, // snippet id id?: string, // split variant spvarid?: string | null /** isThemeDesign Flag */ des: boolean }

AwsUploadProvider

The method which generates the final key to store within S3.

Extends: UploadProvider

Field Type Description
keyGenerator (fileName: string, fileHash: string) => string The method which generates the final key to store within S3.

ContentEditableItem

Field Type Description
id string
name string
isMandatory boolean
value string
maxCharacters number

DocumentContentEditables

Field Type Description
id string
name string
simpleTexts ContentEditableItem[]
multilineTexts ContentEditableItem[]
images ContentEditableItem[]
stories Record<string, string[]>

ErrorName

Type: “templateNotFound” | “addToBasketFailed”

externalDocChangeCallback

Type: (newDocId: string) => void

externalFormFieldChangeCallback

Type: (name: string, value: string, tag: string, label: string, ffLabel: string, disabled?: boolean, imageId?: string, meta1?: string, meta2?: string, meta3?: string, meta4?: string) => void

externalGetOverlayCallback

Type: (properties: Array<{ kind: iExternalPropertyKind, isDefault: boolean, isMandatory: boolean }>, width: number, height: number) => HTMLDivElement

externalPriceChangeCallback

Callback executed whenever price relevant information has changed. Once calculated the new price you can call refreshPriceDisplay()to update the price and product informations for the user. Example for iframe integration: (can be called on uiHelper as well) ``` iframe.contentWindow.postMessage({ cmd: “refreshPriceDisplay”, display: { price: string, // any string like “32.34€” oldPrice?: string // will be crossed out legalNotice?: string, // will be displayed under the price productName?: string // to change product name dynamically })} }, “*”); ```

Type: (infos: iExternalProductPriceInfo) => void

externalSelectionChangeCallback

Type: (properties: Array<iExternalProperty>, scope: “document” | “frames” | “text”) => void

externalSpreadChangeCallback

Type: (groupSnippets: ReadonlyArray<iExternalSnippetCluster> | Array<iExternalSnippetCluster>, layoutSnippets: ReadonlyArray<iExternalSnippetCluster> | Array<iExternalSnippetCluster>, tabs: ReadonlyArray<iExternalTab> | Array<iExternalTab>, hasRootFormFieldsWithOutTab: boolean, showSelectLayoutDialog: boolean, optOutHash: string, spreadId: string) => void

externalTabChangeCallback

Type: (tabId: “#NONE” | “#LAYOUTS” | “#PHOTOS” | “#THEME” | “#PAGES” | “#ADD-TEXT” | “#ADD-IMAGE” | “#FORMFIELDS” | “#FORMFIELDS1” | “#FORMFIELDS2” | string) => void

externalZoomChangeCallback

Type: () => void

ExtFF_WriteSecondWhat

Type: “value” | “label” | “info” | “tag” | “meta1” | “meta2” | “meta3” | “meta4”

ExtFFType

Type: “string” | “table” | “number” | “label” | “font” | “color” | “panel-script”

FFInfoStyle

Type: string

ForceSnippetPlacement

Type: “repeat-all” | “repeat-all-current” | “repeat-inside” | “repeat-inside-current”

FormFieldEntry

Field Type Description
key string
label string
description string

FormFieldItem

Field Type Description
name string
value string
visibility string
isPriceRelevant boolean
entries FormFieldEntry[]

formFieldListEntry

Field Type Description
key string
label? string multi-language??
description? string
imageId? string
tag? string
meta1? string
meta2? string
meta3? string
meta4? string
disabled? boolean

iButtonCircle

Field Type Description
hasSvgCircle boolean
hasImage boolean
hasCaption boolean
hasColor boolean
hasIcon boolean
icon iconName | “none”
displayGauge boolean
gaugeValue number
isSelected boolean
captionClass string
captionInCircle string
color string

iBuyerStep

Field Type Description
index number
boxId? string
docId string
title string

iClaudeDesignSettings

Field Type Description
product string
brandColors string[]
companyName string
graphicStyle? string
styleMode? “upload” | “pick” | “description”
logoUrl string
uploadedLogoFileName string
logoDarkUrl? string
uploadedLogoDarkFileName? string
prompt string
productType? string
ciImageUrl? string
uploadedCiImageFileName? string
lastResult? ConversionTask
lastInvalidResult? string

iconName

Type: “image” | “images” | “image-solid” | “image-regular” | “image-square” | “image-slash” | “portrait” | “bezier” | “text” | “text-solid” | “pathText” | “magnet” | “pointer” | “close-square” | “close” | “close-small” | “docRef” | “collapseLeft” | “expandLeft” | “expand-arrows” | “edit” | “edit-inverse” | “pen” | “pen-solid” | “pencil-ruler” | “plus” | “plus-bold” | “plus-circle” | “plus-square” | “minus” | “minus-bold” | “minus-light” | “circle-1” | “circle-1-red” | “shapes” | “shapes-solid” | “square” | “settings” | “vector-shape” | “address-card” | “paperclip” | “facing-pages” | “page” | “page-solid” | “cog” | “perspective” | “style” | “story” | “text-flow” | “exchange” | “text-align-justify-justify” | “text-align-justify-left” | “text-align-justify-right” | “text-align-justify-center” | “text-align-left” | “text-align-right” | “text-align-center” | “check” | “check-solid” | “check-square” | “user-circle” | “user-solid” | “user-crown-solid” | “arrow-left” | “arrow-right” | “arrow-up” | “arrow-down” | “arrows” | “arrows-circle” | “arrows-h” | “arrows-v” | “carret-down-solid” | “carret-right-solid” | “carret-left-solid” | “text-size” | “text-tracking” | “text-width” | “line-height” | “line-width” | “palette” | “brush” | “undo” | “undo-solid” | “redo” | “redo-solid” | “copy” | “copy-solid” | “paste” | “cut” | “object-ungroup” | “trash” | “trash-solid” | “remove-format” | “clipboard” | “search-plus” | “search-minus” | “search-plus-light” | “search-minus-light” | “search-light” | “save” | “save-light” | “slash” | “empty” | “cloud-upload-alt” | “folder-open-solid” | “folder-open” | “open-new-tab” | “tint” | “warp-arc” | “warp-flag” | “warp-bulge” | “warp-arc-upper” | “warp-pit-upper” | “warp-arc-lower” | “warp-pit-lower” | “warp-fish” | “warp-squeeze” | “warp-mug” | “mesh” | “crop” | “crop+rotate” | “place-image” | “fill-image” | “fit-image” | “vertical-align-bottom-baseline” | “vertical-align-center-baseline” | “vertical-align-center” | “vertical-align-top” | “vertical-align-bottom” | “warning” | “effects” | “robot” | “microchip” | “record” | “play” | “running” | “rotator” | “lock-closed” | “lock-open” | “lock-closed-solid” | “frame-lock-closed” | “frame-lock-opened” | “user-lock-closed” | “user-lock-opened” | “link” | “stroke-cap-round” | “stroke-cap-projecting” | “stroke-cap-butt” | “stroke-align-center” | “stroke-align-inside” | “stroke-align-outside” | “stroke-join-miter” | “stroke-join-round” | “stroke-join-bevel” | “wrap-both-sides” | “no-wrap” | “printess-wand” | “print-solid” | “shopping-cart” | “shopping-cart-fast” | “shopping-cart-solid” | “shopping-cart-add” | “folder-plus” | “eye-solid” | “eye-solid-pink” | “eye-solid-slash” | “eye-solid-slash-pink” | “font” | “send-back” | “send-backward” | “bring-front” | “bring-forward” | “distort” | “list-ul” | “drag” | “ellipsis-v” | “ellipsis-h” | “sun-light” | “adjust” | “scroll-old” | “align-top” | “align-middle” | “align-bottom” | “align-left” | “align-center” | “align-right” | “space-vertical-around” | “space-vertical-between” | “space-horizontal-around” | “space-horizontal-between” | “layer-group” | “ruler” | “layout-snippet” | “layout-snippet-invers” | “group-snippet” | “group-snippet-invers” | “primary-doc” | “primary-doc-invers” | “preview-doc” | “preview-doc-invers” | “production-doc” | “production-doc-invers” | “facebook-round” | “clock-solid” | “page-plus-solid” | “user-friends-solid” | “opacity” | “file-invoice” | “help” | “triangle-solid” | “pin-solid” | “pin” | “angle-right” | “angle-down” | “sync” | “mirror-x” | “mirror-y” | “folder-tree-solid” | “filter-reset” | “compact-disc” | “chevron-double-down-duotone” | “chevron-left” | “chevron-right” | “angle-left” | “angle-right” | “database” | “coins” | “sync-alt” | “clock-light” | “calendar-alt” | “calendar-light” | “coin-light” | “coin” | “page-inverse” | “page-light” | “bars-light” | “credit-card” | “info-circle” | “carret-left-solid” | “check-circle-solid” | “circle-dot” | “pause-solid” | “pause-light” | “angle-up-light” | “angle-down-light” | “chevron-up-light” | “chevron-down-light” | “sign-in-light” | “share-light” | “share-solid” | “reply-light” | “reply-solid” | “undo-arrow” | “redo-arrow” | “rotate” | “primary” | “back” | “angle-double-right” | “angle-double-left” | “arrow-to-right” | “arrow-to-left” | “distribute-image” | “minus-square” | “arrow-square-right” | “bullseye-pointer-solid” | “hand-pointer-light” | “project-diagram-solid” | “eye-dropper” | “eye-dropper-light” | “cloud-upload-light” | “cloud-upload-check” | “arrows-resize-h” | “arrows-resize-v” | “arrows-resize” | “arrows-minimize” | “arrows-maximize” | “shopping-basket” | “shopping-basket-light” | “home-solid” | “home-light” | “smile” | “code-curly” | “text-bottom” | “text-center” | “text-top” | “pen-swirl” | “handwriting” | “focus-face” | “focus-group” | “mug” | “shirt” | “flower” | “burger-menu” | “path-non-zero” | “path-even-odd” | “circle-dollar” | “grid-lines” | “table-thin” | “camera-slash” | “scissors” | “scissors-horizontal” | “scissors-vertical” | “record-up” | “record-down” | “arrow-left-circle” | “arrow-right-circle” | “grid-4” | “image-to-text” | “text-to-image” | “scroll-to-image” | “handwriting-to-text” | “text-to-handwriting” | “arrow-right-long” | “camera-solid” | “desktop-mobile-duotone” | “cloud-check-duotone” | “glass” | “pot-food” | “coke” | “cube-regular” | “cube-invers” | “deco-fading” | “deco-color-cut” | “deco-oblique-lines” | “deco-horizontal-lines” | “text-block-shadow” | “text-line-shadow” | “text-3d-shadow” | “text-no-shadow” | “add-gap-around” | “remove-gap-around” | “book-thin” | “book-solid” | “star-light” | “star-solid” | “tags-light” | “typewriter” | “repeat-light” | “remove-background” | “remove-background-simple” | “page-centered” | “expert” | “sticky-note” | “contrast” | “saturation” | “hammer+brush” | “qr-code” | “sort-solid” | “sort-solid-up” | “sort-solid-down” | “sparkling-star” | “download-solid” | “superscript” | “subscript” | “photo-grid” | “swap” | “page-margin” | “border” | “heart” | “paw”

iConversionMode

Type: “fc-swap” | “bg-rm” | “upscale” | “bg-face” | “image-edit” | “sgm-any”

iErrorCharacterMissing

Extends: iExternalErrorDisplay

Field Type Description
errorCode “characterMissing”
icon “text”

iErrorCode

Type: iErrorType[“errorCode”]

iErrorCustomStepValidation

Extends: iExternalErrorDisplay

Field Type Description
errorCode “customStepValidation”
result string
icon “circle-1”

iErrorEmpty

Extends: iExternalErrorDisplay

Field Type Description
errorCode “emptyError”
result string
label? string
ffId? string
icon “circle-1”

iErrorEmptyBookPage

Extends: iExternalErrorDisplay

Field Type Description
errorCode “emptyBookPage”
icon “facing-pages”

iErrorImageCouldNotUpload

Extends: iExternalErrorDisplay

Field Type Description
errorCode “imageCouldNotUpload”
icon “image”

iErrorImageMissing

Extends: iExternalErrorDisplay

Field Type Description
errorCode “imageMissing”
ffId? string
tabId? string
icon “image”

iErrorImageResolutionLow

Extends: iExternalErrorDisplay

Field Type Description
errorCode “imageResolutionLow”
dpi string
icon “image”
ffId? string

iErrorImageStillUploading

Extends: iExternalErrorDisplay

Field Type Description
errorCode “imageStillUploading”
icon “image”

iErrorInvalidDayValue

Extends: iExternalErrorDisplay

Field Type Description
errorCode “invalidDayValue”
maxValue string
icon “calendar-light”

iErrorInvalidNumber

Extends: iExternalErrorDisplay

Field Type Description
errorCode “invalidNumber”
icon “database”

iErrorInvalidPageCount

Extends: iExternalErrorDisplay

Field Type Description
errorCode “invalidPageCount”
icon “book-thin”

iErrorMandatoryTableCell

Extends: iExternalErrorDisplay

Field Type Description
errorCode “mandatoryTableCell”
icon “database”
missingColumns string
ffId? string
tabId? string

iErrorMaxChars

Extends: iExternalErrorDisplay

Field Type Description
errorCode “maxCharsExceeded”
icon “text”
maxChars number
ffId? string

iErrorMaxTableEntries

Extends: iExternalErrorDisplay

Field Type Description
errorCode “maxTableEntries”
icon “database”
rowsTooMany number
ffId string
tabId? string

iErrorMinTableEntries

Extends: iExternalErrorDisplay

Field Type Description
errorCode “minTableEntries”
icon “database”
rowsMissing number
ffId string
tabId? string

iErrorMissingEventText

Extends: iExternalErrorDisplay

Field Type Description
errorCode “missingEventText”
icon “text”

iErrorNeedMorePages

Extends: iExternalErrorDisplay

Field Type Description
errorCode “needMorePages”
icon “book-thin”
minSpreads number

iErrorNeedMorePhotos

Extends: iExternalErrorDisplay

Field Type Description
errorCode “needMorePhotos”
icon “image”
min number
add number

iErrorNoLayoutSnippetSelected

Extends: iExternalErrorDisplay

Field Type Description
errorCode “noLayoutSnippetSelected”
icon “layout-snippet”

iErrorNotChecked

Extends: iExternalErrorDisplay

Field Type Description
errorCode “notChecked”
icon “close-square”
ffId? string
tabId? string

iErrorNotSelected

Extends: iExternalErrorDisplay

Field Type Description
errorCode “notSelected”
icon “close-square”
ffId? string
tabId? string

iErrorOffensiveLanguage

Extends: iExternalErrorDisplay

Field Type Description
errorCode “offensiveLanguageDetected”
icon “text”
ffId? string

iErrorPreflight

Extends: iExternalErrorDisplay

Field Type Description
errorCode “preflight”
icon “edit”

iErrorRegExpNotMatching

Extends: iExternalErrorDisplay

Field Type Description
errorCode “regExpNotMatching”
icon “text”
regExp string
ffId? string

iErrorRowIndexLessThanZero

Extends: iExternalErrorDisplay

Field Type Description
errorCode “rowIndexLessThanZero”
icon “database”

iErrorTextMissing

Extends: iExternalErrorDisplay

Field Type Description
errorCode “textMissing”
icon “text”
ffId? string
tabId? string

iErrorTextOverflow

Extends: iExternalErrorDisplay

Field Type Description
errorCode “textOverflow”
icon “text”

iErrorTooManyPages

Extends: iExternalErrorDisplay

Field Type Description
errorCode “tooManyPages”
icon “book-thin”
maxSpreads number

iErrorTooManyPhotos

Extends: iExternalErrorDisplay

Field Type Description
errorCode “tooManyPhotos”
icon “image”
max number
remove number

iErrorType

Type: iErrorImageResolutionLow | iErrorImageMissing | iErrorImageStillUploading | iErrorImageCouldNotUpload | iErrorEmpty | iErrorPreflight | iErrorUserCanceled | iErrorCustomStepValidation | iErrorEmptyBookPage | iErrorInvalidPageCount | iErrorNeedMorePages | iErrorTooManyPages | iErrorCharacterMissing | iErrorMaxChars | iErrorRegExpNotMatching | iErrorOffensiveLanguage | iErrorTextMissing | iErrorTextOverflow | iErrorNotSelected | iErrorNotChecked | iErrorNoLayoutSnippetSelected | iErrorMinTableEntries | iErrorMaxTableEntries | iErrorMandatoryTableCell | iErrorMissingEventText | iErrorInvalidNumber | iErrorInvalidDayValue | iErrorRowIndexLessThanZero | iErrorNeedMorePhotos | iErrorTooManyPhotos

iErrorUserCanceled

Extends: iExternalErrorDisplay

Field Type Description
errorCode “user-canceled”
result string

iExternalBookSettings

optional: could be any Length value, like an equation or a fixed value with unit, e.g. =spine.pages * 0.3mm or 2cm

Field Type Description
spine? string optional: could be any Length value, like an equation or a fixed value with unit, e.g. =spine.pages * 0.3mm or 2cm
hinge? number | string optional: hinge could be a Length value, like 1cm or 2inch or a number in pixel
edgeX? number | string optional: edge-left-right could be a Length value, like 1cm or 2inch or a number in pixel
edgeY? number | string optional: edge-top-bottom could be a Length value, like 1cm or 2inch or a number in pixel
bleedX? number | string optional: bleed-left-right could be a Length value, like 1cm or 2inch or a number in pixel
bleedY? number | string optional: bleed-top-bottom could be a Length value, like 1cm or 2inch or a number in pixel
minPages? number optional: Minimum Book Pages set min pages value and auto adds additional pages
maxPages? number optional: Maximum Book Pages set max pages and outo removes overidge pages
initialFreestylePhotobookPages? number optional: Initial Freestyle Photobook Pages set initial amount of pages the freestyle photobook is created with
layflat? boolean optinal: enable / disable layflat mode
lockCoverInside? boolean optional: if true, first page and last page become invisible
addSpreads? 1 | 2 optional: determines the min-spreads to add and also if the spread-count needs to be divisible by 2 to be printed
bookImposition? string optional: set the book inside pages document imposition by name
coverImposition? string optional: set all cover documents imposition by name
previewCoverType? “hard” | “soft”
useDebossedCover? boolean optional: enable the debossed (premade) cover - the cover gets a fixed number of images and no theme cover layout is applied
debossedCoverImageCount? number optional: number of images (0-4) placed on the debossed cover

iExternalBoundingBox

A bounding box in XYXY fromat

Field Type Description
x1 number
y1 number
x2 number
y2 number

iExternalBoxMeta

Field Type Description
docId string
spreadId string
spreadIndex number
boxId string
feature string Feature
paragraphs? Array<number>
property string anyProperty | “FormField”
parentBoxId string | null
paragraphIndex number
layerName string | null

iExternalButton

only-image-upload hides all other upload buttons

Field Type Description
location “button-bar” | “image-upload” | “only-image-upload” only-image-upload hides all other upload buttons
label string
hint? string
icon? iconName
iconSize? “small” | “large” only takes effect if no label is ste. “large” is default
color “primary” | “secondary”
outline “solid” | “outline”
where? “desktop” | “mobile” Where is the button is shown, default is everywhere
clickCallback () => any Callback executed on button click

iExternalCollageLayout

Field Type Description
snippetId string
snippetUrl string
snippetThumb string
snippetDocId string
snippetTitle string
snippetKeywords string[]
page “left” | “right” | “entire”
slots iExternalCollageSlot[]
match number
preferred number
simple number
splitVariantId string

iExternalCollageSlot

Field Type Description
aspect number
sw number size factor width
sh number size factor height
st number size factor top
sl number size factor left
ang number rotation-angle
split boolean

iExternalColor

Field Type Description
mode “rgb” | “cmyk”
label string
allowCMYK boolean
r number 0-255
g number
b number
c number 0-100
m number
y number
k number

iExternalContextMenuItem

Field Type Description
caption string
sub? Array<contextMenuItem>
callback? () => void
bold? boolean
disabled? boolean
color? string
icon? iconName
font? string
textOnly? boolean
hidden? boolean

iExternalDocAndSpreadInfo

The ID of the document

Field Type Description
docId string The ID of the document
docTitle string The Title of the document
spreads Array<iExternalSpreadInfo> Information about all spreads of this document
spreadCount number The amount of spreads (not pages!) in this document
pageCount number The amount of pages in this document
facingPages boolean Information if the document has facing pages. If true first and last spread has 1 page all other spreads have 2 pages.
isBook boolean Information if the document is set to “book” mode and can therefore add/remove pages etc.
lockCoverInside boolean Especially for layflat books where the first and last pages are not visible
showBookShadow boolean If a shadow between facing pages should be shown
userCanAddSpreads boolean Indicates if the user is allowed to add spreads
minSpreads number minimum number of spreads
maxSpreads number maximum number of spreads
minPages number minimum number of pages
maxPages number maximum number of pages

iExternalError

Field Type Description
boxIds Array<string>
pinnedDocId? string
errorCode iErrorCode
errorValue1 string | number
errorValue2? string | number
errorValue3? string | number
errorValue4? string
errorIcon? iconName

iExternalErrorDisplay

Field Type Description
errorCode iErrorCode
icon iconName
label? string
boxIds Array<string>
pinnedDocId? string

iExternalFieldListEntry

Info on for Slim UI Only

Field Type Description
key string
label string multi-language??
description string
imageUrl string
tag string
enabled boolean
icon? iconName
meta1? string
meta2? string
meta3? string
meta4? string
match boolean
hiddenLayers? string[] Info on for Slim UI Only

iExternalFormFieldImageListItem

Field Type Description
imageId string
image iExternalImage
isSelected boolean
key string
label string
description? string
meta1? string
meta2? string
meta3? string
meta4? string

iExternalFormFieldMeta

Field Type Description
dataType ExtFFType
id string
origin “scope” | “doc”
numberType string | null
textBefore string
textAfter string
priceRelevant boolean
priceDisplay number priceDisplay
pricePrefix string pricePrefix
pricePostfix string pricePostfix
hasPerLetterPricing boolean hasPerLetterPricing;
imageDetails { // image details width: number, height: number, groups: Array<string>, showCrop?: boolean, checkDpi?: boolean, dpi?: number, dpiWidth?: string, dpiHeight?: string }
visibility “admin” | “buyer” | “condition”
condition string
listConditionDescriptionFF string
listConditionMeta1FF string
listConditionMeta2FF string
listConditionMeta3FF string
listConditionTableColumn string
writeSecondFF string writes current (writeSecondFFWhat) value to other FF
writeSecondFFWhat ExtFF_WriteSecondWhat
writeSecondFF2 string writes current (writeSecondFFWhat) value to other FF
writeSecondFFWhat2 ExtFF_WriteSecondWhat
writeSecondFF3 string writes current (writeSecondFFWhat) value to other FF
writeSecondFFWhat3 ExtFF_WriteSecondWhat
writeSecondFF4 string writes current (writeSecondFFWhat) value to other FF
writeSecondFFWhat4 ExtFF_WriteSecondWhat

iExternalFrame

Field Type Description
top string
left string

iExternalGenImageFollowUpAction

Type: “remove-background” | “assign-to-frame”

iExternalGenImageModel

Type: | ImgModel_Sdxl | ImgModel_FluxSchnell | ImgModel_FluxDev | ImgModel_FluxPro | ImgModel_FluxUltra | ImgModel_FluxProKontextEdit | ImgModel_Flux2Klein4BEdit | ImgModel_NanoBanana | ImgModel_NanoBananaEdit | ImgModel_NanoBananaPro | ImgModel_NanoBananaProEdit | ImgModel_NanoBanana2 | ImgModel_NanoBanana2Edit | ImgModel_GptImage1 | ImgModel_GptImage1Edit | ImgModel_GptImage1_5 | ImgModel_GptImage1_5Edit | ImgModel_GptImage2 | ImgModel_GptImage2Edit | ImgModel_Ideogram4 | ImgModel_Ideogram4Edit

iExternalGenTextModel

Which LLM to prompt.

Field Type Description
model iExternalGenTextModelName Which LLM to prompt.
prompt string The prompt. ${...} expressions are evaluated against the current form fields first, so `Write a birthday card for ${form.name}` works.
maxTokens? number Upper bound for the generated text, in tokens. Defaults to the chosen model’s maximum.

iExternalGenTextModelName

Type: TextModel_Anthropic | TextModel_OpenAi

iExternalHyphenationLanguage

Type: “off” | “en-us” | “de” | “fr” | “es” | “se”

iExternalImage

The Printess image-id, use for assigning the image to frames

Field Type Description
id string The Printess image-id, use for assigning the image to frames
originalImageUrl string The original-URL, be careful might be PDF or TIFF!
pngImageUrl string Returns always a PNG-URL, best for passing to AI models
thumbUrl string A scaled down version of the images for ui display
thumbCssUrl string A scaled down version for direct use in css, contains url(‘’) brackets
width number
height number
fileHash string
inUse boolean
useCount number
group string
average number
name string
analysis? iExternalImageAnalysis
groupAnalysis? iExternalImageGroupAnalysis
lastModified number
uploaded number

iExternalImageAiStore

text-2-image Model

Field Type Description
tMod? iExternalText2ImageModel text-2-image Model
tPmt? string text-2-image prompt
tnPmt? string text-2-image negatve prompt
tPre? string text-2-image prefix
tPos? string text-2-image postfix
tSty? SdxlStyle text-2-image style
tSel? boolean select style
tBcg? iExternalText2ImageBackground text-2-image background
sat? iExternalSegmentAnythingTaskStore segment anything task
sft? iExternalSegmentFaceTaskStore segment face task
iAA? iExternalImageAssignAction Image Assign Action
iEP? string image-edit prompt
iEQ? iExternalImageEditQuality image-edit quality
iEM? iExternalImageEditModel image-edit model
iERBg? boolean image-edit remove background
iEAIU? string[] image-edit additional imageurl

iExternalImageAnalysis

Field Type Description
imageId string
width number
height number
datetime number
focusScoreFft number
numFaces number
faceBboxes iExternalBoundingBox[]
faceAestheticScores? number[]
allFacesBbox? iExternalBoundingBox
faceAreasPct number[]
faceFocusScore number
imageFocusScore number
focalPointPct { x: number, y: number }
preferredOrientation string
preferredAspect number
isScreenshot boolean
isDocument boolean
isBlurry boolean
documentProbability number
colorPalette string[]

iExternalImageAnalysisOptions

Field Type Description
dummyAttribute? boolean

iExternalImageAnalysisStep

Type: “analyze” | “error” | “done”

iExternalImageAssignAction

Type: undefined | “fc-swap” | “bg-rm” | “bg-face” | “face-sticker” | “bg-sticker” | “contour-only” | “image-edit” | “sgm-any” | “sgm-any-sticker”

iExternalImageEditModel

Type: “GPT ImageEdit” | “GPT Image 1.5” | “GPT Image 2” | “Nano Banana” | “Nano Banana Pro” | “Nano Banana 2” | “Flux Pro Kontext” | “Flux 2 Klein 4B” | “Ideogram 4”

iExternalImageEditQuality

Type: “low” | “medium” | “high”

iExternalImageFrameDimensions

Field Type Description
width number
height number
widthCaption string
heightCaption string

iExternalImageFrameInfos

Field Type Description
frame iExternalImageFrameDimensions
image { width: number, height: number, originalImageUrl: string, displayImageUrl: string }
crop { xPosition: number; // 0-1 yPosition: number; // 0-1 widthScale: number; // 0-1 heightScale: number; // 0-1 }
conversion? iImageConversionSettings
conversionBaseImage? string
conversionAppliedImage? string
rotation? iExternalImageRotation
rotationSourceImage? iImage
minDPI number
imagePlacement “fill” | “fit” | “crop” | “ai”

iExternalImageGroupAnalysis

Field Type Description
timeCluster number
featureCluster number
featureClusterPriority number
duplicateCluster number
duplicateSimilarity number
similarityClusters number[]

iExternalImageMeta

Indicates if you can modify scaling on that image

Field Type Description
scale number
scaleHints iExternalImageScaleHints
imageGroups string[]
sepia number
brightness number
contrast number
vivid number
hueRotate number
invert number
placement “fit” | “fill”
thumbUrl string
thumbCssUrl string
canUpload boolean
hasFFCropEditor boolean
isAiGenererated boolean
isVector boolean
prompt string
canScale boolean Indicates if you can modify scaling on that image
canSetPlacement boolean
canSetDefaultImage boolean
allows Array<“sepia” | “brightness” | “contrast” | “vivid” | “hueRotate” | “invert”>
filterTags ReadonlyArray<string> | Array<string>
isHandwriting boolean
average number
slimAI? iExternalImageAiStore Only available for Slim UI
imageFrameInfos? iExternalImageFrameInfos Used only by Slim UI to store values
assignedImage? iImage | null Used only by Slim UI to store values
allowOnlyVectorImageUpload? boolean Used only by Slim UI to store values
allowSvgUpload? boolean Used only by Slim UI to store values
allowPdfUpload? boolean Used only by Slim UI to store values

iExternalImageRotation

Field Type Description
sourceImage string ist das rotierte Bild als Data-Url, brauchen wir eigentlich nicht im SLIM-UI
initialRotation “0” | “90” | “180” | “270”
degree number -45 - 45
frameAspect number
scaleFactor number
cropX number
cropY number
cropWidth number
cropHeight number

iExternalImageScaleHints

Field Type Description
min number
max number
dpiAtScale1 number

iExternalImageSegmentModelModel

Type: “Segment Anything” | “Segment Anything 3”

iExternalListMeta

Field Type Description
list? Array<iExternalFieldListEntry>
thumbWidth number
thumbHeight number
imageCss string
descriptionFilter? string
colorsWithoutLabel? boolean

iExternalMarginSettings

optional: show or hide margin guide lines

Field Type Description
show? boolean optional: show or hide margin guide lines
inside? string optional: left (or inside) margin — Length string like "1cm" or "5mm"
outside? string optional: right (or outside) margin — Length string like "1cm" or "5mm"
top? string optional: top margin — Length string like "1cm" or "5mm"
bottom? string optional: bottom margin — Length string like "1cm" or "5mm"
columns? number optional: number of text columns (0–4)
columnGap? string optional: gap between columns — Length string like "5mm" or "1cm"
horizontalGuides? string[] optional: horizontal guide positions (y-axis lines) as length strings like "1cm" or "5mm"
verticalGuides? string[] optional: vertical guide positions (x-axis lines) as length strings like "1cm" or "5mm"

iExternalMetaPropertyKind

Type: null | “text-style-color” | “text-style-size” | “text-style-line-height” | “text-style-tracking” | “text-style-baseline-script” | “text-style-font” | “text-style-hAlign” | “text-style-vAlign” | “text-style-vAlign-hAlign” | “text-style-paragraph-style” | “handwriting-image” | “image-scale” | “image-placement” | “image-sepia” | “image-brightness” | “image-contrast” | “image-vivid” | “image-invert” | “image-hueRotate” | “image-rotation” | “image-crop” | “image-filter” | “letter-generator” | “remove-background” | “image-tools” | “crop+rotate”

iExternalNumberUi

Field Type Description
max number
min number
step number
digits number
postfix string
restrictRange? boolean
restrictStep? boolean

iExternalPhotobookDocInfo

Field Type Description
facing boolean
minSpreads number
maxSpreads number
addSpreadCount number
hasCoverDocument boolean
aspect number

iExternalPhotobookOptions

Field Type Description
distributionMethod “cc” | “fs” | “simple”
spreadCount number
imageCount number
firstSpreadImageCount number
lastSpreadImageCount number
minImagesPerSpread number
maxImagesPerSpread number
maxCollectedPerSpread number
filterImages boolean
initialCreation boolean
coverImageCount number
useExclusiveCoverImages boolean

iExternalPhotobookStep

Type: “mode” | “start” | “upload” | “adjust” | “analyze” | “customize” | “distribute” | “error” | “done”

iExternalProductPriceInfo

passed whenever a price could have possible changed contains all price-relevant informations from printess in one place

Field Type Description
priceRelevantFormFields { [key: string]: { value: string, tag: string } } key / value list of all price relevant form fields
pricePerLetterFormFields { [key: string]: { price: number, amount: number } } key / value list of all price-per-letter form fields with price and character count
snippetPriceCategories Array<iUsedPriceCategory> Sum of all used priceCategoryGroups and there used amounts All used layout-snippets and stickers with a price category will be summed up here Form Fields with per-letter price catogorie will show here as well
pageCount number Page count of book inside pages document if available, otherwise current document page count.
printedRecordsCount number If a local table-form-field is used as data-source it returns the total numbers of records in the output PDF. If a column “circulation” is present, it outputs the row “circulation” times. Result is propably higher than the amount of records in the table-form-field In Single Photo Mode, printedRecordsCount is the total amount of prints produced.
pureRecordsCount number If a local tabel-form-field is used as data-source it returns the numbers of rows in the table Form Field. This values does not include “circulation” set for individual rows.
hasCirculationColumn boolean Indicates if the tabel-form-field has circulation column.
priceCategories Array<string> @deprecated A list of all used document-price-categories. Only returns documents which have actually been edited by the buyer Important: Its deprecated, You can not enable this feature anymore!
testModeEnabled boolean @internal

iExternalProperty

availaible for slim-ui only

Field Type Description
id string
value string | number
kind iExternalPropertyKind
label string
info string
ffName? string
infoStyle FFInfoStyle
controlGroup number
controlGroupGap? number
amountOfListedColors? number
classNames? string
isMobileHead? boolean
controlGroupSize? number
validation? iExternalValidation
textStyle? iExternalTextStyle
imageMeta? iExternalImageMeta
listMeta? iExternalListMeta
tableMeta? iExternalTableMeta
tabId? string
validationResult? { remainingChars: string, error: string, remainingCharsNumber: number }
bgColorIndex? number
formFieldMeta? iExternalFormFieldMeta availaible for slim-ui only
boxMetas? Array<iExternalBoxMeta> availaible for slim-ui only
origin? “template” | “layout” availaible for slim-ui only
position? number availaible for slim-ui only
title? string availaible for slim-ui only
fontGroups? string[] Allowed font groups for a font property / font-list form field (slim-ui only)
colorGroups? string[] Allowed color groups for a color property / color-list form field (slim-ui only)
onHiddenLayer? boolean Used only by Slim UI to store values
linkedPropertyId? string
panelScriptName? string Name of the panel-script function, only set when kind === “panel-script”

iExternalPropertyKind

Type: “edit-text-button” | “edit-group-button” | “color” | “single-line-text” | “text-area” | “label” | “checkbox” | “background-button” | “splitter-layouts-button” | “grid-gap-button” | “convert-to-image” | “convert-to-text” | “record-left-button” | “record-right-button” | “horizontal-scissor” | “vertical-scissor” | “multi-line-text” | “selection-text-style” | “selection-letter-ai” | “selection-text-ai” | “selection-text-handwriting” | “number” | “pixelLength” | “percentLength” | “image” | “font” | “select-list” | “select-list+info” | “tab-list” | “image-list” | “image-list+caption” | “color-list” | “table” | “image-id” | “patternTileWidth” | “text-frame-style” | “custom-text-combo” | “panel-script”

iExternalRect

Field Type Description
left number
top number
width number
height number

iExternalSegmentAnythingTaskStore

Field Type Description
md iExternalImageSegmentModelModel model
pt string prompt
cls string classes
out string output
cp boolean crop
dp boolean doublePass
es number erosionStrength
ss number smoothingStrength

iExternalSegmentFaceProvider

Type: “Printess” | “CutoutPro”

iExternalSegmentFaceTaskStore

Field Type Description
pv iExternalSegmentFaceProvider provider
cp boolean crop

iExternalSnippet

Field Type Description
title string
snippetUrl string
thumbUrl string
facingPagesUrl? string
bgColor string
priceLabel string
imageCount number
sortNumber number
keywords? string[]
colorSchemes? Array<{ name: string, default: boolean }>
colorSchemeThumbUrls? Record<string, string>

iExternalSnippetCluster

Field Type Description
tabId string
name string
columns number
stickerMenuId string
stickerMenuTags string[] | ReadonlyArray<string>
snippets Array<iExternalSnippet>

iExternalSpreadInfo

ID of the spreads document

Field Type Description
docId string ID of the spreads document
spreadId string ID of the spread
index number Zero based spread index (not page nr)
name string Name of spread if set by the designer
names Array<string> For multiple pages on a spread: name per page or empty string Array always has pagesamount of entries. User can enter spread-name array members devided by pipe symbol: name="left|right" will be exposed as names=["left", "right"]
width number Spread width in pixel
height number Spread height in pixel
pages number
thumbnails Array<{ url: string, bgColor: string, pageId: string }> Array of page thumbnails. Url might be empty if not available

iExternalTab

Field Type Description
id string
caption string
head? string
icon iconName

iExternalTableAddOption

Field Type Description
label string
type string
libFF string
multi boolean
bg string

iExternalTableColumn

Maximum allowed characters

Field Type Description
name string
label? string
readonly? boolean
data? “string” | “boolean” | “number” | “image” | “color” | “multi”
list? Array<string | number>
listMode? “select” | “auto-complete” | “multi-from-form-field”
width? string
row? string
hide? boolean
max? number Maximum allowed characters
inline? boolean
type? string
mandatory? boolean

iExternalTableMeta

Field Type Description
columns Array<iExternalTableColumn>
month? number
year? number
tableType “generic” | “calendar-events”
minTableEntries number
maxTableEntries number
tableAddOptions Array<iExternalTableAddOption>

iExternalText2ImageBackground

Type: “transparent” | “opaque” | “auto”

iExternalText2ImageModel

Type: “SDXL” | “Flux Ultra” | “Flux Pro” | “Flux Dev” | “Flux Schnell” | “GPT Image 1” | “GPT ImageEdit” | “GPT Image 1.5” | “GPT Image 2” | “Nano Banana” | “Nano Banana Pro” | “Nano Banana 2” | “Ideogram 4”

iExternalTextStyle

Field Type Description
size string
lineHeight number
color string
font string
tracking number
hAlign “bullet” | “left” | “center” | “right” | “justifyLeft” | “justifyCenter” | “justifyRight” | “justifyJustify”
vAlign “top” | “center” | “bottom”
allows Array<“insertFormFields” | “forceValidation” | “expressions” | “removeIfDefault” | “strokeWidth” | “clearOnFocus” | “offensive” | “content” | “mandatory” | “color” | “stroke” | “font” | “size” | “superscript” | “lineHeight” | “tracking” | “baselineShift” | “horizontalAlignment” | “verticalAlignment” | “padding” | “styles” | “bullet” | “indent” | “paragraphSpacing” | “baselineGrid” | “handWriting” | “letterGenerator”>
baselineScript “none” | “super” | “sub”
pStyle string
spaceAfterPx number
spaceBeforePx number

iExternalValidation

Optional placeholder text shown while the field value is empty (textbox form fields only).

Field Type Description
maxChars number
regExp string
regExpMessage string
defaultValue string for mandatory check
textTransform “mixed” | “upper” | “lower”
isMandatory boolean
clearOnFocus boolean
placeholder? string Optional placeholder text shown while the field value is empty (textbox form fields only).
noOffensiveLanguage boolean
visibility “always” | “conditional-on” | “conditional-off”
htmlInputType “text” | “password” | “email” | “number” | “tel” | “url” | “search” | “date” | “datetime-local” | “month” | “week” | “time”
maxNumber number

iFormFieldNameValue

Field Type Description
name string
value string | object

iFormFieldProperty

Field Type Description
name string
addNew? “text” | “label”
addPosition? “top” | “bottom” TODO: Support position
regExp? string
regExpMessage? string
info? string
maxChars? number
priceDisplay? number
pricePrefix? string
pricePostfix? string
hasPerLetterPricing? boolean
isMandatory? boolean
clearOnFocus? boolean
priceRelevant? boolean
list? Array<formFieldListEntry>
visibility? “admin” | “buyer” | “condition”
condition? string
caption? string
classNames? string

iFrameCountAndMarkers

Provides information about number of frames edited by the buyer per document

Field Type Description
documentName string Name of document
frames number Count of buyer manipulated frames
spreads Array<iFrameCountAndMarkersSpread> Detailed information about all spreads

iFrameCountAndMarkersSpread

Provides information about number of frames edited by the buyer per spread

Field Type Description
spreadName string Name of spread
frames number Count of buyer manipulated frames on spread
markers Record<string, number> List of markes used by buyer manipulted frames on spread

IGenericDialogOptions

Fired when user press then ok button. Return “keep-open” to not close the dialog

Field Type Description
callback () => Promise<void | “keep-open”> | void | “keep-open” Fired when user press then ok button. Return “keep-open” to not close the dialog
cancelCallback? () => Promise<void | “keep-open”> | void | “keep-open” Fired when user press then cancel button. Return “keep-open” to not close the dialog
headline string
okLabel? string
cancelLabel? string
message? string
info? string
relativePosition? boolean
minHeight? string

iImage

Field Type Description
fileName string
original iScaledImage
source? iScaledImage in case it’s not png or jpg, this one contains the info about the source file (pdf, svg, tif etc)
scaledVersions? iScaledImage[]
originalOrder? number
originalGroup? string
version? number
average? number number ranging from 0-255 (0 full black, 255 full white), the average of the image pixel values

iImageConversionSettings

Field Type Description
mode iConversionMode
prompt? string
quality? string

ImageAIFilter

Field Type Description
id string
label string
type ImageAiFilterType
model ImageAiFilterModel
isUserPrompt boolean
promptPrefix? string
prompt string
gptQuality? “low” | “medium” | “high”
thumbnailUrl string

ImageAIFilterCategory

Field Type Description
id string
label string
filters ImageAIFilter[]

ImageAiFilterModel

Type: “GPT ImageEdit” | “Nano Banana” | “Nano Banana Pro” | “Nano Banana 2”

ImageAiFilterType

Type: “IMAGE-EDIT”

iMakeData

Field Type Description
businessName string
businessType string
valueProposition string
language string
logoUrl string
email string
website string
tel string
addressLine1 string
addressLine2 string
addressLine3 string

iMergeTemplate

Name of the template or Snippet ID to load an merge into the currently loaded template.

Field Type Description
templateName string Name of the template or Snippet ID to load an merge into the currently loaded template.
templateVersion? “draft” | “published” The version to load. Defaults to “published”.
documentName? string Name of the document you want to merge. If none is specified the primary document of the template will be taken.
spreadIndex? number At what spread index the incoming template will be merged
mergeMode? MergeMode Force Printess to merge in a particular layout-snippet mode. Frames which are merged as “layout-snippets” or “repeat-snippets” will be removed once the user places a new layout-snippet of the same type.
mergeResources? MergeResource[] Define which resources you want to merge from the template additionally.
useAsTemplateName? boolean Use the template name of this merge template to overwrite the master template name. When producing this template, you’ll see this merge template name instead of the master template name.
pos? iExternalRect
ignoreExchangeIds? boolean Tells printess to not apply exchange-id data

ImgModel_Flux2Klein4BEdit

Field Type Description
model “Flux2Klein4BEdit”
prompt string
inputImageUrls string[]

ImgModel_FluxDev

Field Type Description
model “FluxDev”
prompt string

ImgModel_FluxPro

Field Type Description
model “FluxPro”
prompt string

ImgModel_FluxProKontextEdit

Field Type Description
model “FluxProKontextEdit”
prompt string
inputImageUrl string
enhancePrompt? boolean

ImgModel_FluxSchnell

Field Type Description
model “FluxSchnell”
prompt string

ImgModel_FluxUltra

Field Type Description
model “FluxUltra”
prompt string

ImgModel_GptImage1

Field Type Description
model “GptImage1”
prompt string
quality? “low” | “medium” | “high”
background? “transparent” | “opaque” | “auto”

ImgModel_GptImage1_5

Field Type Description
model “GptImage1_5”
prompt string
quality? “low” | “medium” | “high”
background? “transparent” | “opaque” | “auto”

ImgModel_GptImage1_5Edit

Field Type Description
model “GptImage1_5Edit”
prompt string
inputImageUrls string[]
quality? “low” | “medium” | “high”
background? “transparent” | “opaque” | “auto”

ImgModel_GptImage1Edit

Field Type Description
model “GptImage1Edit”
prompt string
inputImageUrls string[]
quality? “low” | “medium” | “high”
background? “transparent” | “opaque” | “auto”

ImgModel_GptImage2

Field Type Description
model “GptImage2”
prompt string
quality? “low” | “medium” | “high”

ImgModel_GptImage2Edit

Field Type Description
model “GptImage2Edit”
prompt string
inputImageUrls string[]
quality? “low” | “medium” | “high”

ImgModel_Ideogram4

Field Type Description
model “Ideogram4”
prompt string
quality? “low” | “medium” | “high” used for the “rendering_speed” setting
promptExpansion? “None” | “Medium” | “Large”
acceleration? “none” | “low” | “regular” | “high”

ImgModel_Ideogram4Edit

Field Type Description
model “Ideogram4Edit”
prompt string
inputImageUrl string
quality? “low” | “medium” | “high” used for the “rendering_speed” setting
promptExpansion? “None” | “Medium” | “Large”
acceleration? “none” | “low” | “regular” | “high”

ImgModel_NanoBanana

Field Type Description
model “NanoBanana”
prompt string

ImgModel_NanoBanana2

Field Type Description
model “NanoBanana2”
prompt string
resolution? “0.5K” | “1K” | “2K” | “4K”

ImgModel_NanoBanana2Edit

Field Type Description
model “NanoBanana2Edit”
prompt string
inputImageUrls string[]
resolution? “0.5K” | “1K” | “2K” | “4K”

ImgModel_NanoBananaEdit

Field Type Description
model “NanoBananaEdit”
prompt string
inputImageUrls string[]

ImgModel_NanoBananaPro

Field Type Description
model “NanoBananaPro”
prompt string
resolution? “1K” | “2K” | “4K”

ImgModel_NanoBananaProEdit

Field Type Description
model “NanoBananaProEdit”
prompt string
inputImageUrls string[]
resolution? “1K” | “2K” | “4K”

ImgModel_Sdxl

Field Type Description
model “SDXL”
prompt string
negativePrompt? string

iMobileUIButton

Field Type Description
icon? iconName | “none”
thumbCssUrl? string
circleStyle? string
ffCircleCaption? string
caption string
hasCollapsedMetaProperties boolean
newState iMobileUiState
hide? boolean

iMobileUiState

Field Type Description
state “ext-value” | “form-fields” | “selection” | “imageCrop” | “table-edit” | “off-canvas” | “text-frame-style”
externalProperty? iExternalProperty
metaProperty? iExternalMetaPropertyKind
tableRowIndex? number

iPhotobookEstimation

Field Type Description
spreads number
clusterCounts Array<number[]>
imagesPerSpread Array<number>

iPhotobookTheme

Field Type Description
name string
thumb string
themeTags string[]
searchTags string[]
backgroundTags string[]
stickerTags? string[]
stickerMenuId? string
textStickerTags? string[]
textStickerMenuId? string
photoStickerTags? string[]
photoStickerMenuId? string
keywords string[] for keyword menu based filtering
pageCount number
pageSetup Array<{ snippet: iPhotobookThemePageInfo | null, type: PhotobookThemePageType }>
backgroundSnippet iPhotobookThemePageInfo | null
filtering PhotobookThemeFiltering
wizard PhotobookThemeWizard
hasThemeLayoutsCover? boolean
hasThemeLayoutsSingle? boolean
hasThemeLayoutsDouble? boolean
hasThemeLayoutsBackground? boolean
assignSinglePhoto? PhotobookThemeSinglePhoto

iPhotobookThemeListEntryDto

keys: “photobookThemes” and “printess-photobookThemes” (If we like to support global themes) Hier kann DTO und Object das gleiche sein wie beim Menu …

Field Type Description
n string name
t string thumbnail
kws string[] keywords
tt string[] theme-tags

iPhotobookThemePageInfo

Field Type Description
id string
snippetUrl string
global boolean
docId string
thumb string
keywords string[]
type PhotobookThemePageType
editables? { texts: number; images: number; shapeColors: number; }

IProduct

Field Type Description
id string
displayName? string
thumbnailUrl? string
shopUrl? string

iRect

Field Type Description
left number
top number
width number
height number

ISavedShopData

Field Type Description
shopData IShopData
saveToken string
displayName string
thumbnailUrl string
savedOn? Date
expiresOn? Date

iScaledImage

Field Type Description
id string
url string
width number
height number
userState? string | number | Record<string, unknown>
isImmutable? boolean
fileHash? string
version? number

IShopData

Field Type Description
shopId string
shopUserId string
product IProduct
data? unknown

iShowPagesPreviewMode

Type: “never” | “mobile” | “desktop” | “both”

iSnippetMenuCategory

Field Type Description
topics Array<iSnippetMenuTopic>
name string

iSnippetMenuTopic

Field Type Description
keywords Array<string>
name string
id string

iStoryContent

Field Type Description
pts Array<any> Array

iUsedPriceCategory

Information about all used price categories plus the number of usages. ‘priceCategory’ starts with 1(!)

Field Type Description
priceCategory number
amount number

JobStatus

Field Type Description
jobId string
isFinalStatus boolean
isSuccess boolean
enqueuedOn string
processingOn string | null
finishedOn string | null
failedOn string | null
errorDetails string | null
result { s: { t: number, p: number, c: number, d: number }, r: Record<string, string>, p: { d: string, u: string, i: number }[] }

MergeMode

Type: “merge” | “layout-snippet-no-repeat” | “layout-snippet-repeat-all” | “layout-snippet-repeat-inside” | “layout-snippet-no-repeat-persist-stickers” | “layout-snippet-repeat-all-persist-stickers” | “layout-snippet-repeat-inside-persist-stickers”

MergeResource

Type: “images” | “fonts” | “colors” | “snippet-lists” | “form-fields” | “new-form-fields” | “form-field-list-data” | “form-field-list-and-value” | “styles” | “layer-matrix”

MessageTopic

Type: “SplitterFrameToText” | “ShowAlert” | “OpenImageUpload” | “MobileImagesUpload” | “BuyerUploadedImages”

PanelUiHintPos

Type: “zoom-in”

PhotobookDistribution

Type: “MagicMode” | “OneImagePerPage” | “FixedThemeWithAdditionalPages”

PhotobookThemeFiltering

Type: “show-all-themes” | “hide-theme-selection” | “use-theme-keywords”

PhotobookThemePageType

Type: “cover” | “single” | “double”

PhotobookThemeSinglePhoto

Type: “always” | “never” | “not-on-landscape”

PhotobookThemeWizard

Type: “show-ai-and-freestyle” | “show-only-ai” | “show-only-freestyle”

printessCallbacks

All callbacks Printess can fire into the host UI. Every callback is optional; pass the ones your UI needs as part of ```printessAttachParameters```. A buyer UI minimally handles selection/spread changes plus the basket flow.

Field Type Description
loadingFadeCallback? () => void If you application displays a loading animation, this call tells you to start your fade-out animation. Loading will be done soon.
loadingDoneCallback? () => void Printess has completely loaded the requested template and is now ready to operate.
templateOpenedCallback? (templateName: string, hasPublishedVersion: boolean) => void Fires when an template has been opened from the open menu.
templatePublishedCallback? (templateName: string) => void Fires when an template has been saved and published.
formFieldChangedCallback? externalFormFieldChangeCallback For every Form Field which is set to Impact-Price Printess fires a callback when the value has changed
selectionChangeCallback? externalSelectionChangeCallback Here is the place to draw your properties ui. It gets passed all the current properties and the current scope for the scope “document” means no selected frame and “frames” are selected frames
spreadChangeCallback? externalSpreadChangeCallback Fires whenever the user selects a new page/spread and passes snippet-lists and spread-info. Now it’s time to redraw Layout-Snippets and Group-Snippets/Stickers
docChangeCallback? externalDocChangeCallback Fires whenever the user selects a new document
getOverlayCallback? externalGetOverlayCallback To indicate selectable frames Printess fires this callback where you can provide a custom div
receiveMessageCallback? receiveMessageCallback Arbitary method used to send messages from printess to the web-ui. Current usages: topic="SplitterFrameToText" data={} Indicates that the user has converted a splitter image to a text frame topic="ShowAlert", data.text="The text to display" Asks for an alert box to be shown to the user. topic="BuyerUploadedImages", data.images = iExternalImage[] Asks for an alert box to be shown to the user.
refreshPaginationCallback? refreshPaginationCallback Is called when the page navigation has changed (and needs redraw) but selection has stayed the same.
refreshUndoRedoCallback? refreshUndoRedoCallback Is called when the undo state has changed (and needs redraw of buttons)
updatePageThumbnailCallback? updatePageThumbnailCallback Is called when the page thumbnail has been updated to allow buyer-ui to refresh a particular thumbnail only
addToBasketCallback? (saveToken: string, thumbnailUrl: string) => void Provide a callback function which is called when the buyer presses the [Add to Basket] button Design is automtically saved and function gets a [token] to load or print this design.
backButtonCallback? (saveToken: string, thumbnailUrl: string) => void Provide a callback function which is called when the buyer presses the [Back] button Design is automatically saved and function gets a [token] to load or print this design
saveTemplateCallback? (saveToken: string, type: “save” | “close”, thumbnailUrl: string) => void Provide a callback function which is called when the buyer presses the [Save] button Design is automatically saved and function gets a [token] to load or print this design
getShopDataCallback? (() => Promise<IShopData>) Provide a callback function which is called when the buyer presses the [Save] button A save dialog will open and depending on login state the user can login, register or if logged in save the project with a custom displayName
isShopUserLoggedInCallback? (() => Promise<boolean>) Provide a callback function which is called when the buyer presses the [Save] button Information about the login state of the user is required
getShopProjectDisplayNameCallback? (() => Promise<string>) Provide a callback function which is called when the buyer presses the [Save] button Information about the display name of the product is required
getShopSavedDataCallback? ((shopData: IShopDataProjectName) => void) Provide a callback function which is called when the buyer presses the [Save] button Information about the shopData of the user is provided
shopDataLoadedCallback? ((data: ISavedShopData) => void) Provide a callback function which is called when the buyer presses the [Load] button and is loading a saved project This callback can be used to reinitialize the integration (switching variants / update pricing etc)
getShopLoginCallback? ((type: “register” | “login”, saveToken: string, thumbnailUrl: string, displayName: string) => void) Provide a callback function which is called when the buyer presses the [Save] button If the user is not logged in yet the shopLoginCall is required to return if the user click login/register button Besides saveToken, thumbnailUrl and custom project name (displayName) are returned for saving the template
loadTemplateButtonCallback? () => void Provide a callback function which is called when the buyer presses the [Load] button No automatic save is executed before.
imageListChangeCallback? () => void Provide a callback function which is called whenever the buyer-image-list changed or an image is assigned to a frame Use it, to redraw your buyer-image list if you have one.
priceChangeCallback? externalPriceChangeCallback Will be raised if any price relevant information of the design has been changed
zoomChangeCallback? externalZoomChangeCallback Will be raised if any price relevant information of the design has been changed
errorCallback? (errorName: ErrorName, data?: Record<string, string>) => void Provide a callback function which is called when an error happens.
onAiUsageCallback? (ai: string, credits: number) => void Triggered when a call using AI credits is made. Possible ai parameter values are: “upscale”, “upscale (CutoutPro)”, “nsfw”, “remove background”, “remove background (CutoutPro)”, “countour”, “face swap”, “text generation”, “Segment Anything”, “Segment Anything 3”, “segment face”, “segment face (CutoutPro)”, “GPT Image 1”, “GPT ImageEdit”, “OpenAi Image Edit - low”, “OpenAi Image Edit - medium”, “OpenAi Image Edit - high”, “GPT Image 1.5 - low”, “GPT Image 1.5 - medium”, “GPT Image 1.5 - high”, “GPT Image 2 - low”, “GPT Image 2 - medium”, “GPT Image 2 - high”, “Nano Banana”, “Nano Banana Pro”, “Nano Banana Pro - 2K”, “Nano Banana Pro - 4K”, “Nano Banana 2 - 0.5K”, “Nano Banana 2”, “Nano Banana 2 - 2K”, “Nano Banana 2 - 4K”, “Flux Ultra”, “Flux Pro”, “Flux Dev”, “Flux Schnell”, “Flux 2 Klein 4B”, “Flux Pro Kontext” “Claude Design”, “Script Creation” “SDXL”, “Ideogram 4 - low”, “Ideogram 4 - medium”, “Ideogram 4 - high”, “opus-5.0”, “opus-4.8”, “opus-4.7”, “sonnet-4.6”, “haiku-4.5”, “gpt-5.6-terra”, “gpt-5.6-luna”, “gpt-5.4-mini”, “gpt-5.4-nano”, “gpt-4o”,
uiTabChangeCallback? externalTabChangeCallback Triggered when the user changes a Tab tabId can have this values: “#NONE” | “#LAYOUTS” | “#PHOTOS” | “#THEME” | “#PAGES” | “#ADD-TEXT” | “#ADD-IMAGE” | “#FORMFIELDS” | “#FORMFIELDS1” | “#FORMFIELDS2” | string;

ProgressCallback

Type: (uploaded: number, total: number) => void

receiveMessageCallback

Type: undefined | ((topic: MessageTopic, data: Record<string, any>) => void)

refreshPaginationCallback

Type: undefined | (() => void)

refreshUndoRedoCallback

Type: undefined | (() => void)

SdxlStyle

Type: “No Style” | “photographic” | “3d-model” | “analog-film” | “cinematic” | “Tilt-Shift” | “Long Exposure” | “anime” | “comic-book” | “Craft Clay” | “digital-art” | “enhance” | “Advertising” | “Alien” | “Horror” | “Neon Noir” | “Silhouette” | “fantasy-art” | “line-art” | “low-poly” | “origami” | “pixel-art” | “Abstract” | “Cubist” | “Graffiti” | “Impressionist” | “Pointillism” | “Pop Art” | “Psychedelic” | “Renaissance” | “Steampunk” | “Surrealist” | “Watercolor” | “Retro Game” | “Architectural” | “Disco” | “Dreamscape” | “Dystopian” | “Fairy Tale” | “Gothic” | “Grunge” | “Minimalist” | “Monochrome” | “Space” | “Stained Glass” | “Tribal” | “Zentangle” | “Flat Papercut” | “Papercut Shadow Box” | “Stacked Papercut” | “Kirigami” | “Paper Mache” | “Paper Quilling” | “Papercut Collage” | “Thick Layered Papercut”

StoppingToken

Field Type Description
isCancellationRequested boolean

TemplateEditables

Field Type Description
primaryDocument DocumentContentEditables
formFields FormFieldItem[]

TextModel_Anthropic

Type: “opus-5.0” | “opus-4.8” | “opus-4.7” | “sonnet-4.6” | “haiku-4.5”

TextModel_OpenAi

Type: “gpt-5.6-terra” | “gpt-5.6-luna” | “gpt-5.4-mini” | “gpt-5.4-nano” | “gpt-4o”

textStyleModeEnum

Type: “default” | “all-paragraphs” | “all-paragraphs-if-no-selection”

updatePageThumbnailCallback

Type: undefined | ((spreadId: string, pageId: string, url: string) => void)

UploadProvider

The main method to upload data.

Field Type Description
upload (formData: FormData, progressCallback?: ProgressCallback) => Promise<UploadResult> The main method to upload data.
uploadImage (formData: FormData, progressCallback?: ProgressCallback) => Promise<UploadResult> Specialized method for uploading images. You can simply forward it to upload in case you don’t need special handling of those.
uploadFont (formData: FormData, progressCallback?: ProgressCallback) => Promise<UploadResult> Specialized method for uploading fonts. You can simply forward it to upload in case you don’t need special handling of those.
beforeAddingFormData? (formData: FormData, blob: Blob, fileName: string) => void This method is called before Printess adds the form data containing the data needed for the upload. Use it in case you must prepend some fields to the form data before.

UploadResult

Field Type Description
originalFormName? string
id string
url string
userState? string | number | Record<string, unknown>