[GastForen Programme Print/Bildbearbeitung Adobe InDesign [JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

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

[JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

zaphodbeeblebroxx
Beiträge gesamt: 408

4. Jan 2007, 15:01
Beitrag # 1 von 5
Bewertung:
(1476 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo zusammen,

ich möchte in einem InDesign-Dokument Bereiche von aufeinanderfolgenden Absatzformaten per JavaSkript referenzieren, um diese in eine einzellige Tabelle zu verschieben. Die Tabelle steht dann an der Stelle im Text, an der zuvor der Text mit dem jeweiligen Absatzformat stand.
(ID CS 2 4.0.2 auf MAC OSX 10.4.8)

Mit einem einzelnen Absatz funktioniert das auch, aber wie kann ich aufeinanderfolgende Absätze mit demselben Format finden?

Von einem gefundenen Absatzformat das Format des nächsten Absatzes solange prüfen bis ein anderes Format folgt? Oder gibt es noch einen besseren Weg? Hat jemand eine Idee?

Hier ein Auszug aus dem Skript für einen einzelnen Absatz mit dem Format "MeinAbsatzformat":

Code
var myDoc = app.documents[0]; 
app.findPreferences = app.changePreferences = null;
app.findPreferences.appliedParagraphStyle = "MeinAbsatzformat";
var myFound = myDoc.search("");
for(oneItem=myFound.length-1; oneItem>=0; oneItem--){
myTable = myFound[oneItem].insertionPoints[-1].tables.add(
{columnCount:1,  bodyRowCount:1}
);
myTable.cells.everyItem().texts[0].applyStyle(app.documents[0].paragraphStyles.item('MeinAbsatzformat'),true);
//
// Hier kommen die Tabellenformatierungen
// Dann wird der gefundene Absatz in die einzellige Tabelle verschoben
}


zaphodbeeblebroxx
X

[JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

Martin Fischer
  
Beiträge gesamt: 12691

4. Jan 2007, 17:24
Beitrag # 2 von 5
Beitrag ID: #269139
Bewertung:
(1454 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,

schau Dir mal das Objekt TextStyleRange an.
Ich habe damit noch nicht gearbeitet (und finde grad nicht die Zeit zum Experimentieren), aber die Beschreibung deutet darauf hin, daß es für Dich eine Lösung sein könnte: a continuous range of identical formatting attributes.

Ich bin neugierig auf Deine Erfahrungen mit TextStyleRange.


als Antwort auf: [#269104]

[JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

Gerald Singelmann
  
Beiträge gesamt: 6264

4. Jan 2007, 17:37
Beitrag # 3 von 5
Beitrag ID: #269143
Bewertung:
(1451 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Text Style Ranges setzen natürlich voraus, dass kein Buchstabe zwischendurch eine abweichende Formatierung hat.
Da wir hier von Absätzen sprechen (derer es normalerweise ja nicht soo viele gibt (oder?)) würde ich sogar auf den Find-Mechanismus verzichten und die Absätze direkt iterieren.


als Antwort auf: [#269139]

[JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

Martin Fischer
  
Beiträge gesamt: 12691

4. Jan 2007, 18:11
Beitrag # 4 von 5
Beitrag ID: #269149
Bewertung:
(1445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Simmt.

Mit "app.selection[0].parentStory.paragraphs.everyItem().appliedParagraphStyle" bekommst Du z.B. alle Absatzformate des ausgewählten Textflusses in einem Array und brauchst nur noch durchzuiterieren.


als Antwort auf: [#269143]

[JS] Bereich von aufeinanderfolgenden Absatzformaten per JavaScript finden

zaphodbeeblebroxx
Beiträge gesamt: 408

4. Jan 2007, 18:41
Beitrag # 5 von 5
Beitrag ID: #269153
Bewertung:
(1432 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Singelmann,
Hallo Martin,

vielen Dank für die Tipps ... inzwischen habe ich festgestellt, dass es auch ohne textStyleRanges geht.

Der oben wiedergegebene Auszug aus meinem Skript funktioniert nicht nur (wie oben beschrieben) mit einzelnen Absätzen eines bestimmten Formats, sondern auch mit mehreren aufeinanderfolgenden Absätzen des Formats (warum verstehe ich allerdings nicht so ganz).

Ich dachte dass die oben verwendete myDoc.search-Methode alle (einzelnen) Vorkomnisse eines best. Absatzformates liefert, aber ich habe festgestellt, dass auch Bereiche dieses Absatzformats gefunden werden.

In einem Test habe ich in einem Text 2 einzelnen Absätze meines Absatzformats eingefügt und dann noch drei aufeinanderfolgende Absätze meines Formats.

Lasse ich mir myFound.length ausgeben, so erhalte ich 3 (Vorkomnisse) und beim Durchlaufen der Schleife erhalte ich bei myFound[oneItem].paragraphs.length 3, 1, 1 (Schleife läuft "rückwärts").

Somit funktioniert dass Verschieben der gefundenen Absätze mit meinem Absatzformat (in eine einzellige Tabelle) auch bei aufeinanderfolgenden Absätzen.

zaphodbeeblebroxx


als Antwort auf: [#269149]
X