Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » [Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

[Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

Stephan_M
Beiträge gesamt: 480

29. Okt 2008, 15:31
Bewertung:

gelesen: 1971

Beitrag als Lesezeichen
Hallo,
Hier war das Skript, das selektierten Text in einen neuen Rahmen (an gleicher Stelle, mit gleicher Breite) setzt. http://www.hilfdirselbst.ch/...=SelectedText#359646. Für mich ist's extrem hilfreich, um die Headlines aus den redaktionellen Texten zu holen.

Hier eine Modifikation. Es setzt die selektierten Wörter in ihre eigenen Rahmen. Beispielbild im Attachment. Es hilft mir Klickarbeit sparen, weil ich häufig Headlines "zerpflücke". (Im wilden Kindermagazin).

Herzliche Grüße,
Stephan

Code
// SelectedWordsToNewFrames.jsx 
// tested only in ID CS3; Stephan Möbius

if (app.documents.length > 0 && app.selection.length == 1 && app.selection[0].hasOwnProperty("baseline") && app.selection[0].characters.length > 0) {
if (app.selection[0].lines.length <= 1) {
selectedTextToNewFrame(app.selection[0]);
}
else alert("Selektierter Text muss in einer Zeile stehen. Breche ab.");
}

function selectedTextToNewFrame(sText) {
for (var j = 0; j < sText.words.length-1; j++) {
hProps = [sText.words[j].horizontalOffset - sText.words[j].leftIndent - sText.words[j].firstLineIndent, (sText.words[j+1].horizontalOffset - sText.words[j+1].leftIndent - sText.words[j+1].firstLineIndent)-(sText.words[j].horizontalOffset - sText.words[j].leftIndent - sText.words[j].firstLineIndent)];
var nFrame = sText.parentTextFrames[0].parent.textFrames.add();
nFrame.geometricBounds = [sText.lines[-1].baseline, hProps[0], sText.lines[0].baseline - sText.lines[0].ascent, hProps[0] + hProps[1]];
nFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.ascentOffset;
sText.words[j].duplicate(LocationOptions.atBeginning, nFrame.insertionPoints.item(0));
}
// do once more differently for the last word
var j = sText.words.length-1;
hProps = [sText.words[j].horizontalOffset - sText.words[j].leftIndent - sText.words[j].firstLineIndent, sText.parentTextFrames[0].geometricBounds[3]];
var nFrame = sText.parentTextFrames[0].parent.textFrames.add();
nFrame.geometricBounds = [sText.lines[-1].baseline, hProps[0], sText.lines[0].baseline - sText.lines[0].ascent, hProps[1]];
nFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.ascentOffset;
sText.words[j].duplicate(LocationOptions.atBeginning, nFrame.insertionPoints.item(0));
sText.parentTextFrames[0].remove();
}


Anhang:
selectedWordsToNewFramesExample.gif (13.6 KB)

[Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

Kai Rübsamen
  
Beiträge gesamt: 4684

29. Okt 2008, 18:00
Bewertung:

gelesen: 1948

Beitrag als Lesezeichen
Danke. Wer schon mal eine Deutschlandkarte mit Inhalten aus einer Worddatei beschriften musste wird das Script lieben ... Ich habe bisher per S&E Absatzmarken gehen Rahmenumbrüche getauscht, dann neue Rahmen aufgezogen und diese dann per SplitStory.jsx entkettet :(

Alternativ bei kleinen Mengen zu Fuß, aber auch schön:
Ziehen und Ablegen im Layoutmodus aktivieren (ist per default aus). Text markieren und per Apfel ziehen aus dem Rahmen bewegen oder per Apfel alt aus dem Rahmen kopieren.

Gruß Kai Rübsamen

[Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

Quarz
Beiträge gesamt: 3555

29. Okt 2008, 19:58
Bewertung:

gelesen: 1923

Beitrag als Lesezeichen
Hallo Stephan,

danke für das Script.

Nachdem rübi eine Anwendungsmöglichkeit erklärt hat,
glaube ich, dass ich es benutzen werde,
denn das mit der Straßenkarte kenne ich auch.

Gruß
Quarz

------------------------
WinXP | CS3

[Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

Stephan_M
Beiträge gesamt: 480

29. Okt 2008, 21:33
Bewertung:

gelesen: 1904

Beitrag als Lesezeichen
Oh! Das freut mich.

Gruß,
Stephan

[Javascript] Selektierte Wörter in einzelne Rahmen. Wer's braucht.

Gerald Singelmann
  
Beiträge gesamt: 6269

30. Okt 2008, 00:09
Bewertung:

gelesen: 1876

Beitrag als Lesezeichen
Dass die Anwendbarkeit dieser Funktion kein Einzelfall ist kann man auch daran ablesen, dass InDesign das auch von Haus aus kann: bei aktvierter Drag&Drop Bearbeitung mit gedrückter Apfeltaste Text aus dem Rahmen ziehen.
Da Drag&Drop von Text im Layoutmodus aber durchaus gefährlich ist, ist es schon schön, das auch per Shortcut machen zu können ;)