Learning & Support


Scripting the Twixl Publisher plug-in

Twixl Support Team Updated: - Created :

    This article expects that you are familiar with Adobe's ExtendScript scripting language.

    1. InDesign ExtendScript Labels

    The way the Twixl Publisher plug-in stores the interactive properties is by attaching labels to the different elements.

    Every object in Adobe InDesign can be provided with one or more labels via de ExtendScript function:

    object.insertLabel(key, value)

    To retrieve the label, you can use the extractLabel function using a specific key:


    2. Attaching properties

    Here's an overview of the type of InDesign elements you can attach properties to, depending on the type of interactive element:

    1. Slide Show: MultiStateObject
    2. Web Viewer: Rectangle
    3. Web Overlay: Rectangle, TextFrame, PageItem
    4. Scrollable Content: Rectangle with one PageItem as its child element
    5. Full screen image: Graphic
    6. Movie: Movie
    7. Sound: Sound
    8. Image Sequence: Rectangle

    3. Twixl Publisher interactive element keys

    Every type of Twixl Publisher interactive element has its own key under which the properties are saved. Here's an overview:

    Slide Show
    Web Viewer
    Web Overlay
    Scrollable Content
    Full screen image
    Image Sequence

    4. JSON

    Under these keys, all properties are saved in a JSON data structure. JSON (http://www.json.org) is a text based format which makes it very easy to store key/value structures.

    var myProperties = {
        key1: “value",
        key2: “value",
        key3: “value"
    var myJsonString = JSON.stringify(myProperties);
    myObject.insertLabel("com.rovingbird.epublisher.mso", myJsonString);

    To retrieve it later on, you can use the following code:

    var myLabel = myObject.extractLabel("com.rovingbird.epublisher.mso");
    var myProperties = JSON.parse(myLabel);

    5. Property overview

    5.1. Slide Show

        'msoShowScrollViewIndicator':            false,
        'msoAllowUserInteraction':               false,
        'msoShowScrollbars':                     false,
        'msoAllowFullScreen':                    false,
        'msoScrollViewIndicatorOpacity':         50,
        'msoScrollViewIndicatorBackgroundColor': '000000',
        'msoScrollViewIndicatorActiveColor':     'FFFFFF',
        'msoScrollViewIndicatorInactiveColor':   'AAAAAA',
        'msoFileFormat':                         'PNG',
        'msoFileFormatIdx':                      0,
        'msoFileFormatDesc':                     '',
        'msoTransitionStyle':                    'Push',
        'msoTransitionStyleIdx':                 0,
        'msoAllowAutoPlay':                      false,
        'msoInterval':                           0,
        'msoDelay':                              0,
        'msoTapPlayPause':                       false,
        'msoAllowLoop':                          false,

    5.2. Web Viewer

        'wvUrl':                  '',
        'wvAllowUserInteraction': false,
        'wvTransparent':          false,
        'wvScaleToFit':           false,
        'wvShowScrollbars':       false,
        'wvOpenLinksInline':      true,
        'wvShowLoadingIndicator': false,

    5.3. Web Overlay

        'woUrl':                  '',
        'woAllowUserInteraction': false,
        'woWidth':                '',
        'woHeight':               '',
        'woShowScrollbars':       false,
        'woShowLoadingIndicator': false,
        'woBackgroundColor':      '000000',
        'woBackgroundOpacity':    50,
        'woAnalyticsName':        '',
        'woScaleToFit':           false,

    5.4. Scrollable Content

        'scAllowScrolling': false,
        'scShowScrollbars': true,
        'scEnablePaging':   false,
        'scEnableZooming':  false,

    5.5. Movies

        'movieAutoStart':           false,
        'movieShowController':      false,
        'movieLoop':                false,
        'movieShowFullScreen':      false,
        'movieReturnToPosterFrame': false,
        'movieAnalyticsName':       '',

    5.6. Sound

        'soundAutoStart':     false,
        'soundLoop':          false,
        'soundAnalyticsName': '',

    5.7. Full Screen Images

        'imageAllowFullScreen': false,
        'imageAnalyticsName':   '',

    5.8. Image Sequences

        'isqFolder':        '',
        'isqReverse':       false,
        'isqAnalyticsName': '',

    6. Automating preflight, export and preview

    Download an example (for .article and .publication files) to see how the preflight, export and preview processes can be scripted:

    Was this article helpful?

    0 out of 1 found this helpful