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


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