[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:
(2673 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: 5319

15. Apr 2019, 20:08
Beitrag # 2 von 6
Beitrag ID: #569755
Bewertung:
(2641 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.


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:
(2601 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: 5319

16. Apr 2019, 10:19
Beitrag # 4 von 6
Beitrag ID: #569758
Bewertung:
(2591 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.


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:
(2535 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: 5319

16. Apr 2019, 16:17
Beitrag # 6 von 6
Beitrag ID: #569765
Bewertung:
(2508 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 );


als Antwort auf: [#569764]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!