[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt linke bzw. rechte Musterseite gezielt anprechen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

linke bzw. rechte Musterseite gezielt anprechen

Stefan Oe
Beiträge gesamt: 42

1. Feb 2012, 17:18
Beitrag # 1 von 6
Bewertung:
(1529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich arbeite mit InDesign CS5 und Betriebssystem Mac OSX.

In einem Dokument möchte ich durch eine if-Abfrage einen Textframe auf der Musterseite verschieben, allerdings nur, wenn er sich auf einer linken Seite befindet.
Ich habe verschieden Codes ausprobiert, komme aber zu keinem Ergebnis.
Wer hilft mir über den Berg?

var _TF18 = app.documents[0].masterSpreads[0].textFrames[18];

if (_TF18 = PageSideOptions.LEFT_HAND) { //...
}

if (_TF18 == PageSideOptions.LEFT_HAND) {//...
}

if (app.activeDocument.activePage == PageSideOptions.LEFT_HAND) {//...
}

Viele Grüße,
Stefan Oe
X

linke bzw. rechte Musterseite gezielt anprechen

Hans Haesler
  
Beiträge gesamt: 5818

1. Feb 2012, 17:33
Beitrag # 2 von 6
Beitrag ID: #488921
Bewertung:
(1510 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

wie aus dem Ausdruck PageSideOptions hervorgeht, ist side eine Eigenschaft der Seite (und nicht des Textrahmens).

Versuche es bitte mal so:

Code
var _TF18 = app.documents[0].masterSpreads[0].textFrames[18];  
var _pageSide = _TF18.parentPage.side;

if (_pageSide == PageSideOptions.LEFT_HAND) {
alert ("linke Seite");
}
else {
alert ("rechte Seite");
}

Gruss, Hans


als Antwort auf: [#488918]

linke bzw. rechte Musterseite gezielt anprechen

WernerPerplies
Beiträge gesamt: 2703

2. Feb 2012, 11:46
Beitrag # 3 von 6
Beitrag ID: #488974
Bewertung:
(1458 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

alternativ könnte man das auch so machen:
Code
#target indesign  

/*enum*/TextFrame.prototype.side=function()
{
return this.parentPage.side;
}

main()

function main()
{
var tf = app.activeDocument.textFrames[1];
alert(tf.side());
}


Auf diese Weise steht auch beim TextFrame das Property side über einen Methodenaufruf zur Verfügung.


als Antwort auf: [#488921]

linke bzw. rechte Musterseite gezielt anprechen

Hans Haesler
  
Beiträge gesamt: 5818

2. Feb 2012, 12:20
Beitrag # 4 von 6
Beitrag ID: #488981
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

danke für die Variante. Nun hat Stefan die Qual der Wahl. :-)

Gruss, Hans


als Antwort auf: [#488974]

linke bzw. rechte Musterseite gezielt anprechen

Stefan Oe
Beiträge gesamt: 42

2. Feb 2012, 13:17
Beitrag # 5 von 6
Beitrag ID: #488990
Bewertung: |
(1420 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans und Werner,
das war ja mal wieder eine schnelle Hilfe. Herzlichen Dank.

Ich habe Hans' Version in mein Skript eingefügt und es läuft bestens.
Werner, Deine Version teste ich auch noch. Wenn ich das richtig verstehe, habe ich bei Deiner Fassung den Vorteil, dass ich in meinem Skript auf die schlanke Funktion zurückgreifen kann, falls ich mehrfach gezielt auf linke oder rechte Seiten zugreifen möchte. Oder?

Ich bin als langjähriger InDesigner, der mit Skripting wenig Erfahrung hat, ganz fasziniert, was sich alles machen lässt. Ich freue mich, dass ich mit Eurer Hilfe auch über manche Hürde komme. Vielen Dank für Euer Engagement.

Viele Grüße,
Stefan Oe


als Antwort auf: [#488981]

linke bzw. rechte Musterseite gezielt anprechen

WernerPerplies
Beiträge gesamt: 2703

2. Feb 2012, 14:18
Beitrag # 6 von 6
Beitrag ID: #488995
Bewertung:
(1401 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,

Zitat Wenn ich das richtig verstehe, habe ich bei Deiner Fassung den Vorteil, dass ich in meinem Skript auf die schlanke Funktion zurückgreifen kann, falls ich mehrfach gezielt auf linke oder rechte Seiten zugreifen möchte. Oder?


Richtig, einmal außerhalb jeder Funktion am Anfang des Skripts definiert funktioniert das wie eine von Adobe eingebaute Methode für jeden Textrahmen.


als Antwort auf: [#488990]
X