[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Scriptanpassung - Formate umbenennen und in neue Formatgruppe verschieben

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

Scriptanpassung - Formate umbenennen und in neue Formatgruppe verschieben

hebbert
Beiträge gesamt: 5

24. Nov 2015, 17:02
Beitrag # 1 von 4
Bewertung:
(3271 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Mitstreiter,

ich hatte mir vor einiger Zeit dieses Script besorgt. Funktioniert super und hat mir schon viel Zeit erspart. Es ändert von Absatzformaten die Namen von "xx" zu "yy".
Jetzt bräuchte ich eine Anpassung so dass ich das bestehende Absatzformat umbenennen (Name_neu) und zeitgleich eine Formatgruppe (Gruppe_neu) erzeugen kann. Mir würde es auch schon helfen wenn ich das neu benannte Format in eine bestehende Formatgruppe schieben könnte, wäre vielleicht auch besser da ich mehrere Formate in eine neue Gruppe schieben müsste.

Code
var doc=app.activeDocument;  
var myPstyles=doc.allParagraphStyles, l=myPstyles.length;
while (l--){
try{
alert(myPstyles[l].name);
myPstyles[l].name=myPstyles[l].name.replace("02_Dachzeile","02_1_Dachzeile"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("02_Ueberschrift_gross","02_2_Ueberschrift_gross"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("02_Ueberschrift_mittel","02_3_Ueberschrift_mittel"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("02_Ueberschrift_klein","02_4_Ueberschrift_klein"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("04_Text_ohne_Einzug","04_1_Text_ohne_Einzug"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("04_Text","04_2_Text"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("04_Text_Initial_2zeilig","04_3_Text_Initial_2zeilig"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("04_Text_Initial_3zeilig","04_3_Text_Initial_3zeilig"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("06_Interview_Ueberschrift","06_1_Interview_Ueberschrift"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("06_Interview_Vorspann","06_2_Interview_Vorspann"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("06_Interview_Frage","06_3_Interview_Frage"); //replace the space character with a underscore
myPstyles[l].name=myPstyles[l].name.replace("06_Interview_Antwort","06_4_Interview_Antwort"); //replace the space character with a underscore


}catch(e){}

}
alert ("Done!\nYou can go outside an play now");


Falls ihr hierfür eine Idee hättet, oder ich beim Durchstöbern einen ähnlichen Beitrag übersehen habe, bin ich über jede Rückmeldung dankbar.

Schöne Grüße aus Donauwörth!
Hubert
X

Scriptanpassung - Formate umbenennen und in neue Formatgruppe verschieben

Martin Fischer
  
Beiträge gesamt: 12783

25. Nov 2015, 07:11
Beitrag # 2 von 4
Beitrag ID: #544898
Bewertung:
(3210 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Halo Hubert,

Absatzformate kennen den move()-Befehl.

Damit könntest Du ein Absatzformat an eine bestimmte Position (BEFORE, AFTER, AT_END, AT_BEGINNING) einer bekannten Formatgruppe verschieben.


als Antwort auf: [#544894]

Scriptanpassung - Formate umbenennen und in neue Formatgruppe verschieben

Hans Haesler
  
Beiträge gesamt: 5826

26. Nov 2015, 19:59
Beitrag # 3 von 4
Beitrag ID: #544953
Bewertung:
(3130 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hubert,

ich wurde von Kai Rübsamen auf dieses Thema hingewiesen. Von ihm stammen einige Code-Zeilen (das Erzeugen des Ordners, das Verschieben der Formate und – im zweiten Script – ein Ansatz der Liste der Formatnamen) sowie der Kritikpunkt, dass zuviele Replace-Befehle unnötig ausgeführt werden.

Bei Deinem Script sollte anstelle von allParagraphStyles eher die paragraphStyles gespeichert werden.
Sonst werden Formate, welche sich schon in Gruppen befinden, ebenfalls behandelt.

Als Name für die Zählervariable ist das kleine "L" ungeeignet, weil es leicht mit der Ziffer "1" verwechselt wird.

Die Kommentare am Ende der Zeilen sollten entfernt werden (die genannte Ersetzen-Aktion – Leerschlag zu Underscore – ist durch andere Inhalte ersetzt worden).

Zum Verschieben in eine Formatgruppe reicht es, diese zu Beginn zu erzeugen und in der while-Schleife genügt eine einzige Zeile:

Code
var doc=app.activeDocument; 

if (!doc.paragraphStyleGroups.itemByName("Hubert").isValid) {
var paraStyleGroup = doc.paragraphStyleGroups.add({name: "Hubert"});
}
else {
var paraStyleGroup = doc.paragraphStyleGroups.itemByName("Hubert");
}
var allStyles=doc.paragraphStyles;
var n=allStyles.length;
while (n--){
try{
allStyles[n].name=allStyles[n].name.replace("02_Dachzeile","02_1_Dachzeile");
allStyles[n].name=allStyles[n].name.replace("02_Ueberschrift_gross","02_2_Ueberschrift_gross");
allStyles[n].name=allStyles[n].name.replace("02_Ueberschrift_mittel","02_3_Ueberschrift_mittel");
allStyles[n].name=allStyles[n].name.replace("02_Ueberschrift_klein","02_4_Ueberschrift_klein");
allStyles[n].name=allStyles[n].name.replace("04_Text_ohne_Einzug","04_1_Text_ohne_Einzug");
allStyles[n].name=allStyles[n].name.replace("04_Text","04_2_Text");
allStyles[n].name=allStyles[n].name.replace("04_Text_Initial_2zeilig","04_3_Text_Initial_2zeilig");
allStyles[n].name=allStyles[n].name.replace("04_Text_Initial_3zeilig","04_3_Text_Initial_3zeilig");
allStyles[n].name=allStyles[n].name.replace("06_Interview_Ueberschrift","06_1_Interview_Ueberschrift");
allStyles[n].name=allStyles[n].name.replace("06_Interview_Vorspann","06_2_Interview_Vorspann");
allStyles[n].name=allStyles[n].name.replace("06_Interview_Frage","06_3_Interview_Frage");
allStyles[n].name=allStyles[n].name.replace("06_Interview_Antwort","06_4_Interview_Antwort");
allStyles[n].move(LocationOptions.AT_END, paraStyleGroup);
}
catch (e) {
}
}
alert ("Done!\nYou can go outside an play now");

Ohne das ständige Anzeigen des aktuellen Formatnamens wird das zackig ausgeführt.

Aber: Es gibt zwei Probleme.
Erstens: Bei jedem der zwölf Durchgänge wird jeder der zwölf Replace-Befehle ausgeführt. Davon immer elf Mal umsonst.
Zweitens: Das erste Format ist nicht zuoberst, sondern ganz zuletzt eingereiht.

Als Lösung des ersten Problems bietet sich an, die Formate direkt anzusprechen.
Das könnten zwölf Befehlszeilen sein. Oder eine Liste mit den Namenspaaren, welche mit einer Schleife abgearbeitet wird.

Zum zweiten Problem habe ich folgendes versucht: Im Formatordner wird zuerst ein temporäres Format angelegt, welches am Schluss wieder entfernt wird.

Code
var curDoc  = app.documents[0]; 
var grpName = "hebbert";

if (!curDoc.paragraphStyleGroups.itemByName(grpName).isValid) {
var paraStyleGroup = curDoc.paragraphStyleGroups.add({name:grpName});
}
else {
var paraStyleGroup = curDoc.paragraphStyleGroups.itemByName(grpName);
}

var dummy = paraStyleGroup.paragraphStyles.add();
dummy.name = "dummy";

var repList = [
["02_Dachzeile", "02_1_Dachzeile"],
["02_Ueberschrift_gross", "02_2_Ueberschrift_gross"],
["02_Ueberschrift_mittel", "02_3_Ueberschrift_mittel"],
["02_Ueberschrift_klein", "02_4_Ueberschrift_klein"],
["04_Text_ohne_Einzug","04_1_Text_ohne_Einzug"],
["04_Text","04_2_Text"],
["04_Text_Initial_2zeilig","04_3_Text_Initial_2zeilig"],
["04_Text_Initial_3zeilig","04_3_Text_Initial_3zeilig"],
["06_Interview_Ueberschrift","06_1_Interview_Ueberschrift"],
["06_Interview_Vorspann","06_2_Interview_Vorspann"],
["06_Interview_Frage","06_3_Interview_Frage"],
["06_Interview_Antwort","06_4_Interview_Antwort"]
];

for (var p=0; p<repList.length; p++) {
try {
curDoc.paragraphStyles.itemByName(repList[p][0]).name = repList[p][1];
curDoc.paragraphStyles.itemByName(repList[p][1]).move(LocationOptions.AT_END, paraStyleGroup);
}
catch (e) {
}
}

paraStyleGroup.paragraphStyles.itemByName("dummy").remove();

var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();

Gruss, Hans


als Antwort auf: [#544894]

Scriptanpassung - Formate umbenennen und in neue Formatgruppe verschieben

hebbert
Beiträge gesamt: 5

30. Nov 2015, 08:26
Beitrag # 4 von 4
Beitrag ID: #544990
Bewertung:
(2988 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen herzlichen Dank für deine Antwort und Mühe.
Das Script läuft nun viel sauberer und schneller durch als vorher. Zudem werden die Formate schön in Gruppen verschoben. Leider stehe ich noch ganz am Anfang der Skriptbearbeitung, habe aber einen Kollegen der mit Javascript vertraut ist. Mit ihm werde ich das mal analysieren und ggfs erweitern.
Das bringt mich aber schon ein Stück weiter.

Vielen Dank und Grüße
hebbert


als Antwort auf: [#544953]
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

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!