[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Textzeile monatlich per Skript anpassen.

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

Textzeile monatlich per Skript anpassen.

xD
Beiträge gesamt: 133

3. Jan 2011, 15:25
Beitrag # 1 von 4
Bewertung:
(2126 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Vorab allen ein gutes neues 2011!

Nach dem Urlaub geht´s gleich wieder rund. Künftig muss auf allen Druckprodukten eine Textzeile stehen: A1

A-L: Aktueller Monat
1-0: Aktuelles Jahr

Jetzt würde ich ein Skript brauchen, dass beim ÖFFNEN meines indd. Dokuments alle Textzeilen, die mit einem bestimmten Zeichenformat belegt sind, automatisch anpasst.
Der Buchstabe muss somit jeden Monat umgestellt werden etc.

Habe mal versucht, ein Skript aus dem Forum abzuändern, bin aber grandios gescheitert. Wäre eine ganz tolle Sache wenn jemand helfen könnte. Anbei das vorhandene Skript, evtl. als Basis dafür:

//thisMonth.jsx

#targetengine "session"
var myMonth = app.addEventListener("afterOpen", setMonth, false);

function setMonth()
{
var doc = app.documents.lastItem();
var myStyle = doc.characterStyles.item("Norm");
if (myStyle == null)
exit ();

var myDate = getDateString();

app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedCharacterStyle = myStyle;
app.changeTextPreferences.changeTo = myDate;

doc.changeText();
app.findTextPreferences = app.changeTextPreferences = null;
}
function getDateString()
{
var today = new Date();
var myDate = (today.getMonth()+1) + '/' + (String(today.getFullYear()).substr(2, 2));
return myDate;
}



- Adobe CS3 -

(Dieser Beitrag wurde von xD am 3. Jan 2011, 15:28 geändert)
X

Textzeile monatlich per Skript anpassen.

Hans Haesler
  
Beiträge gesamt: 5826

4. Jan 2011, 22:33
Beitrag # 2 von 4
Beitrag ID: #460785
Bewertung:
(2056 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo xD,

im folgenden Snippet ist nur die Änderung der Funktion getDateString() getestet.

Damit der Monat als Buchstabe zurückgeschickt werden kann, wird ein Array definiert. Die Position des Monats (Januar = 0) entspricht jener der Liste (Element 0 = A).

Für das Jahr nehme ich an, dass die letzte Ziffer geholt werden muss: 2011. Das ist Position 4. Beim slice wird (3) definiert, weil die Zählung ebenfalls bei Null beginnt.

Code
//thisMonth.jsx 

#targetengine "session"
var myMonth = app.addEventListener("afterOpen", setMonth, false);

function setMonth() {
var doc = app.documents.lastItem();
var myStyle = doc.characterStyles.item("Norm");
if (myStyle == null) {
exit ();
}

var myDate = getDateString();

app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedCharacterStyle = myStyle;
app.changeTextPreferences.changeTo = myDate;

doc.changeText();
app.findTextPreferences = app.changeTextPreferences = null;
}

function getDateString() {
var monthList = new Array ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L");
var today = new Date();
var curMonth = monthList[today.getMonth()];
var curYear = ("" + today.getFullYear()).slice(3);
return curMonth + curYear;
}

Gruss, Hans


als Antwort auf: [#460718]

Textzeile monatlich per Skript anpassen.

xD
Beiträge gesamt: 133

5. Jan 2011, 13:46
Beitrag # 3 von 4
Beitrag ID: #460851
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
vielen Dank Herr Haesler,

das Skript funktioniert an sich hervorragend. Leider stören sich die beiden Skripte aber bei der gleichzeitigen Verwendung in einem Dokument.
Das Datum des Zeichenformates "Norm" (01/11) welches durch das bereits vorhandene Skript angesteuert wird, wird teilweise einfach mitformatiert.

Ein unterschiedliches Zeichenformat hier:
var myStyle = doc.characterStyles.item("Norm"); reicht hier wohl nicht aus. Ließe sich das noch irgendwie lösen?


als Antwort auf: [#460785]

Textzeile monatlich per Skript anpassen.

Hans Haesler
  
Beiträge gesamt: 5826

5. Jan 2011, 14:24
Beitrag # 4 von 4
Beitrag ID: #460863
Bewertung:
(2005 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo xD,

bitteschön. Danke für die Rückmeldung.

Das Problem lässt sich doch leicht lösen, indem den beiden Strings je ein eigenes Zeichenformat zugewiesen wird.

Gruss, Hans


als Antwort auf: [#460851]
X