[GastForen Programmierung/Entwicklung JavaScript Indesign Script: Finden von Formaten in Formatgruppen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Indesign Script: Finden von Formaten in Formatgruppen

philj0
Beiträge gesamt: 3

16. Mär 2015, 11:12
Beitrag # 1 von 6
Bewertung:
(5733 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen,
ich habe mir in Indesign CS6 ein Script gebastelt, das mehrere GREP-Abfragen gleichzeitig ausführen soll.
Ich habe die Abfragen immer nach dem gleichen Schema aufgebaut:

Code
#target InDesign 
// Trademark hochstellen
app.findGrepPreferences=NothingEnum.nothing;
app.findGrepPreferences.findWhat="®";
app.changeGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences.changeTo="®";
app.changeGrepPreferences.position = Position.SUPERSCRIPT
app.activeDocument.changeGrep();
...


Soweit hat auch alles problemlos funktioniert, nun möchte ich aber z.B. nicht alle Trademarks hochstellen, sondern nur Trademarks die ein bestimmtes Format haben.
Dieses Format, nennen wir es mal "Trademark", ist in einer Formatgruppe "Sonderzeichen".
Wie muss ich die Abfrage nun anpassen, das Indesign auch das Format in der Formatgruppe findet? Finde bis jetzt immer nur Formate die nicht Gruppiert sind und nur auf der Oberfläche liegen.
Code
app.findGREPPreferences.appliedCharacterStyle ="Sonderzeichen/Trademark"; 

-> Funktioniert nicht!

Würde das Prinzip dann auch bei verschachtelten Formatgruppen funktionieren?

Ich hoffe ich hab grad kein Denkfehler!

Viele Grüße
X

Indesign Script: Finden von Formaten in Formatgruppen

Uwe Laubender
Beiträge gesamt: 5318

16. Mär 2015, 12:59
Beitrag # 2 von 6
Beitrag ID: #538035
Bewertung:
(5679 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, philj0!

Willkommen auf HDS.
Du bist zwar hier im falschen Unterforum, ich möchte Deine Frage aber trotzdem hier beantworten.

Im zweiten Codesnippet hast Du
1. einen Syntaxfehler gleich zu Beginn:
Code
app.findGREPPreferences 


muss lauten:
Code
app.findGrepPreferences 


2. Eine Möglichkeit das Zeichenformat direkt in der Untergruppe anzusprechen, könnte lauten:

Code
app.findGrepPreferences.appliedCharacterStyle = app.documents[0].characterStyleGroups.itemByName("Sonderzeichen").characterStyles.itemByName("Trademark"); 


Der Gesamtcode könnte so aussehen:
Code
app.findGrepPreferences= app.changeGrepPreferences = null; 
app.findGrepPreferences.appliedCharacterStyle = app.documents[0].characterStyleGroups.itemByName("Sonderzeichen").characterStyles.itemByName("Trademark");
app.findGrepPreferences.findWhat="®";
//Alternativ:
//app.findGrepPreferences.findWhat="~r";

app.changeGrepPreferences.position = Position.SUPERSCRIPT;

app.activeDocument.changeGrep();

app.findGrepPreferences= app.changeGrepPreferences = null;


Allerdings frage ich mich, weshalb Deine Registered-Zeichen nicht von Haus aus bereits hochgestellt sind. Hängt aber wahrscheinlich von der verwendeten Schrift ab.

Ach ja, das relevante Unterforum für's InDesign-Scripting mit ExtendScript ist die sogenannte Skriptwerkstatt: http://www.hilfdirselbst.ch/...m.cgi?forum=61;t=def


als Antwort auf: [#538028]

Indesign Script: Finden von Formaten in Formatgruppen

philj0
Beiträge gesamt: 3

16. Mär 2015, 14:25
Beitrag # 3 von 6
Beitrag ID: #538044
Bewertung:
(5656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

ich bedanke mich recht herzlich für deine schnelle Antwort und die Verweisung auf das richtige Unterforum. :)

zu Punkt 1:
Ist mir auch grad aufgefallen, ist wohl beim schnellen Tippen passiert.

zu Punkt 2:
Super! Funktioniert einwandfrei! Was ich aber vergessen habe zu schreiben ist, das ich eigentlich ParagraphStyles meinte und nicht die CharacterStyles. Komischerweise, wenn ich characterStyles durch ParagraphStyles erstze, wird mir eine Fehlermedlung angezeigt ...
Code
app.findGrepPreferences.appliedCharacterStyle = app.documents[0].ParagraphStyleGroups.itemByName("Sonderzeichen").ParagraphStyles.itemByName("Trademark"); 

Heißt der Befehl hier anders?

Würde eigentlich auch die CharacterStyles bevorzugen, arbeite aber gerade an einem bestehenden Projekt und hier wurde mit ParagraphStyles gearbeitet.

zu den Trademarks:
Genau, liegt an der Schrift und das Beispiel war vllt. etwas unpassend gewählt, hoffe man hat trotzdem schnell verstanden worauf ich hinaus wollte. :)


viele Grüße


als Antwort auf: [#538035]

Indesign Script: Finden von Formaten in Formatgruppen

Uwe Laubender
Beiträge gesamt: 5318

16. Mär 2015, 14:37
Beitrag # 4 von 6
Beitrag ID: #538047
Bewertung:
(5652 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nicht so hastig mit dem Code-Schreiben ;-)

Pass auf, was Du da adressierst:

Code
app.findGrepPreferences.appliedCharacterStyle 


wendet sich ja an ein Zeichenformat. Und wenn Du da versuchst, ein Absatzformat zuzuweisen, geht's natürlich schief.

Code
//Geändert: 
app.findGrepPreferences.appliedParagraphStyle =


müsste es also lauten.

Und: Pass auf mit den Schreibweisen:

paragraphStyleGroups und paragraphStyles

nicht ParagraphStyleGroups und ParagraphStyles


als Antwort auf: [#538044]

Indesign Script: Finden von Formaten in Formatgruppen

philj0
Beiträge gesamt: 3

16. Mär 2015, 14:53
Beitrag # 5 von 6
Beitrag ID: #538051
Bewertung:
(5642 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
oh Gott!!! :D
ich hoffe man merkt das heut Montag ist!
Funktioniert jetzt alles! Top!

Zu der Schreibweise:
Ich hab hier eine "Doku" liegen, da steht das so drin wie ich es geschrieben habe..., naja ich werd mich aufjedenfall an deine Schreibweise halten.

Vielen, vielen Dank für deine schnellen und hilfreichen Antworten!!! :)


als Antwort auf: [#538047]
(Dieser Beitrag wurde von philj0 am 16. Mär 2015, 15:00 geändert)

Indesign Script: Finden von Formaten in Formatgruppen

Uwe Laubender
Beiträge gesamt: 5318

16. Mär 2015, 15:07
Beitrag # 6 von 6
Beitrag ID: #538053
Bewertung:
(5629 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Deine "Doku" die Objekte selber beschreibt, dann ist ja der Objekt-Konstruktor-Name gemeint, der die "Klasse" des Objekts beschreibt. Und der schreibt sich "groß".

Die Verwendung des Objekts ist was anderes. In der Punktnotation von ExtendScript/JavaScript wird das dann "klein" geschrieben. Bei VB-Skript beispielsweise kann das etwas anders sein.


als Antwort auf: [#538051]
X