[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Tabellenformate in eine Untergruppe ansprechen

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

Tabellenformate in eine Untergruppe ansprechen

DiePixelmixer
Beiträge gesamt: 6

15. Apr 2019, 13:43
Beitrag # 1 von 6
Bewertung:
(277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
das Schwarmwissen ist gefragt :)

Mit meinem Skript formatiere ich einen Wandkalender in drei unterschiedlichen Looks.
In den Zellenformaten habe ich der Übersicht halber nun drei Odner/Untergruppen angelegt:

Look1/Sonn- & Feiertage
Look1/Wochentage
Look1/Monate

Look2/Sonn- & Feiertage
Look2/Wochentage
Look2/Monate

Look3/Sonn- & Feiertage
Look3/Wochentage
Look3/Monate

Leider funktioniert mein Skript nun nicht mehr, da es die Zellenformate in der Formatgruppe nicht findet. Der Versuch den Ordner-/Gruppennamen mittels (maskiertem) Slash voranzustellen funktionierte leider nicht.

Ich arbeite mit folgendem Skript:
Code
  app.findGrepPreferences = NothingEnum.nothing;        
var grepSearchs = [
["\\d\\d So",'Sonn- & Feiertage'],
["\\d\\d Sa",'Samstage'],
["\\d\\d Mo",'Wochentage'],
["\\d\\d Di",'Wochentage'],
["\\d\\d Mi",'Wochentage'],
["\\d\\d Do",'Wochentage'],
["\\d\\d Fr",'Wochentage'],
["Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember",'Monate']];

var docTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements();

o = docTables.length;
for(var i = 0; i < o;i++){
myTable = docTables[i];
l = grepSearchs.length;
while(l--){
app.findGrepPreferences.findWhat = grepSearchs[l][0];
var foundList = myTable.findGrep();
f = foundList.length;
while(f--){foundList[f].parent.appliedCellStyle = grepSearchs[l][1];}
}
}

app.findGrepPreferences = NothingEnum.nothing;




Modifiziert habe ich es so:

Code
 app.findGrepPreferences = NothingEnum.nothing;        
var grepSearchs = [
["\\d\\d So",'Look1\/Sonn- & Feiertage'],
["\\d\\d Sa",'Look1\/Samstage'],
["\\d\\d Mo",'Look1\/Wochentage'],
["\\d\\d Di",'Look1\/Wochentage'],
["\\d\\d Mi",'Look1\/Wochentage'],
["\\d\\d Do",'Look1\/Wochentage'],
["\\d\\d Fr",'Look1\/Wochentage'],
["Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember",'Look1\/Monate']];

var docTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements();

o = docTables.length;
for(var i = 0; i < o;i++){
myTable = docTables[i];
l = grepSearchs.length;
while(l--){
app.findGrepPreferences.findWhat = grepSearchs[l][0];
var foundList = myTable.findGrep();
f = foundList.length;
while(f--){foundList[f].parent.appliedCellStyle = grepSearchs[l][1];}
}
}

app.findGrepPreferences = NothingEnum.nothing;

X

Tabellenformate in eine Untergruppe ansprechen

Uwe Laubender
Beiträge gesamt: 4341

15. Apr 2019, 20:08
Beitrag # 2 von 6
Beitrag ID: #569755
Bewertung:
(245 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Pixelmixer,

da Du offenbar weißt, dass die Untergruppen im "Root" der Zellenformate angelegt sind, kannst Du die Zellenformate folgendermaßen erreichen:

doc.cellStyleGroups.itemByName("Look1").cellStyles.itemByName("Monate");

Dein grepSearchs Array braucht dann Arrays mit jeweils 3 Einträgen, nicht nur zwei.

Also beispielsweise so:

Code
var doc = app.documents[0]; 
app.findGrepPreferences = NothingEnum.nothing;
var grepSearches =
[
["\\d\\d So" , "Look1" , "Sonn- & Feiertage"],
["\\d\\d Sa" , "Look1" , "Samstage"],
["\\d\\d Mo" , "Look1" , "Wochentage"],
["\\d\\d Di" , "Look1" , "Wochentage"],
["\\d\\d Mi" , "Look1" , "Wochentage"],
["\\d\\d Do" , "Look1" , "Wochentage"],
["\\d\\d Fr" , "Look1" , "Wochentage"],
["Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember" , "Look1" , "Monate"]
];

var docTables = doc.stories.everyItem().tables.everyItem().getElements();

var o = docTables.length;

for(var i = 0; i < o;i++)
{
var myTable = docTables[i];
var l = grepSearches.length;

while(l--)
{
app.findGrepPreferences.findWhat = grepSearches[l][0];

var foundList = myTable.findGrep();
var f = foundList.length;

while( f-- )
{
var cellStyle = doc.cellStyleGroups.itemByName( grepSearches[l][1] ).cellStyles.itemByName( grepSearches[l][2] );

if( cellStyle.isValid )
{
foundList[f].parent.appliedCellStyle = cellStyle;
};
};
};
};

app.findGrepPreferences = NothingEnum.nothing;


Vorsicht, ich hab' eine Variable umbenannt und hie und da noch ein paar var verteilt.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#569747]

Tabellenformate in eine Untergruppe ansprechen

DiePixelmixer
Beiträge gesamt: 6

16. Apr 2019, 09:37
Beitrag # 3 von 6
Beitrag ID: #569756
Bewertung:
(205 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ganz herzlichen Dank Uwe,

nun leuchtet mir mein Fehler ein.

Viele Grüße
Werner


als Antwort auf: [#569755]

Tabellenformate in eine Untergruppe ansprechen

Uwe Laubender
Beiträge gesamt: 4341

16. Apr 2019, 10:19
Beitrag # 4 von 6
Beitrag ID: #569758
Bewertung:
(195 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

nun ja, als "Fehler" würde ich Dein Bemühen um einen String, der den Pfad zum Format enthält, nun gerade nicht bezeichnen.

Wenn wir uns eine IDMS-Datei anschauen, dann ist dort folgende Notation zu sehen:

Name="Look1:Monat"

Code
<RootCellStyleGroup Self="u88"> 
<CellStyleGroup Self="CellStyleGroup/$ID/Look1" Name="$ID/Look1">
<CellStyle Self="CellStyle/Look1%3aMonat" AppliedParagraphStyle="ParagraphStyle/$ID/[No paragraph style]" KeyboardShortcut="0 0" Name="Look1:Monat">
<Properties>
<BasedOn type="string">$ID/[None]</BasedOn>
</Properties>
</CellStyle>
</CellStyleGroup>
</RootCellStyleGroup>


Hätte also auch mit dem string "Look1:Monat" klappen können.
Ist aber nicht.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#569756]

Tabellenformate in eine Untergruppe ansprechen

DiePixelmixer
Beiträge gesamt: 6

16. Apr 2019, 14:52
Beitrag # 5 von 6
Beitrag ID: #569764
Bewertung:
(139 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah, interessant Uwe!

Also rentiert ab und an einmal ein Blick in die idms-Datei?
Ich bediene mich beim Skripten gerne aus dem Buch InDesign automatisieren von Gregor Fellenz, kam aber hier nicht weiter. Ansonsten hat mir das Buch schon sehr oft geholfen.

Viele Grüße
Werner


als Antwort auf: [#569758]

Tabellenformate in eine Untergruppe ansprechen

Uwe Laubender
Beiträge gesamt: 4341

16. Apr 2019, 16:17
Beitrag # 6 von 6
Beitrag ID: #569765
Bewertung:
(112 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,
eine direkte Ansprache eines styles, cellStyle, characterStyle, paragraphStyle, der verschachtelt in irgendwelchen Untergruppen abgelegt ist, geht meines Wissens nur über zwei Methoden.

1. Du hast eine bekannte Stelle, die diesen style ( cellStyle ) aufweist.
Dann kannst Du den dort angewendeten style direkt referenzieren.

Beispiel:
var myCellStyle = myTable.cells[0].appliedCellStyle;

2. Du kennst den Wert für die Eigenschaft id des cellStyles.
Dann geht:

var myCellStyle = app.documents[0].cellStyles.itemByID( id-Nummer );
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#569764]
Hier Klicken X
Hier Klicken

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
25.04.2019

PDF-Preflight, PDF-Editierung und Automatische Korrektur von PDF-Dateien

Impressed GmbH, Hamburg
Donnerstag, 25. Apr. 2019, 10.00 - 10.30 Uhr

Webinar

In diesem ca. halbstündigen kostenlosen Webinar stellen wir Ihnen die Neuerungen in der Version 2018 von Enfocus PitStop Pro vor.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=249

Enfocus PitStop 2018
Veranstaltungen
26.04.2019

Äh, der Kunde hat leider kein InDesign… Aber Office!

HUSS-MEDIEN GmbH
Freitag, 26. Apr. 2019, 17.00 - 20.00 Uhr

Vortrag

Willkommen zur ersten IDUGB im Jahr 2019. Und gemäß Heikes Ansatz, dass die IDUG „mehr als InDesign“ ist, schauen wir dieses Mal ein wenig über den Tellerrand. Okay, auch wenn wir gern über Office lächeln: Es muss jetzt mal sein Egal was man von Office hält, als InDesign-Anwender*in kommt man immer wieder in Kontakt zu Word, Excel und PowerPoint. Es fängt bei Texten und Tabellen an, die in InDesign verarbeitet werden wollen, bis hin zu PowerPoint-Vorlagen im Corporate Design, die Kunden bestellen. Teil 1: Was kann Office alles, was können wir eventuell nutzen? Keine Angst: Ihr müsste jetzt nicht zum Office-Crack werden. Dann dafür gibt es ja Leute, wie Stephan! Er wird euch helfen, zeigt euch im ersten Teil des Abends maßgeblich, was Office so alles kann, was aber auch nicht. Es geht um ganz klassische Frage von InDesigner*innen – gibt es Grundlinienraster, Schnittmasken oder Sonderfarben? Daneben gib es aber auch Grundlegendes, z.B. wie man überhaupt mit der Arbeit in Office loslegt, wo man wichtige Einstellungen findet und wie dieses Office überhaupt so tickt. Wenn Ihr also mal Dokumentenvorlagen für Kunden gestaltet, kennt ihr schon die Möglichkeiten und könntet schon während der Gestaltungsphase auf die Besonderheiten eingehen. Aber Keine Angst, es gibt immer noch genug für uns in InDesign zu tun!

Vollständige Informationen und Anmeldung via https://idug-berlin.de/idugb44/

Ja

Organisator: InDesign User Group Berlin

Kontaktinformation: InDesign User Group Berlin, E-Mailmail AT idug-berlin DOT de

https://idug-berlin.de