Autor |
Nachricht |
freddeh
Threadersteller
Dabei seit: 25.03.2009
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 25.03.2009 16:09
Titel Indesign: Script? Textboxinhalt rotieren |
|
|
Hi Leute, ich hoffe ich hab die richtige Kategorie erwischt.
Folgendes Problem: Ich habe eine Exceltabelle mit jeweils 4 Spalten Text, der eingefügt werden soll. (Format in jeder der Spalten: hund - katze - maus - elefant - tiger). Diese sind in Spalten aufgeteilt, weil sie unterschiedlich formatiert werden sollen. Nun möchte ich aber, wenn ich diese per Datenzusammenführung importiert habe, dass sie anschließend, nach ihrer Formatierung, wieder durcheinandergewirbelt werden, sodass nachher es nachher nicht so aussieht:
<<InhaltSpalte1>><<InhaltSpalte2>><<InhaltSpalte3>><<InhaltSpalte4>>,
sondern z.B. so:
hund - maus - katze - elefant- tiger - affe - ratte
Meine Frage: Wie realisier ich das? Soweit ich weiss, kann ich ja in Excel keine Formatierung vorgeben, oder? Also muss das ja irgendwie mit Indesign nach der Formatierung zufällig durcheinandergewirbelt werden...
Danke für eure Ideen/Lösungen!
|
|
|
|
|
freddeh
Threadersteller
Dabei seit: 25.03.2009
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 25.03.2009 18:33
Titel
|
|
|
Bin nun soweit, dass ich ein funktionstüchtiges Javascript erstellt habe, das die Begriffe neu ordnet, nur leider ohne die Formatierung mit zu verschieben. Jemand eine Idee wie ich die mitverschiebe, sodass sie nicht am selben "Fleck" bleibt?
Code: | function arrayShuffle(){
var tmp, rand;
for(var i =0; i < this.length; i++){
rand = Math.floor(Math.random() * this.length);
tmp = this[i];
this[i] = this[rand];
this[rand] =tmp;
}
return this.join(" - ")
}
Array.prototype.shuffle = arrayShuffle;
randomize();
function randomize() {
if (app.documents.length == 0 || app.selection.length == 0) {
alert("Please select an object"); return false;
}
else if(app.selection[0].constructor.name == "TextFrame"){
var words = new Array;
words = app.selection[0].contents;
words = words.split(" - ");
words = words.shuffle();
app.selection[0].contents = words;
}
else {
alert("Please select an textframe"); return false;
}
}
|
|
|
|
|
|
Anzeige
|
|
|
Frank Münschke
Forums-Papa
Dabei seit: 08.06.2006
Ort: Essen
Alter: 69
Geschlecht:
|
Verfasst Do 26.03.2009 06:47
Titel
|
|
|
etwas wenig Informtionen, denke ich mal
Sollen "maus" und "elefant" immer halbfett?
Sollen "hund" und "ratte" immer unterstrichen?
Soll der Rest immer recte?
oder
Ist die Reihenfolge der Auszeichnungen vorgegeben?
--
Das eine geht unter CS4 mit Absatzformat-GREPs zu lösen ...
Das andere durch ein verschachteltes Absatzformat ...
|
|
|
|
|
freddeh
Threadersteller
Dabei seit: 25.03.2009
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 26.03.2009 12:38
Titel
|
|
|
Also die Begriffe werden praktisch so eingefügt:
hund - ratte - katze - tiger - affe - maus - elefant
Und sollen nun aber nicht so sortiert dargestellt werden, weil das ja langweilig aussieht als Tag Cloud (Die Formatierung hier entspricht ja nun nicht derer in inDesign, da sind es dann halt unterschiedliche Schriftgrößen, aber das is ja wurst).
Deswegen sollen die Begriffe, samt deren Formatierung zufällig angeordnet werden...
Ich weiß, dass das irgendwie mit move() geht, aber irgendwie ich das nicht richtig hin.. Jemand nen Ansatz?
|
|
|
|
|
freddeh
Threadersteller
Dabei seit: 25.03.2009
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 27.03.2009 14:12
Titel
|
|
|
Hat sich erledigt. Wens interessiert:
Code: | function GetRandom( min, max ) {
if( min > max ) { return( -1 ); }
if( min == max ) {
return( min );
}
return( min + parseInt( Math.random() * ( max-min+1 ) ) );
}
function randomize() {
if (app.documents.length == 0 || app.selection.length == 0) {
alert("Please select an object"); return false;
}
if (app.selection[0].constructor.name == "TextFrame") {
if(app.selection[0].label == "TagCloudDone") {
alert("Tag Cloud already done!"); return false;
}
else {
var myWords = new Array;
var i,j, z,ref;
myText = app.selection[0];
myWords = myText.contents;
myWords = myWords.split(" ");
for(var i = 0; i < myWords.length-1;i++) {
z = LocationOptions.before;
y = GetRandom(0,myWords.length-1);
ref = myText.texts[0].words.item(y);
var moveIt = myText.parentStory.characters.itemByRange(myText.parentStory.words.item(i).characters.firstItem().index,myText.parentStory.words.item(i).characters.lastItem().index +1);
while((i == y) || (i == y-1)) { var y = GetRandom(0,myWords.length-1); var ref = myText.texts[0].words.item(y); }
moveIt.move(z,ref);
}
for(var l = 0; l < ((2 * myWords.length)-2);l++) {
myText.texts[0].words.item(l).contents = myText.texts[0].words.item(l).contents + " -";
myText.texts[0].words.item(l+1).pointSize = 10;
l++;
}
app.selection[0].label = "TagCloudDone";
}
}
else {
alert("Please select an textframe"); return false;
}
}
randomize(); |
Input: Zitat: | hund katze maus tiger |
Output: Zitat: | katze - hund - maus - tiger |
|
|
|
|
|
|
|
|
Ähnliche Themen |
Indesign CC 2014 vs CS6 - Anzeige beim rotieren
rotieren/ drehen
rotieren im illustrator
Gleichmäßiges Rotieren um einen verschobenen Pivotpunkt
Illustrator CS2: Probleme beim Objekt-Rotieren
InDesign / Script erstellen?
|
|