VMPrint API Reference - v1.0.0
    Preparing search index...

    Interface LayoutConfig

    interface LayoutConfig {
        debug?: boolean;
        fonts: {
            bold?: string;
            bolditalic?: string;
            italic?: string;
            regular?: string;
            [key: string]: string | undefined;
        };
        footer?: PageRegionDefinition;
        header?: PageRegionDefinition;
        layout: {
            direction?: TextDirection;
            fontFamily: string;
            fontSize: number;
            footerInsetBottom?: number;
            footerInsetTop?: number;
            headerInsetBottom?: number;
            headerInsetTop?: number;
            hyphenateCaps?: boolean;
            hyphenation?: HyphenationMode;
            hyphenMinPrefix?: number;
            hyphenMinSuffix?: number;
            hyphenMinWordLength?: number;
            justifyEngine?: JustifyEngineMode;
            justifyStrategy?: JustifyStrategy;
            lang?: string;
            lineHeight: number;
            margins: { bottom: number; left: number; right: number; top: number };
            opticalScaling?: {
                arabic?: number;
                cjk?: number;
                cyrillic?: number;
                default?: number;
                devanagari?: number;
                enabled?: boolean;
                korean?: number;
                latin?: number;
                thai?: number;
            };
            orientation?: "portrait"
            | "landscape";
            pageBackground?: string;
            pageNumberStart?: number;
            pageReservationOnFirstPageStart?: number;
            pageSize: { height: number; width: number } | "A4" | "LETTER";
            pageStartExclusionHeight?: number;
            pageStartExclusionLeftWidth?: number;
            pageStartExclusionRightWidth?: number;
            pageStartExclusionSelector?: PageReservationSelector;
            pageStartExclusionTop?: number;
            pageStartExclusionWidth?: number;
            pageStartExclusionWidth2?: number;
            pageStartExclusionX?: number;
            pageStartExclusionX2?: number;
            pageStartReservationSelector?: PageReservationSelector;
            storyWrapOpticalUnderhang?: boolean;
        };
        preloadFontFamilies?: string[];
        printPipeline?: {
            tableOfContents?: {
                entryType?: string;
                includeTitle?: boolean;
                indentPerLevel?: number;
                reservedPageCount: number;
                title?: string;
                titleType?: string;
            };
        };
        scripting?: LayoutScriptingConfig;
        styles: Partial<Record<string, ElementStyle>>;
    }
    Index

    Properties

    debug?: boolean
    fonts: {
        bold?: string;
        bolditalic?: string;
        italic?: string;
        regular?: string;
        [key: string]: string | undefined;
    }
    layout: {
        direction?: TextDirection;
        fontFamily: string;
        fontSize: number;
        footerInsetBottom?: number;
        footerInsetTop?: number;
        headerInsetBottom?: number;
        headerInsetTop?: number;
        hyphenateCaps?: boolean;
        hyphenation?: HyphenationMode;
        hyphenMinPrefix?: number;
        hyphenMinSuffix?: number;
        hyphenMinWordLength?: number;
        justifyEngine?: JustifyEngineMode;
        justifyStrategy?: JustifyStrategy;
        lang?: string;
        lineHeight: number;
        margins: { bottom: number; left: number; right: number; top: number };
        opticalScaling?: {
            arabic?: number;
            cjk?: number;
            cyrillic?: number;
            default?: number;
            devanagari?: number;
            enabled?: boolean;
            korean?: number;
            latin?: number;
            thai?: number;
        };
        orientation?: "portrait"
        | "landscape";
        pageBackground?: string;
        pageNumberStart?: number;
        pageReservationOnFirstPageStart?: number;
        pageSize: { height: number; width: number } | "A4" | "LETTER";
        pageStartExclusionHeight?: number;
        pageStartExclusionLeftWidth?: number;
        pageStartExclusionRightWidth?: number;
        pageStartExclusionSelector?: PageReservationSelector;
        pageStartExclusionTop?: number;
        pageStartExclusionWidth?: number;
        pageStartExclusionWidth2?: number;
        pageStartExclusionX?: number;
        pageStartExclusionX2?: number;
        pageStartReservationSelector?: PageReservationSelector;
        storyWrapOpticalUnderhang?: boolean;
    }

    Type Declaration

    • Optionaldirection?: TextDirection
    • fontFamily: string
    • fontSize: number
    • OptionalfooterInsetBottom?: number
    • OptionalfooterInsetTop?: number
    • OptionalheaderInsetBottom?: number
    • OptionalheaderInsetTop?: number
    • OptionalhyphenateCaps?: boolean
    • Optionalhyphenation?: HyphenationMode
    • OptionalhyphenMinPrefix?: number
    • OptionalhyphenMinSuffix?: number
    • OptionalhyphenMinWordLength?: number
    • OptionaljustifyEngine?: JustifyEngineMode
    • OptionaljustifyStrategy?: JustifyStrategy
    • Optionallang?: string
    • lineHeight: number
    • margins: { bottom: number; left: number; right: number; top: number }
    • OptionalopticalScaling?: {
          arabic?: number;
          cjk?: number;
          cyrillic?: number;
          default?: number;
          devanagari?: number;
          enabled?: boolean;
          korean?: number;
          latin?: number;
          thai?: number;
      }
    • Optionalorientation?: "portrait" | "landscape"
    • OptionalpageBackground?: string

      Background fill colour for every page, e.g. "#fdf6ee" for a warm paper tone.

    • OptionalpageNumberStart?: number
    • OptionalpageReservationOnFirstPageStart?: number
    • pageSize: { height: number; width: number } | "A4" | "LETTER"
    • OptionalpageStartExclusionHeight?: number
    • OptionalpageStartExclusionLeftWidth?: number
    • OptionalpageStartExclusionRightWidth?: number
    • OptionalpageStartExclusionSelector?: PageReservationSelector
    • OptionalpageStartExclusionTop?: number
    • OptionalpageStartExclusionWidth?: number
    • OptionalpageStartExclusionWidth2?: number
    • OptionalpageStartExclusionX?: number
    • OptionalpageStartExclusionX2?: number
    • OptionalpageStartReservationSelector?: PageReservationSelector
    • OptionalstoryWrapOpticalUnderhang?: boolean

      Optical story wrap underhang: allow full-width lines once their top clears an obstacle bottom.

    preloadFontFamilies?: string[]
    printPipeline?: {
        tableOfContents?: {
            entryType?: string;
            includeTitle?: boolean;
            indentPerLevel?: number;
            reservedPageCount: number;
            title?: string;
            titleType?: string;
        };
    }
    styles: Partial<Record<string, ElementStyle>>