[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: 2047

9. Nov 2017, 12:32
Beitrag # 1 von 15
Bewertung:
(4715 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];
}

X

Datum in etikettierten Textfeld einfügen

Martin Fischer
  
Beiträge gesamt: 12783

9. Nov 2017, 12:43
Beitrag # 2 von 15
Beitrag ID: #560594
Bewertung:
(4710 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]; 



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: 2047

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

Merci


als Antwort auf: [#560594]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2047

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


als Antwort auf: [#560594]

Datum in etikettierten Textfeld einfügen

Martin Fischer
  
Beiträge gesamt: 12783

9. Nov 2017, 13:59
Beitrag # 5 von 15
Beitrag ID: #560600
Bewertung:
(4673 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.


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: 5316

9. Nov 2017, 14:03
Beitrag # 6 von 15
Beitrag ID: #560601
Bewertung:
(4671 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.


als Antwort auf: [#560596]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2047

9. Nov 2017, 14:32
Beitrag # 7 von 15
Beitrag ID: #560602
Bewertung:
(4665 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 ;)


als Antwort auf: [#560601]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2047

9. Nov 2017, 22:03
Beitrag # 8 von 15
Beitrag ID: #560609
Bewertung:
(4609 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?


als Antwort auf: [#560601]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2762

10. Nov 2017, 07:40
Beitrag # 9 von 15
Beitrag ID: #560612
Bewertung:
(4534 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.


als Antwort auf: [#560609]

Datum in etikettierten Textfeld einfügen

jekyll
Beiträge gesamt: 2047

10. Nov 2017, 09:11
Beitrag # 10 von 15
Beitrag ID: #560618
Bewertung:
(4519 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 :)


als Antwort auf: [#560612]

Datum in etikettierten Textfeld einfügen

Uwe Laubender
Beiträge gesamt: 5316

10. Nov 2017, 09:19
Beitrag # 11 von 15
Beitrag ID: #560619
Bewertung:
(4516 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.


als Antwort auf: [#560618]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2762

10. Nov 2017, 09:36
Beitrag # 12 von 15
Beitrag ID: #560620
Bewertung:
(4504 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.


als Antwort auf: [#560618]

Datum in etikettierten Textfeld einfügen

WernerPerplies
Beiträge gesamt: 2762

10. Nov 2017, 09:39
Beitrag # 13 von 15
Beitrag ID: #560621
Bewertung:
(4501 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


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: 5316

10. Nov 2017, 10:30
Beitrag # 14 von 15
Beitrag ID: #560625
Bewertung:
(4487 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.


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: 2047

10. Nov 2017, 12:01
Beitrag # 15 von 15
Beitrag ID: #560631
Bewertung:
(4468 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.


als Antwort auf: [#560625]
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
17.04.2024

Online
Mittwoch, 17. Apr. 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

Ja

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!