Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Text aus verankerten Textrahmen auslesen und im Fließtext einfügen

Text aus verankerten Textrahmen auslesen und im Fließtext einfügen

irbis
Beiträge gesamt: 30

15. Mär 2010, 16:18
Bewertung:

gelesen: 4152

Beitrag als Lesezeichen
Hallo zusammen!

Ich suche eine Möglichkeit/Lösung, Text aus verankerten Textrahmen, die sowohl einen Objektstil als auch ein Absatzformat zugewiesen haben (bspw. "Randnummer") auszulesen und diesen Text (also bspw. die Randnummer oder die Marginalie) anstelle des Ankers im Fließtext mit einem zusätzlichen Absatzzeichen/Return einzufügen. Das heißt, die Randnummer (oder Marginalie) sollte letztendlich als eigener neuer Absatz über dem dazugehörigen Absatz im Fließtext stehen. Der ursprünglich verankerte Textrahmen könnte verschwinden bzw. gelöscht werden.

Ich bin kein Skript-Profi; dazu habe ich zu wenig Know-How über die Syntax - kann mir aber, wenn ich ein Grundgerüst habe, dieses auf meine Bedürfnisse anpassen. Im umgekehrten Fall habe ich mir das Skript "Verankertes Objekt einfügen" zurechtgebogen.

Für eure Unterstützung und Tips danke ich schon jetzt recht herzlich!

vg
irbis

Text aus verankerten Textrahmen auslesen und im Fließtext einfügen

irbis
Beiträge gesamt: 30

15. Mär 2010, 18:46
Bewertung:

gelesen: 4121

Beitrag als Lesezeichen
Sorry, hab ich vergessen zu erwähnen: Hier handelt es sich um CS3.

Text aus verankerten Textrahmen auslesen und im Fließtext einfügen

Martin Fischer
  
Beiträge gesamt: 12814

16. Mär 2010, 07:11
Bewertung:

gelesen: 4082

Beitrag als Lesezeichen
Versuch mal das (Voraussetzung: Cursor im Text platziert oder Textrahmen ausgewählt)
Code
if (app.selection.length >= 0 && (app.selection[0].hasOwnProperty ('baseline') || app.selection[0].constructor.name == 'TextFrame') )  
{
var tf = app.selection[0].parentStory.textFrames;
for (var i = tf.length-1; i >= 0; i--)
{
if (tf[i].appliedObjectStyle.name == 'Marginalie') // prüfe zugewiesenen Objektstil
{
if (tf[i].texts.firstItem().characters.lastItem().contents != '\r') // wenn das letzte Zeichen im verankerten Textrahmen keine Absatzschaltung ist, dann füge am Ende eine ein
tf[i].texts.firstItem().insertionPoints.lastItem().contents = '\r';
tf[i].texts.firstItem().move(LocationOptions.AT_BEGINNING, tf[i].parent.paragraphs.firstItem()); // verschiebe den Inhalt des verankerten Textrahmens (mit der Absatzmarke am Ende) an den Anfang des Absatzes, in dem er steht
tf[i].remove(); // lösche den verankerten Textrahmen.
}
}
}


tf sind die verankerten Textrahmen im ausgewählten Textabschnitt.

Viele Grüße
Martin


Text aus verankerten Textrahmen auslesen und im Fließtext einfügen

irbis
Beiträge gesamt: 30

16. Mär 2010, 09:24
Bewertung:

gelesen: 4064

Beitrag als Lesezeichen
Hallo Martin,

vielen vielen Dank! Das Skript funktioniert super! Bei umfangreichen Dokumenten (ich habe es bei einem mit ca. 1400 verankerten Rahmen getestet) dauert es zwar eine zeitlang, bis das Skript durchläuft (ich dachte erst, Indesign sei abgestürzt), aber es läuft super und funktioniert! Danke!

vg