Die Klasse stellt Methoden zur Bearbeitung interaktiver Elemente (Pushbuttons, Textedit-Felder, ...) zur Verfügung.

Letzte Änderung :
30.07.2025, 07:35 Uhr

Die Klasse stellt Methoden zur Bearbeitung interaktiver Elemente (Pushbuttons, Textedit-Felder, ...) zur Verfügung.

Hier finden Sie drei Testdokumente:

Laden Sie inter3.w2lm auf Ihren Desktop, dann können Sie das PDF mit der folgenen Zeile von comet_pdf generieren lassen:

comet_pdf -i \$DESKTOP/inter3.w2ml --interactive 1 -L

InDesign® unterstützt eine Reihe interaktiver Objekte, die in interaktiven PDF und Folios verwendet werden können. Folgende Objektarten werden unterstützt:
Wert Konstante Beschreibung
0 kMultistate Objektstatus, nicht unterstützt von comet_pdf
1 kPushbutton Button
2 kTextfield Texteingabefeld
3 kCheckbox Kontrollkästchen
4 kRadiobutton Optionsfeld
5 kListboxfield Listenfeld
6 kCombobox Kombinationsfeld
7 kSignature Unterschrift

Illustrator® stellt keine interaktiven Objekte zur Verfügung. Die Funktionen des Moduls interactive haben deshalb in Illustrator® keine Bedeutung.

Beachten Sie bitte, dass comet_pdf mit der Option --interactive N gestartet werden muß, um ein interaktives PDF zu erzeugen. Fehlt die Option, werden die interaktiven Elemente des Dokumentes nicht ins PDF exportiert.

Als Status eines interaktiven Objekt wird das Erscheinungsbild bezeichnet,mit dem das Objekt angezeigt wird. Das Erscheinungsbild ist davon abhängig sein, ob das Objekt ein- oder ausgeschaltet, ob sich die Maus darüber befindet oder ob die Maus geklickt wird. In jedem Zustand kann das Objekt mglw. anders aussehen. Im Bild sehen Sie ein sog. Kontrollkästchen (die meisten nennen das Checkbox) in einigen unterschiedlichen Darstellungen:



Nur Buttons, Checkboxen und Radiobuttons können einen Status haben. Die folgende Tabelle enthält alle dabei verfügbaren Stati:
Wert Konstante Verwendung Bemerkungen
-1 kStateInvalid - Zustand fehlerhaft oder unbekannt
0 kStateNormal Button Normalzustand
1 kStateOver Maus über dem Objekt
2 kStateDown Mausklick
3 kStateNormalOn Checkbox, Radiobutton Normalzustand eingeschaltet
4 kStateNormalOff Normalzustand ausgeschaltet
5 kStateOverOn Maus über dem eingeschalteten Objekt
6 kStateOverOff Maus über dem ausgeschalteten Objekt
7 kStateDownOn Mausklick eines eingeschalteten Objektes
8 kStateDownOff Mausklick eines abgeschalteten Objektes
0 kStateFirst - Sinnvoll für Schleifen
8 kStateLast

Interaktive Elemente können auf folgende Ereignisse reagieren:
Wert Konstante Bemerkungen
-1 kNoEvt Kein Ereignis
0 kAnyEvt beliebiges Ereignis
1 kMouseUpEvt InDesign®-Standard
2 kMouseDownEvt
3 kMouseEnterEvt
4 kMouseExitEvt
5 kOnFocusEvt
6 kOnBlurEvt
7 kOpenEvt Siehe hier
8 kCloseEvt
9 kVisibleEvt
10 kInvisibleEvt
11 kActivateEvt
12 kCalculateEvt
13 kFormatEvt
14 kKeystrokeEvt
15 kValidateEvt

Interaktive Elemente können im exportierten interaktiven PDF verschiedene Optionen bekommen. Im unteren Teil der Palette Schaltflächen und Formulare (s.o) können diese Optionen eingestellt werden.

Eine ganze Reihe wichiger Optionen, die von PDF-Viewern wie Adobe Acrobat verwendet werden, können in InDesign® aber nicht eingestellt werden. Als Workaround legen wir diese Daten in Rahmen-Etiketten ab. comet_pdf kann diese Eigenschaften lesen und im Ziel-Dokument setzen. Um die Werte zu setzen, öffnen Sie die Palette Rahmen-Etiketten und wählen die gewünschte Formular-Fläche aus. Mit dem +-Button der Palette können Sie neue Eigenschaften festlegen. Die entsprechenden Beschreibungen finden sich am Ende der folgenden Tabelle.

Auf PDFs, von direkt aus InDesign® exportiert werden, haben diese Einstellungen keinen Einfluß.

Die folgende Tabelle zeigt alle von set_pdf_option und get_pdf_option unterstützten Optionen. Die als Workaround implmentierten Rahmen-Etiketten können zusätzlich mit Hilfe der Palette Rahmen-Etiketten (Spalte 4 der Tabelle) editiert werden.

Wert Konstante Typ Bemerkung
0 kPDFPrintVisible bool (0 | 1) Sichtbarkeit. Default ist überall sichtbar

bis v4.2 R33133
0 : nicht im Druck
sonst : überall sichtbar

ab v4.2 R33134
0: nicht im Druck
1 : überall sichtbar
2 : hidden
3 : noview

Leider behandelt InDesign® die Sichtbarkeit lediglich als bool-Wert und kann daher nur die Werte 0 und 1 unterstützen. Statt 2 oder 3 wird hier automatisch der Wert 0 (nicht im Druck) gesetzt. Um die Sichtbarkeit eines interaktiven Feldes im PDF von comet_pdf auf hidden oder no view zu setzen, muß der Wert direkt von comet_pdf gesetzt werden.
1 kPDFRequired Muß-Feld der PDF-Datei
2 kPDFPassword Eingaben in diesen Feldern werden als Bullet-Punkte oder Sternchen dargestellt.
3 kPDFReadonly Nur lesbar
4 kPDFMultiline Mehrzeiliger Text
5 kPDFScrollable Wird der Text länger als das Edit, erscheint im PDF ein Scrollbalken.
6 kPDFTaborderint Tab-Reihenfolge. In InDesign® setzen Sie die Tab-Reihenfolge über das Menü Objekt -> Interaktiv -> Aktivierungsreihenfolge.
7 kPDFArticleorder int nicht implementiert
8 kPDFFontsize float Merkwürdigerweise gibt es aber keine Standard-Möglichkeit, die Schrift selbst festzulegen (siehe kPDFFontname).
9 kPDFTooltip String/char* Beschreibung. Das wird der Hilfetext im PDF.
10 kPDFFieldValue Schaltflächenwert
11 kPDFCheckedByDefault int Standardmäßig ausgewählt
12 kPDFFontname String/char*

Schrift und Schriftfarbe. Die Schrift wird als kommagetrenntes Paar aus Schriftname und Stil angegeben (z.B. "Arial Narrow, Italic").

Wenn Sie eine Schrift angeben, muß auch eine Schriftgröße (kPDFFontsize) angegeben werden!

Die Farbe wird als Name eines existierenden Farbfeldes angegeben.

13 kPDFFontcolor
14 kPDFListAllowMultipleint nur bei Listenfeldern (listbox/i>)

Mehrfachauswahl möglich?
15 kPDFListEditable Nur bei Kombinationsfeldern (Combobox)

Ist das Feld editierbar, oder, in anderen Worten : Können eigene Werte eingetragen werden?
16 kPDFListSort nur bei Listenfeldern Liste vor der Anzeige sortieren?
17 kPDFListValues StringList nur bei Listenfeldern Werte der Liste
18 kPDFDefaultValue String/char* Der Wert wird beim Öffnen des Dokumentes und nach dem Zurücksetzen der Formularfelder gezeigt.
30 kPDFFieldName String/char*

Name des Feldes. Die Namen müssen eindeutig sein. Nur Radio-Buttons, die zur gleichen Gruppe gehören sollen, bekommen den selben Namen. Der Name kann in Javascripten verwendet werden, um das Formularfeld zu adressieren.

this.getField ('name');

Von Rahmen-Eitketten unterstützte Werte. Die 4. Spalte beschreibt Schlüssel und Wert der Etiketten.
19 kPDFUnionSelect int

priint_FormField_UnionSelect
0 | 1

Ist der Wert gleich 1, werden Buttons mit dem gleichen Schaltflächenwert (kPDFFieldValue) gleichzeitig ausgewählt.

20 kPDRichText int

priint_FormField_RichText
0 | 1

Textformatierung erlaubt. Die Angabe ist nur in Textfeldern erlaubt und als Textfarbe muss eine RGB-Farbe angegeben sein.

21 kPDFMaxChar int

priint_FormField_MaxChar
>= 0

Erlaubte Maximalzahl von Zeichen im Textfeld, 0 für beliebige Anzahl.

22 kPDFCalcOrder int

priint_FormField_CalcOrder
>= 0

Berechnungsreihenfolge der Felder. Der Wert wird nur verwendet, wenn das Formfeld eine Berechnung macht (kCalculateEvt). Default ist 10 plus die maximale CalcOrder der Seite.

23 kPDFSpellCheck int

priint_FormField_SpellCheck
0 | 1

Rechtschreibeprüfung im Textfeld aktivieren.

24 kPDFCaption String/char*

priint_FormField_Caption
beliebiger Text

Beschriftung von Pushbuttons

25 kPDFCaptionRollover String/char*

priint_FormField_CaptionRollover
beliebiger Text

Beschriftung von Pushbuttons bei Maus-Rollovers. Die Angabe wird von Acrobat ignoriert.

26 kPDFCaptionDown String/char*

priint_FormField_CaptionDown
beliebiger Text

Beschriftung von Pushbuttons bei Mausklicks. Die Angabe wird von Acrobat ignoriert.

27 kPDFFileSelect int

priint_FormField_FileSelect
0 | 1

Hier die offizielle Beschreibung von Adobe :

Allows the user to enter a file path as the field’s value when a file is submitted along with the form. This option is available only when Scroll Long Text is the only selected option in the Options tab.

Aber damit das funktioniert, müssen Sie Javascripte schreiben. Mehr Informationen dazu finden Sie im Internet, wir unterstützen diese Fähigkeit nicht weiter.

28 kPDFBorderStyle String/char*

priint_FormField_BorderStyle
solid | beveled | dashed int int | inset | underline

Aussehen des Rahmens von Pushbuttons, Checkboxen und Radiobuttons.

Farbe und Stärke der Kante werden aus den Einstellungen des InDesign®-Objektes übernommen. Beachten Sie bitte, dass Formfelder nur ganzzahligen Rahmenstärken haben können. Bei anderen Einstellungen wird die Rahmenstärke entsprechend aufgerundet.

Die Angaben dashed kann um zwei int-Zahlen erweitert werden : Die Länge der Striche und die Länge der Lücken in Punkten. Wir geben diese Info an das PDF weiter - aber Acrobat verwendet trotzdem immer 3, 3.

29 kPDFButtonStyle String/char*

priint_FormField_ButtonStyle
check | cross | diamond | circle | star | square

Welches Zeichen wird bei aktivierten Checkboxen und Radionbuttons gezeigt?

Als Zeichenfarbe wird die Farbe der Rahmenkante verwendet.

Aktionen können verschiedene Aufgaben erledigen. Hier eine vollständige Liste aller Aufgaben, die Aktionen übernehmen können.
Wert Konstante Beschreibung Bemerkungen
1 kGoToAnchor Gehe zu Ziel
2 kGoToFirstPage Gehe zu erster Seite
3 kGoToLastPage Gehe zu letzter Seite
4 kGoToNextPage Gehe zu nächster Seite
5 kGoToPreviousPage Gehe zu voriger Seite
6 kGoToURL Gehe zu URL
7 kShowHideFields Schaltflächen einblenden/ausblenden
8 kSound Audio
9 kMovie Video
10 kAnimation Animation Nur Liquid-HTML5 und SWF
11 kGoToPage Gehe zu Seite
12 kSwitchToMSOState Gehe zu Status
13 kSwitchToNextMSOState Gehe zu nächster Ansicht
14 kSwitchToPrevMSOState Gehe zu voriger Ansicht
21 kResetForm Formular zurücksetzen Nur PDF
15 kGoToNextView Gehe zu nächster Ansicht
16 kGoToPreviousView Gehe zu voriger Ansicht
17 kOpenFile Datei öffnen
19 kPrintForm Formular drucken
20 kSubmitForm Formular senden
18 kViewZoom Ansichtszoom
22 kExecJavascript Javascript ausführen siehe hier

Es gibt in InDesign® offenbar keine Möglichkeit, PDFs auf Dokumentereignisse wie Neuberechnung der Felder oder ähnliches vorzubereiten. Das betrifft sowohl die Oberfläche als auch das SDK zur Entwicklung von Plugins. Damit Sie Javascript-Implementierungen auch in InDesign® anlegen können, haben wir das Rahmen-Etikett priint_FormField_Actions eingeführt: Öffnen Sie die dazu Palette Rahmen-Etiketten. Dort können Sie mit Hilfe des +-Buttons neue Schlüssel/Werte-Paare anlegen. Geben Sie dem neuen Eintrag den Schlüsselnamen priint_FormField_Actions. Im Wert-Feld tragen Sie die Aktion(en) inkl. des Javascripts ein.

Die Syntax zur Definition einer Aktion ist wie folgt:

event-id task-id "what ever you want"

Es sind beliebig viele Aktionen möglich. Die Aktionen werden in der Reihenfolge ihrer Definition ausgeführt. Hier finden Sie ein Doku der Acrobat JavaScript APIs von Adobe.

Bitte beachten Sie, dass die entsprechenden Funktionen unter InDesign® keine Wirkung haben.

Das Beispiel zeigt eine Alert-Box, wenn ein Button geklickt wurde.

1 := event kMouseUpEvt
22 := task kExecJavascript

priint_FormField_Actions
1 22 "app.alert ('Hallo Paul');"

Berechne den Wert eines Feldes als Summe der Werte anderer Felder.

12 := event kCalculateEvt
22 := task kExecJavascript

priint_FormField_Actions
12 22 "event.value = this.getField ('t1').value + this.getField ('t2').value + this.getField ('t3').value;"

Es werden zwei Aktionen definiert : Berechne die in einem Preis enthaltene Mehrwertsteuer von 19% und stelle das Ergebnis mit zwei Nachkommastellen dar.

12 := event kCalculateEvt
13 := event kFormatEvt
22 := task kExecJavascript

priint_FormField_Actions
12 22 "event.value = this.getField ('t6').value - this.getField ('t6').value / 1.19"
13 22 "event.value = Number (event.value).toFixed(2);"

Es gibt in InDesign® offenbar keine Möglichkeit, Formfelder mit einem Defaulteintrag zu versehen. Damit Sie die entsprechenden Einstellungen auch in InDesign® vornehmen können, haben wir das Rahmen-Etikett priint_FormField_DefaultValue einegführt: Öffnen Sie die dazu Palette Rahmen-Etiketten. Dort können Sie mit Hilfe des +-Buttons neue Schlüssel/Werte-Paare anlegen. Geben Sie dem neuen Eintrag den Schlüsselnamen priint_FormField_DefaultValue und tragenSie den gewünschten Default ein.

Achtung: Bei Kombinations- und Listenfeldern ist sehr wichtig, dass der Default (in genau der gegebenen Schreibweise) auch in den Listenwerten vorkommt. Nicht existierende Defaults von Listenwerten führen zum Abbruch von comet_pdf bei der PDF-Erstellung!

int interactive::is_multistate(ItemRef frameRef)

Hat ein Rahmen ein Multistate-Objekt?

Name Typ Default Beschreibung
Return int   0 : Nein
1 : Ja. Das Objekt ist entweder selbst ein Multistate oder Teil eines Multistates.
frameRef ItemRef - Gültige Rahmen- oder Objektreferenz

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

get
is_formfield

int interactive::is_formfield(ItemRef frameRef)

Hat ein Rahmen ein interactives Objekt (das aber kein Multistate ist)?

Als Formfelder werden alle interaktiven Objekte bezeichnet, die KEIN Statusobjekt (Multistate) sind.

Name Typ Default Beschreibung
Return int   0 : Nein
1 : Ja. Das Objekt ist entweder selbst ein Formfeld oder Teil eines Formfeldes.
frameRef ItemRef - Gültige Rahmen- oder Objektreferenz

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

get
is_formfield

static int interactive::create(
  ItemRef resref,
  ItemRef frameRef,
  int type = 2,
  char* name = 0,
  int rmvAddits = 0)

Erzeuge ein neues interaktives Objekt aus einem existierenden Rahmen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
resref ItemRef - Bei erfolgreicher Ausführung enthält die Variable das neu erzeugte Objekt

0 : Ergebnis ignorieren
sonst : allokiertes ItemRef
frameRef ItemRef - Rahmen, der in ein interaktives Objekt konvertiert werden soll.

0 : Aktueller Skriptrahmen
type int kTextfield Objekttyp, siehe hier
name String/char* 0 Name des neuen Objektes

Die Namen interaktiver Felder müssen eindeutig sein! Um eindeutige Namen zu erzeugen, können Sie beispielsweise die Rahmen-UID verwenden:
sprintf (name, "UID%d", item::getint (frameRef));
rmvAddits int 0 In Radiobuttons und Checkboxen erzeugt InDesign® automatisch einen schwarzen Haken bzw. Punkt für den aktiven Status. Sieht nur so B aus. Sollen wir das wieder rauslöschen?

0 : Nein
1 : Ja, weg damit

Die Option wird unter comet_pdf ignoriert.
#include "internal/types.h"

Erzeuge ein Button aus dem aktuellen Rahmen (oder - unter comet_pdf - dem Rahmen mit der UID 227). Klickt man den Button, wird eine Nachricht gezeigt.

#include "internal/types.h"
int main () { ItemRef fr = item::alloc (); ItemRef mso = item::alloc (); ItemRef action = item::alloc ();
if (system::version () == -1) item::define (fr, 0, 227); else item::define (fr, 0, item::getint (gFrame));
interactive::create (mso, fr, kPushbutton, "123"); interactive::set_pdf_option (fr, kPDFCaption, "My Button"); interactive::set_pdf_option (fr, kPDFCaptionRollover, "My Button Rollover"); interactive::set_pdf_option (fr, kPDFCaptionDown, "My Button Down");
if (system::version () == -1) { interactive::add_action (fr, kMouseUpEvt, kExecJavascript, action); interactive::set_task_data (fr, action, "app.alert('Hallo Paul');"); } else { // Take care to take the *mso* in this case! frame::set_script_tag (mso, "1 22 \"app.alert ('Hallo Paul');\"", "priint_FormField_Actions"); }
return 0;

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

create_multistate

static int interactive::create_multistate(
  ItemRef resref,
  ItemList states,
  char* name = 0)

Erzeuge ein neues Objektstatus-Objekt aus einer Liste von Rahmen. Im Unterschied zu interactive::create kann mit dieser Funktion ein Statusobjekt mit mehreren Zuständen in einem Schritt erzeugt werden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
resref ItemRef - Bei erfolgreicher Ausführung enthält die Variable das neu erzeugte Objekt

0 : Ergebnis ignorieren
sonst : allokiertes ItemRef
states ItemList - Liste der Rahmen, die die Zustände des Objektes bilden sollen
name String/char* 0 Name des neuen Objektes, darf 0 oder "" sein.

Erzeuge aus den ausgewählten Rahmen ein neues Status-Objekt. Die Rahmen werden zuvor an der linken, oberen Ecke ihrer BoundingBox ausgerichtet.

int main ()
{
    ItemList	frames	= itemlist::selected ();
    ItemList	states 	= itemlist::alloc ();
    ItemRef		mso		= item::alloc ();
    ItemRef		fr		= item::alloc ();
    int			i;
    float		l, t, r, b;
if (gRun > 1) return 0;
if (itemlist::length (frames) == 0) { showmessage ("Please select one or more frames and try again."); return 0; }
if (itemlist::length (frames) > 1) { itemlist::bbox (frames, &l, &t, &r, &b); for (i = 0; i < itemlist::length (frames); i++) { itemlist::get (frames, fr, i); frame::moveto (fr, l, t); } }
interactive::create_multistate (mso, frames, "myname");
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins

create

static int interactive::resolve(
  ItemRef frameRef,
  int state = -1,
  int doRmv = 0,
  ItemList resultList = 0)

Auflösen eines interaktiven Objektes. Die folgende Tabelle beschreibt, wie die Status-Rahmen der interaktiven Objekte beim Auflösen des Objektes oder eines Status behandelt werden:
Einzelstatus - Status >= 0 Alles - Status kStateInvalid
Objekttyp Ohne Löschen Mit Löschen Ohne Löschen Mit Löschen
Multistate Gelöste Rahmen bleiben im Dokument stehen Gelöste Rahmen werden gelöscht Alle Rahmen des Multistates werden zu normalen Dokumentrahmen. Wirkt wie der Menübefehl Flyout Objektstatus -> Alle Status als Objekte freigeben. Das interaktive Objekt und alle seine Status-Rahmen werden gelöscht.
Buttons, Checkboxen, Radiobuttons Nur die Rahmen des aktiven Status bleiben erhalten. Alles andere wird gelöscht. Wirkt wie das Button In Objekt konvertieren der Palette Schaltflächen und Formulare.
Textfelder, Listenfelder, Comboboxen, Unterschriften Keine Wirkung Der Rahmen, der das interaktive Objekt gebildet hat, ist jetzt wieder ein normaler Rahmen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
state int kStateInvalid Was soll aufgelöst werden? Die Funktion unterscheidet zwischen verschienden Typen interaktiver Objekte, siehe dazu die obige Tabelle.

Der Status kStateNormal von Buttons und kStateNormalOn und kStateNormalOff von Radiobuttons und Checkboxen können nicht einzeln aufgelöst werden.

Unter comet_pdf hat der Parameter keine Wirkung.
doRmv int 0 Gelöste Rahmen löschen?

0 : Nein
1 : Ja

über die Wirkung des Parameters siehe obige Tabelle.

Unter comet_pdf hat der Parameter keine Wirkung.
outItems ItemList 0 Liste der gelösten und noch existierenden Rahmen. Die Liste darf 0 sein. Ist sie nicht 0, muss sie mit itemlist::alloc erzeugt worden sein.

Unter comet_pdf wird der Parameter ignoriert.
#include "internal/types.h"

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::get(
  ItemRef frameRef,
  ItemRef out_mso,
  int* out_state)

Suche das interaktive Objekt eines Rahmens. Das können Statusobjekte, Buttons, Textedits, ... sein. Wird ein Objekt gefunden, kann mit item::get_class der Typ des interktiven Elementes ermittelt werden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

1244 : Der Rahmen hat kein interaktive Elternobjekt
frameRef ItemRef - Gültige Rahmenreferenz

0 : aktueller Skriptrahmen
out_mso ItemRef - Allokierter ItemRef für das gefundene interaktive Objekt
out_state int* 0 In welchem Status des interaktiven Objektes befindet sich frameRef? Der Wert ist nur bei fehlerfreier Ausführung der Funktion definiert. In comet_pdf hat der Status immer den Wert -1.

kStateInvalid frameRef ist selbst ein interaktives Objekt

sonst : Status, in dem sich der Rahmen befindet, siehe hier
#include "internal/types.h"
int main ()
{
    ItemRef		mso	= item::alloc ();
    int 		state;
interactive::get (gFrame, mso, &state); showmessage ("MSO : %d\nState : %d\n", item::getint (mso), state);
return 0; }

Version 4.0.5 R11820, 24. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

item::get_class

static int interactive::set_pdf_option(
  ItemRef frameRef,
  int type,
  int value)

PDF-Option eines interaktiven Objektes setzen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
typ int - Welche Option soll geändert werden, siehe hier
value int, float, String/char* - Neuer Wert der Option. Der Datentyp des Werte ist vom Typ abhängig, siehe hier. Falsche Datentypen der Werte können zu Fehlern bei der Skriptverarbeitung führen!
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemRef mso = item::alloc (); ItemRef fr = item::alloc (); int ival; char sval [512];
interactive::create (mso, gFrame, kTextfield, "Paul 1");
interactive::set_pdf_option (gFrame, kPDFTooltip, "Helpless, helpless, helpless"); interactive::get_pdf_option (gFrame, kPDFTooltip, sval, 511); wlog ("", "Tooltip (%s)\n", sval);
interactive::set_pdf_option (gFrame, kPDFCheckedByDefault, 1); interactive::get_pdf_option (gFrame, kPDFCheckedByDefault, &ival); wlog ("", "Checked by default (%d)\n", ival);
interactive::set_pdf_option (gFrame, kPDFFieldValue, "höpöhöpö"); interactive::get_pdf_option (gFrame, kPDFFieldValue, sval, 511); wlog ("", "Field value (%s)\n", sval);
interactive::set_pdf_option (gFrame, 12, "Geogrotesque,Regular"); interactive::get_pdf_option (gFrame, 12, sval, 511); wlog ("", "Font (%s)\n", sval);
interactive::set_pdf_option (gFrame, 13, "Seitenkopf"); interactive::get_pdf_option (gFrame, 13, sval, 511); wlog ("", "Color (%s)\n", sval);
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::get_pdf_option(
  ItemRef frameRef,
  int type,
  int* value)

PDF-Option eines interaktiven Objektes erfragen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
typ int - Welche Option soll erfragt werden, siehe hier
value int*, float*, String/char* - Aktueller Wert der Option. Der Datentyp des Werte ist vom Typ abhängig, siehe hier. Falsche Datentypen der Werte können zu Fehlern bei der Skriptverarbeitung führen!
maxlen int -1 Maximallänge, nur bei Werten vom Typ char*
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemRef mso = item::alloc (); ItemRef fr = item::alloc (); int ival; char sval [512];
interactive::create (mso, gFrame, kTextfield, "Paul 1");
interactive::set_pdf_option (gFrame, kPDFTooltip, "Helpless, helpless, helpless"); interactive::get_pdf_option (gFrame, kPDFTooltip, sval, 511); wlog ("", "Tooltip (%s)\n", sval);
interactive::set_pdf_option (gFrame, kPDFCheckedByDefault, 1); interactive::get_pdf_option (gFrame, kPDFCheckedByDefault, &ival); wlog ("", "Checked by default (%d)\n", ival);
interactive::set_pdf_option (gFrame, kPDFFieldValue, "höpöhöpö"); interactive::get_pdf_option (gFrame, kPDFFieldValue, sval, 511); wlog ("", "Field value (%s)\n", sval);
interactive::set_pdf_option (gFrame, 12, "Geogrotesque"); interactive::get_pdf_option (gFrame, 12, sval, 511); wlog ("", "Font (%s)\n", sval);
interactive::set_pdf_option (gFrame, 13, "Seitenkopf"); interactive::get_pdf_option (gFrame, 13, sval, 511); wlog ("", "Color (%s)\n", sval);
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::get_frames(
  ItemRef frameRef,
  ItemList resultList,
  int state = -1)

Ermittle alle Status-Objekte (Rahmen oder Gruppen) eines interaktiven Objektes. In welchem Status eines interaktiven Objektes sich ein bestimmter Rahmen befindet, erfahren Sie mit Hilfe der Funktion get.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
resultList ItemList - Ergebnisliste. Die Liste muss mit itemlist::alloc initianlisiert worden sein. Bestehende Listeneinträge werden aus der Liste entfernt.
state int kStateInvalid Von welchem Status des Objektes sollen die Rahmen ermittelt werden?

kStateInvalid : Alle
sonst : siehe hier
#include "internal/types.h"

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins

get

static int interactive::add_frame(
  ItemRef frameRef,
  ItemRef addThis,
  int state = -1,
  int replace = 0)

Hinzufügen eines Rahmens zu einem Status eines interaktiven Objektes.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen

Achtung: Beim Ersetzen von Status-Rahmen kann mglw. genau dieser Rahmen gelöscht werden. Es wird daher empfohlen, die Funktion immer direkt mit der Referenz des interaktiven Objektes aufzurufen. Verwenden Sie dazu die Funktion interactive::get.
addThis ItemRef - Gültige Rahmen- oder Gruppenreferenz
state int kStateInvalid Zu welchem Status des Objektes soll der Rahmen hinzugefügt werden? Die Funktion unterscheidet zwischen verschienden Klassen interaktiver Objekte:

Objektstatus (Multistate):
-1 : Einen weiteren Status anlegen
sonst : 0-basierter Index des Status. Ist der Index zu groß, wird ein neuer Status angefügt.

Buttons, Radio-Buttons, Checkboxen:
Gültiger Status, siehe hier.

Andere:
Statusrahmen können nicht geändert werden
replace int 0 Alte Rahmen im Zielstatus löschen?

0 : Nein
1 : Ja
#include "internal/types.h"

Konvertiere den aktuellen Rahmen in ein Statusobjekt, ändere dessen erstes in den Rahmen mit der UID 2024 und füge eine weiteren Status (Rahmen mit der UID 1828) hinzu:

#include "internal/types.h"
int main () { ItemRef red = item::alloc (); ItemRef green = item::alloc (); ItemRef iref = item::alloc ();
item::define (red, 0, 1828); item::define (green, 0, 2024);
interactive::create (iref, gFrame, kMultistate, "hallo paul", 1);
interactive::add_frame (iref, green, 0, 1); interactive::add_frame (iref, red, 2, 1);
return 0; }

Konvertiere den aktuellen Rahmen in eine Checkbox (ohne den Haken, den InDesign® sonst einfügt.) Ändere dann das Erscheinungsbild:

#include "internal/types.h"
int main ()
{ ItemRef red = item::alloc (); ItemRef green = item::alloc (); ItemRef iref = item::alloc ();
item::define (red, 0, 1828); item::define (green, 0, 2024);
res = interactive::create (iref, gFrame, kCheckbox, "hallo paul", 1);
res = interactive::add_frame (iref, green, kStateNormalOn, 1); res = interactive::add_frame (iref, red, kStateOverOn, 1); return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins

static int interactive::get_actions(
  ItemRef frameRef,
  int eventType,
  ItemList actions)

Hole die Liste (aller) Aktionen eines interaktiven Objektes. Die Einträge der Liste können in den anderen Funktionen des Moduls verwendet werden.

Statusobjekte (Multistates) können keine Aktionen ausführen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
eventType int - Das Ereignis, dessen Aktionen Sie wollen, siehe Tabelle Ereignisse.
actions ItemList - Allokierte Liste für die Ergebnisse oder 0.

Bei Statusobjekten (Multiframes) und normalen Rahmen ist die Ergebnisliste leer.
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc (); int e, i;
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kAnyEvt, actions); wlog ("", "%d actions in object %d\n",   itemlist::length (actions),   item::getint (gFrame));
for (e = kMouseUpEvt; e < kValidateEvt; e++) { interactive::get_actions (gFrame, e, actions); wlog ("", " %d actions of type %d in object %d\n",   itemlist::length (actions),   e,   item::getint (gFrame)); }
interactive::get_actions (gFrame, kAnyEvt, actions); for (i = 0; i < itemlist::length (actions); i++) { itemlist::get (actions, action, i); wlog ("", "Action %d with UID %d is triggered by event %d\n",   i,   item::getint (action),   interactive::get_event (gFrame, action)); }
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::count_actions(ItemRef frameRef = 0)

Wieviel Aktionen hat ein interaktives Objekt? Die Funktion gibt die Anzahl der Aktionen unabhängig vom Ereignis, das die Aktionen auslöst, zurück. Um die Anzahl der Aktionen für ein bestimmtes Ereignis zu ermittlen, verwenden Sie die Funktion get_actions für das gewünscht Ereignis und fragen dann nach der Länge der Ergebnisliste.

Name Typ Default Beschreibung
Return int   Anzahl der Ereignisse.
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen

Version 4.0.5 R12022, 7. Jul 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::get_nth_action(
  ItemRef frameRef,
  int index,
  ItemRef outRef = 0)

Hole eine Aktion eines interaktiven Elementes. Die Aktion wird durch den Index in der Liste aller Aktionen des Objektes bestimmt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
index int - Index der Aktion in der Liste aller Aktionen des Objektes
outRef ItemRef 0 Variable für das Ergebnis

0 : ignorieren
sonst : allokierter ItemRef für die Aktion
#include "internal/types.h"
int main () { ItemRef action = item::alloc (); int a, A;
if (gRun > 1) return 0;
A = interactive::count_actions(gFrame); for (a = 0; a < A; a++) { interactive::get_nth_action (gFrame, a, action); wlog ("", "Action %d : triggered by %d, task %d\n",   a,   interactive::get_event (gFrame, action),   interactive::get_task (gFrame, action)); }
return 0; }

Version 4.0.5 R12022, 7. Jul 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int interactive::add_action(
  ItemRef frameRef,
  int eventType,
  int task,
  ItemRef out_actionRef = 0)

Hinzufügen einer Aktion an ein interaktives Objekt. Die neue Aktion wird mit den InDesign®-Defaultparametern angelegt. Um die Parameter der Aktion zu setzen, verwenden Sie die Funktion set_task_data mit der Aktion out_actionRef.

Beachten Sie bitte, dass InDesign® Aktionen, die ein Ziel haben können (z.B. Filme oder Töne) immer als erstes verarbeitet und deshalb auch entsprechend weit oben in die Aktionenliste einfügt. Neu hinzugefügte Aktionen müssen daher also nicht zwangsläufig am Ende der Aktionenliste erscheinen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
eventType int - Ereignis, das die Aktion auslösen soll, siehe hier
task int - Aufgabe der Aktion, die ausgeführt werden soll, siehe hier. Mit set_task_data können die Aktionsparamenter gesetzt werden.

out_actionRef ItemRef 0 ItemRef für die neu angelegte Aktion

0 : Rückgabe ignorieren
sonst: Allokierter ItemRef
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemRef action = item::alloc ();
if (gRun > 1) return 0;
interactive::add_action (gFrame, kMouseUpEvt, kOpenFile, action);
return 0; }

Die Funktion erzeugt erst eine "Formular senden"-Aktion, danach eine "Sound"-Aktion. In der Aktionenliste wird die Sound-Aktion aber immer vor der "Formular senden"-Aktion erscheinen.

#include "internal/types.h"
int main () { ItemRef action = item::alloc ();
if (gRun > 1) return 0;
interactive::add_action (gFrame, kMouseUpEvt, kSubmitForm, action); interactive::add_action (gFrame, kMouseUpEvt, kSound, action);
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

set_task_data

static int interactive::move_action(
  ItemRef frameRef,
  ItemRef actionRef,
  int eventType,
  int newPosition)

Verschiebe eine Aktion eines interaktiven Elementes.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - gültige Aktion des interaktiven Objektes von frameRef
eventType int - Welchem Ereignis soll die Aktion zugeordnet werden? Siehe hier.

0 : Ereignis beibehalten
newPosition int - Neue Position der Aktion in der Aktionenliste des Ereignisses. Ist der Index >= der Länge dieser Liste, wird die Aktion ans Ende verschoben.
#include "internal/types.h"

Die letzte MouseExit-Aktion soll als erste ausgeführt werden.

#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc ();
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kMouseExitEvt, actions); if (itemlist::length (actions) > 0) { itemlist::get (actions, action, itemlist::length (actions)-1); interactive::move_action(0, action, 0, 0); }
return 0; }

Version 4.0.5 R12022, 12. Jul 2016

priint:comet InDesign® Plug-Ins

static int interactive::remove_action(ItemRef frameRef, ItemRef actionRef)

Entferne eine Aktion eines interaktiven Elementes.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - gültige Aktion des interaktiven Objektes von frameRef
#include "internal/types.h"

Lösche die letzte MouseExit-Aktion.

#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc ();
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kMouseExitEvt, actions); if (itemlist::length (actions) > 0) { itemlist::get (actions, action, itemlist::length (actions)-1); interactive::remove_action(0, action); }
return 0; }

Version 4.0.5 R12022, 12. Jul 2016

priint:comet InDesign® Plug-Ins

static int interactive::get_event(ItemRef frameRef, ItemRef actionRef)

Welches Ereignis löst die Aktion eines interaktiven Objektes aus?

Name Typ Default Beschreibung
Return int   siehe Tabelle Ereignisse.
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - Gültige Aktion des interaktiven Objektes von frameRef.
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc (); int e, i;
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kAnyEvt, actions); wlog ("", "%d actions in object %d\n",   itemlist::length (actions),   item::getint (gFrame));
for (e = kMouseUpEvt; e < kValidateEvt; e++) { interactive::get_actions (gFrame, e, actions); wlog ("", " %d actions of type %d in object %d\n",   itemlist::length (actions),   e,   item::getint (gFrame)); }
interactive::get_actions (gFrame, kAnyEvt, actions); for (i = 0; i < itemlist::length (actions); i++) { itemlist::get (actions, action, i); wlog ("", "Action %d with UID %d is triggered by event %d\n",   i,   item::getint (action),   interactive::get_event (gFrame, action)); }
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

get_actions

static int interactive::get_task(ItemRef frameRef, ItemRef actionRef)

Welche Aufgabe führt eine Aktion aus?

Name Typ Default Beschreibung
Return int   Aufgabe der Aktion, siehe Tabelle Aufgaben von Aktionen.
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - Gültige Aktion des interaktiven Objektes von frameRef.
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc (); int e, i;
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kAnyEvt, actions); wlog ("", "%d actions in object %d\n",   itemlist::length (actions),   item::getint (gFrame));
for (e = kMouseUpEvt; e < kValidateEvt; e++) { interactive::get_actions (gFrame, e, actions); wlog ("", " %d actions of type %d in object %d\n",   itemlist::length (actions),   e,   item::getint (gFrame)); }
interactive::get_actions (gFrame, kAnyEvt, actions); for (i = 0; i < itemlist::length (actions); i++) { itemlist::get (actions, action, i); wlog ("", "Action %d with UID %d is triggered by event %d, task %d\n",   i,   item::getint (action),   interactive::get_event (gFrame, action),   interactive::get_task (gFrame, action)); }
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

get_actions

static int interactive::get_task_data(
  ItemRef frameRef,
  ItemRef actionRef,
  int* eventType = 0,
  char* eventName = 0,
  int* enabled = 0,
  char* sval1 = 0,
  char* sval2 = 0,
  char* sval3 = 0,
  char* sval4 = 0,
  char* sval5 = 0,
  int* ival1 = 0,
  int* ival2 = 0,
  int* ival3 = 0,
  int* ival4 = 0,
  int* ival5 = 0,
  IDTypeList* lval = 0)

Ermittle die Parameter einer Aufgabe einer Aktion eines interaktiven Objektes.

Die Parameter sval1-5, ival1-5 und lval werden in Abhängigkeit von der Aufgabe der Aktion gefüllt. Die Variablen dürfen 0 sein. Die folgende Tabelle gibt an, welche Rückgabewerte für welchen Aktionstyp gefüllt werden können.
Aufgabe Parameter Beschreibung
kGoToAnchor (1) : Gehe zu Ziel sval1 vollständiger Pfad der Zieldatei
sval2 Name des Ankers
sval3 PDF-Name des Ankers
ival1 Zoom
ival2 UID des Ankers
kGoToFirstPage (2) : Gehe zu erster Seite ival1 Zoom
kGoToLastPage (3) : Gehe zu letzter Seite
kGoToNextPage (4) : Gehe zu nächster Seite
kGoToPreviousPage (5) : Gehe zu voriger Seite
kGoToURL (6) : Gehe zu URL sval1 URL der Zielseite
kShowHideFields (7) : Schaltflächen einblenden/ausblenden lval Die Liste wird gefüllt mit Schaltflächen, die ein- und ausgeschaltet werden :

    id1 : UID des Buttons
    id2 : 0 (unsichtbar), 1 (sichtbar)
kSound (8) : Audio ival1 Operation

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
ival2 Sound-UID
ival3 Lautstärke (0-100)
ival4 Synchron? (0, 1)
ival5 Automatisch wiederholen? (0, 1)
kMovie (9) : Video ival1 Operation

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
ival2 Movie-UID
ival3 NavigationPointID
kAnimation (10) : Animation ival1 Operation<>

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
ival2 UID der Animation
ival3 Automatisch wiederholen? (0, 1)
kGoToPage (11) : Gehe zu Seite ival1 1-basierte Seitennummer
ival2 Zoom
kSwitchToMSOState (12) : Gehe zu Status
kSwitchToNextMSOState (13) : Gehe zu nächstem Status
kSwitchToPrevMSOState (14) : Gehe zu vorigem Status
ival1 UID des Status
ival2 0-basierter Index des Status
ival3 switchToPriorStateOnRollOff (0, 1)
ival4 loopAtBeginningOrEnd (0, 1)
kGoToNextView (15) : Gehe zu nächster Ansicht
kGoToPreviousView (16) : Gehe zu voriger Ansicht
keine weiteren Parameter
kOpenFile (17) : Datei öffnen sval1 Vollständiger Pfad der Datei
kViewZoom (18) : Ansichtszoom ival1 Zoom
kPrintForm (19) : Formular drucken keine weiteren Angaben nötig
kSubmitForm (20) : Formular senden sval1 Ziel-URL zum Senden
kResetForm (21) : Formular zurücksetzen keine weiteren Angaben nötig
kExecJavascript (22) : JavaScript ausführen Siehe hier
Die folgende Tabelle gibt alle Zoom-Möglichkeiten und ihre IDs an. Nicht alle Zoom-Einstellungen gehen für alle Aktionen!
ID Name
0 Zoom übernehmen
1 OriginalGröße
2 In Fenster einpassen
3 Breite einpassen
4 Sichtbaren Bereich einpassen

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - Gültige Aktion des interaktiven Objektes von frameRef.
eventType int* 0 auslösendes Ereignis der Aufgabe

0 : ignorieren
eventName String/char* 0 Name der Aufgabe

0 : ignorieren
enabled int* 0 Ist die Aufgabe aktiv?

0 : nein
1 : ja
sval1-5 String/char* 0 siehe oben
ival1-5 int* 0 siehe oben
lval IDTypeList 0 siehe oben
#include "internal/types.h"
#include "internal/types.h"
int main () { ItemList actions = itemlist::alloc (); ItemRef action = item::alloc (); int i, etype, eenabled; char ename [512], sval1 [512];
if (gRun > 1) return 0;
interactive::get_actions (gFrame, kMouseUpEvt, actions); for (i = 0; i < itemlist::length (actions); i++) { itemlist::get (actions, action, i); if (interactive::get_task (gFrame, action) == kSubmitForm) { interactive::get_task_data (gFrame, action, &etype, ename, &eenabled, sval1); wlog ("", "Submit '%s' (%d, '%s', %d)\n", sval1, etype, ename, eenabled); } }
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins, comet_pdf

get_actions

static int interactive::set_task_data(
  ItemRef frameRef,
  ItemRef actionRef,
  ...)

Ändern der Parameter einer Aufgabe eines interaktiven Objektes. Die Funktionsparameter sind jeweils abhängig von der Aufgabe der Aktion. Achten Sie bitte darauf, jeweils die in der Funktionsbeschreibung angegeben Parameter zu verwenden. Mit get_task können Sie die Aufgabe einer Aktion ermitteln.

Die Funktion kann die aktuelle Dokumentauswahl ändern.

Die Parameter des Aufrufes hängen von der Aufgabe der Aktion ab. Die folgende Tabelle beschreibt die Funktionsparameter in Abhängigkeit von der Aufgabe der Aktion:
Aufgabe Parameter Beschreibung
kGoToAnchor (1) : Gehe zu Ziel String/char* vollständiger Pfad der Zieldatei
int UID des Ankers
int Zoom
kGoToFirstPage (2) : Gehe zu erster Seite int Zoom
kGoToLastPage (3) : Gehe zu letzter Seite
kGoToNextPage (4) : Gehe zu nächster Seite
kGoToPreviousPage (5) : Gehe zu voriger Seite
kGoToURL (6) : Gehe zu URL String/char* URL der Zielseite
kShowHideFields (7) : Schaltflächen einblenden/ausblenden IDTypeList Liste von Schaltflächen-UIDs und deren Sichtbarkeit

    id1 : UID des Buttons
    id2 : 0 (unsichtbar), 1 (sichtbar), 2 (unverändert lassen)
kSound (8) : Audio int Operation

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
int Sound-UID
int Lautstärke (0-100)
int Synchron? (0, 1)
int Automatisch wiederholen? (0, 1)
kMovie (9) : Video int Operation

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
int Movie-UID
int NavigationPointID
kAnimation (10) : Animation int Operation

    0 : Abspielen
    1 : Stop
    2 : Pause
    3 : Rückspulen
int UID der Animation
int Automatisch wiederholen? (0, 1)
kGoToPage (11) : Gehe zu Seite int 1-basierte Seitennummer
int Zoom
kSwitchToMSOState (12) : Gehe zu Status
kSwitchToNextMSOState (13) : Gehe zu nächstem Status
kSwitchToPrevMSOState (14) : Gehe zu vorigem Status
int UID des Status
int 0-basierter Index des Status
int switchToPriorStateOnRollOff (0, 1)
int loopAtBeginningOrEnd (0, 1)
kGoToNextView (15) : Gehe zu nächster Ansicht
kGoToPreviousView (16) : Gehe zu voriger Ansicht
keine weiteren Parameter
kOpenFile (17) : Datei öffnen String/char* Vollständiger Pfad der Datei
kViewZoom (18) : Ansichtszoom int Zoom
kPrintForm (19) : Formular drucken keine weiteren Parameter
kSubmitForm (20) : Formular senden String/char* Ziel-URL für das Senden des Formulares
kResetForm (21) : Formular zurücksetzen keine weiteren Parameter
kExecJavascript (22) : JavaScript ausführen String/char* Javascript-Quelltext. Weitere Informationen finden Sie hier.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
frameRef ItemRef - Gültige Rahmenreferenz. Ist frameRef kein interaktives Objekt, wird, wenn möglich, dessen interaktives Objekt verwendet.

0 : Aktueller Skriptrahmen
actionRef ItemRef - Gültige Aktion des interaktiven Objektes von frameRef.
... ... - Die weiteren Funktionparameter hängen von der Aufgabe der Aktion ab, siehe obige Tabelle.
#include "internal/types.h"

#include "internal/types.h"
int main () { ItemRef action = item::alloc (); int result;
if (gRun > 1) return 0;
result = interactive::add_action (gFrame, kMouseUpEvt, kSubmitForm, action); wlog ("", "add action : %d\n", result);
result = interactive::set_task_data (gFrame, action, "ftp://www.sawadee.th/hallo.pdf"); wlog ("", "set_task_data : %d\n", result);
return 0; }

Anlegen einer Javascript-Aktion. Beim Anklicken eines Buttons wird der aktuell ausgewählte Eintrag des Popup-Menüs (Combobox) C3 angezeigt. Die Zeilentrenner im Displaytext sind hier mit \\013 kodiert.

#include "internal/types.h"
int main ()
{
    ItemRef		fr			= item::alloc ();
    ItemRef		action		= item::alloc ();
    char 	*	js			= "var field = this.getField('C3');\
    var selectedIndex = field.currentValueIndices;\
    var exportValue = field.getItemAt(selectedIndex);\
    var displayValue = field.getItemAt(selectedIndex, false);\
    app.alert ('Index : ' + selectedIndex + '\\013Exportvalue : \"' + exportValue + '\"\\013DisplayValue : ' + displayValue + '\"');\
    ";
item::define (fr, 0, 221); interactive::add_action (fr, kMouseUpEvt, kExecJavascript, action); interactive::set_task_data (fr, action, js);
return 0; }

Version 4.0.5 R11820, 28. Jun 2016

priint:comet InDesign® Plug-Ins

Preconditions
#include "internal/types.h"

Seit
Version 4.0.5 R11820, 24. Jun 2016
Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Paul Seidel
Siehe auch
frame
item
itemlist

Alphabetic index HTML hierarchy of classes or Java