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
ErrorName
Type: “templateNotFound” | “addToBasketFailed”
externalDocChangeCallback
Type: (newDocId: string) => void
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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
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 |
|
| 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 |
| Field |
Type |
Description |
imageId |
string |
|
image |
iExternalImage |
|
isSelected |
boolean |
|
key |
string |
|
label |
string |
|
description? |
string |
|
meta1? |
string |
|
meta2? |
string |
|
meta3? |
string |
|
meta4? |
string |
|
| 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
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[] |
|
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”
| 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" |
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
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 |
|
| 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 |
|
| Field |
Type |
Description |
name |
string |
|
value |
string | object |
|
| 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
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 |
|
| 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”
| 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)
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
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> |
|