[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Datum in etikettierten Textfeld einfügen

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

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

9. Nov 2017, 12:32
Beitrag # 1 von 15
Bewertung:
(3277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Allerseits,
kann mir jemand sagen warum mein script nicht läuft?

Code
var alle = app.activeDocument.allPageItems;  
for (var i=0; i<alle.length; i++) {
if (alle[i].label == "datum") {
alle[i].contents = myDatum();
}
}

function myDatum()
{
var jetzt= new Date();
var monate = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
var datum = jetzt.getDate() + ". " + monate[jetzt.getMonth()] + " " + jetzt.getFullYear() + ", " + jetzt.getHours() + ":" + jetzt.getMinutes() + "Uhr";
return [datum];
}

Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;
X

Datum in etikettierten Textfeld einfügen

Martin Fischer
  
Beiträge gesamt: 11930

9. Nov 2017, 12:43
Beitrag # 2 von 15
Beitrag ID: #560594
Bewertung:
(3272 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

zwei Dinge sind mir aufgefallen:

Zum einen versuchst Du dem content von allen PageItems mit dem entsprechenden Label, also auch graphischen Rahmen, Gruppen usw., den Datums-String zuzuweisen.

Das würde ich eingrenzen:
Code
if (alle[i].hasOwnProperty('contents') && alle[i].label == "datum") 


Zum anderen übergibt Deine Funktion einen Array:
Code
return [datum]; 


Der content braucht aber einen Wert vom Typ String.
Entweder so:
Code
return datum; 

oder so:
Code
alle[i].contents = myDatum()[0]; 


Viele Grüße
Martin


als Antwort auf: [#560592]
(Dieser Beitrag wurde von Martin Fischer am 9. Nov 2017, 12:47 geändert)

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

9. Nov 2017, 12:47
Beitrag # 3 von 15
Beitrag ID: #560595
Bewertung:
(3268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
so klappt ´s

Merci
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560594]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

9. Nov 2017, 13:24
Beitrag # 4 von 15
Beitrag ID: #560596
Bewertung:
(3255 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Martin,
kann ich den (einen) Skript beim öffnen eine .idml Dokument automatisch ausführen lassen?
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560594]

Datum in etikettierten Textfeld einfügen

Martin Fischer
  
Beiträge gesamt: 11930

9. Nov 2017, 13:59
Beitrag # 5 von 15
Beitrag ID: #560600
Bewertung:
(3235 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Im Prinzip ja.
Du müsstest zunächst mal feststellen, was für ein Ereignis das Öffnen einer IDML-Datei ist. An dieses Ereignis (irgendwas mit After) könntest du die Ausführung deines Skripts hängen.

Ich würde Dir aber nahelegen, an die Ausführung des Skripts weitere Bedingungen und Abfragen zu knüpfen. Sonst besteht die Möglichkeit, dass das Skript öfter in solchen Fällen zuschlägt, in denen es nicht erwünscht ist, als andersrum.

Viele Grüße
Martin


als Antwort auf: [#560596]
(Dieser Beitrag wurde von Martin Fischer am 9. Nov 2017, 14:00 geändert)

Datum in etikettierten Textfeld einfügen

Uwe Laubender
Beiträge gesamt: 4242

9. Nov 2017, 14:03
Beitrag # 6 von 15
Beitrag ID: #560601
Bewertung:
(3233 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,
ich nehme mal an, dass Dir ein einfaches "Ja" nicht genügt, oder?

Eine "Skizze" für ein Skript folgt weiter unten.

Schau aber zunächst mal hier rein:
http://www.hilfdirselbst.ch/..._P546750.html#546750

Dort zeige ich, wie sich ein beforeOpen-Event ausbeuten lässt. Oder aber die erste Instanz eines afterOpen-Events. Beide haben die Eigenschaft fullName, dessen Wert der vollständige Dateipfad der gerade öffnenden Datei ist. Im Erfolgsfall also Deine IDML-Datei.

Nimm mal an, dass Du den Wert von fullName auf die Endung der Datei prüfst. Also beispielsweise auf:

Code
\.idml$ 


Falls also die Prüfung positiv läuft, kann Dein Skript laufen nachdem der zugehörige afterOpen-Event erfolgreich gefeuert hat. Aber Vorsicht, der afterOpen-Event könnte sich mehrfach melden, einmal mit der Eigenschaft fullName, einmal ohne. Näheres dazu im verlinkten Thread.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#560596]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

9. Nov 2017, 14:32
Beitrag # 7 von 15
Beitrag ID: #560602
Bewertung:
(3227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin.

Hi Uwe,
danke schön werde ich es mal durch lesen und wahrscheinlich noch male dazu melden ;)
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560601]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

9. Nov 2017, 22:03
Beitrag # 8 von 15
Beitrag ID: #560609
Bewertung:
(3171 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
so hier mein Bastelei:
Code
app.addEventListener("afterOpen",  meinDoOeffnen);   

function meinDoOeffnen(event)
if (event.userInteractionLevel == "INTERACT_WITH_ALL" && event.fullName == "macHD/wbf/mein.imdl"){
var alle = app.documents[0].allPageItems;
if (alle[i].hasOwnProperty('contents') && alle[i].label == "datum"){
alle[i].contents = myDatum();
}
}
}

function myDatum()
{
var jetzt= new Date();
var monate = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
var datum = jetzt.getDate() + ". " + monate[jetzt.getMonth()] + " " + jetzt.getFullYear() + ", " + jetzt.getHours() + ":" + jetzt.getMinutes() + " Uhr";
return datum;
}


Läuft natürlich nicht :(
Eine .imdl heisst nach dem öffnen "Unbenannt" und hat kein Pfad. Ich glaube in dem Fall ist eine FullName Prüfung sinnlos oder?
Habe mein.imdl auch als mein.indd öffnen lassen funzt mein script aber auch nicht.

Sollte ich eine neue Thema hierfür anfangen?
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560601]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2278

10. Nov 2017, 07:40
Beitrag # 9 von 15
Beitrag ID: #560612
Bewertung:
(3096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Sándor,

Zitat Sollte ich eine neue Thema hierfür anfangen?

Wäre sicherlich besser.

Zitat Ich glaube in dem Fall ist eine FullName Prüfung sinnlos oder?

Ja, und das gilt für jede, noch nicht gesicherte InDesign-Datei:
Document.saved == false!
Selbst dann, wenn Dich im Tab des Documentfensters der richtige Name anlächelt :-).


Verwende
Code
app.addEventListener("beforeOpen",  meinDoOeffnen); 


und die Sache sollte klappen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#560609]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

10. Nov 2017, 09:11
Beitrag # 10 von 15
Beitrag ID: #560618
Bewertung:
(3081 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,
danke für dein Antwort.

Antwort auf: und die Sache sollte klappen.

Ich hab´s nicht getestet aber denke, dass mein script erst nach dem öffnen die Werte des etikettierten Textfeldes ändern kann oder?
So müsste ich wohl erst mit beforeOpen die Name prüfen und dann mit afterOpen den Feld ändern.

Nach dem ich eine Nacht über die Sache geschlafen habe bin ich drauf gekommen, dass für mich besser wäre über eine Hotfolder zu arbeiten. Den kann ich mit applescript ansteuern, da kenne ich mich ein hauch besser aus :)
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


als Antwort auf: [#560612]

Datum in etikettierten Textfeld einfügen

Uwe Laubender
Beiträge gesamt: 4242

10. Nov 2017, 09:19
Beitrag # 11 von 15
Beitrag ID: #560619
Bewertung:
(3078 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,
Du hast außerdem einen Tippfehler drin.
Das Ding heißt idml und nicht imdl. Da kann der Ausdruck ja nichts finden.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#560618]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2278

10. Nov 2017, 09:36
Beitrag # 12 von 15
Beitrag ID: #560620
Bewertung:
(3066 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,

Zitat Ich hab´s nicht getestet aber denke, dass mein script erst nach dem öffnen die Werte des etikettierten Textfeldes ändern kann oder?


Na ja, wenn das Event wirklich vor dem Öffnen gefeuert wird, kannst Du natürlich nicht auf den Inhalt der Datei zugreifen.

Zitat So müsste ich wohl erst mit beforeOpen die Name prüfen und dann mit afterOpen den Feld ändern.


Ja, das denke ich auch.

Aber das sollte kein Problem sein, solange Du mit der gleichen Target-Engine arbeitest, kannst Du Informationen über ein globales Object/globale Variable weiterreichen.

Zitat Nach dem ich eine Nacht über die Sache geschlafen habe bin ich drauf gekommen, dass für mich besser wäre über eine Hotfolder zu arbeiten.


Ok, mit Apple-Script kenne ich mich nicht aus, aber die Arbeit mit Hotfoldern hat auch seine Tücken, aber ich arbeite selbst sehr gerne damit, weil ich so UI-Aufgaben und Dienstskripte entkoppeln kann.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#560618]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2278

10. Nov 2017, 09:39
Beitrag # 13 von 15
Beitrag ID: #560621
Bewertung:
(3063 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Uwe,

:-)
wer wird denn so kleinlich sein, aber wenn schon, denn schon:

Prüfe dann mal die Klammern.

Ach ja, noch ein Hinweis, für Arbeiten mit Datumsangaben könnte auch dieses Skript interessant sein:

WpsInsertDates – Skript zum Einfügen von berechneten Daten in Adobe InDesign Dateien

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#560619]
(Dieser Beitrag wurde von WernerPerplies am 10. Nov 2017, 09:45 geändert)

Datum in etikettierten Textfeld einfügen

Uwe Laubender
Beiträge gesamt: 4242

10. Nov 2017, 10:30
Beitrag # 14 von 15
Beitrag ID: #560625
Bewertung:
(3049 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sándor,
folgender Vorschlag für die Prüfung:

Code
event.fullName.match(/\.idml$/i); 


Findet alle Dateinamen, die mit ".idml" enden.
Unabhängig von Groß/Klein-Schreibung.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#560618]
(Dieser Beitrag wurde von Uwe Laubender am 10. Nov 2017, 10:31 geändert)

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2039

10. Nov 2017, 12:01
Beitrag # 15 von 15
Beitrag ID: #560631
Bewertung:
(3030 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Uwe ] Das Ding heißt idml und nicht imdl. Da kann der Ausdruck ja nichts finden.

Das ist eine Krücke mit meine Flüchtigkeit Fehler.

Antwort auf [ Werner ] Prüfe dann mal die Klammern.

da lobe ich mein ScriptDebugger (für applescript), der hätte so den script nicht übersetzt.

Danke für Euere Hilfe.
Gruß Sándor


Hier auf der HDS, kann jeder was dazu lernen, sogar die die glauben alles (besser) zu wissen Wink
Das sollten WIR ALLE unterstützen: http://www.hilfdirselbst.ch/...m.cgi?do=membership;


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

Web / SEO

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
13.12.2018 - 20.12.2018

3400 Burgdorf, BE
Donnerstag, 13. Dez. 2018, 09.00 Uhr - Donnerstag, 20. Dez. 2018, 09.00 Uhr

Workshop

Schritt für Schritt: Planen, konzipieren und Umsetzen einer responsiven Website mit Wordpress: Lokalen Server einrichten; Frontend/Backend; Vorgehen Schritt für Schritt bis zur fertigen Site.

2-Tages-Workshop CHF 990.00

Ja

Organisator: PubliCollege GmbH

Kontaktinformation: Beat Kipfer, E-Mailinfo AT publicollege DOT ch

www.publicollege.ch

Websites erstellen mit Wordpress und Elementor Pro
Veranstaltungen
19.12.2018

Wie installiert und konfiguriert man Mailchimp und verwendet es für sein Business

Internet
Mittwoch, 19. Dez. 2018, 10.00 - 11.30 Uhr

Webinar

In diesem Webinar zeige ich den Teilnehmern, wie sie mit Mailchimp eigene Newsletter verschicken können. Wie sie Mailchimp installieren und konfigurieren müssen und wie sie eine erste Kampagne machen können.

Gratis

Ja

Organisator: Eric Mächler

https://events.genndi.com/register/818182175026318367/4ac0f277c0

Der Start ins E-Mail Marketing mit Mailchimp