[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Alle EventHandler + Problem mit "beforeopen"

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

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

24. Okt 2011, 11:28
Beitrag # 1 von 19
Bewertung:
(10734 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

1. Ich bin auf der Suche nach einer Auflistung von allen exisitierenden eventhandler´n in Indesign. Gibt es soetwas im Netz?

2. Ich habe ein Problem mit dem eventhandler "beforeopen". Mein ausgeführtes Script soll sämtliche Bilder auf Fehler überprüfen. Das Script startet allerdings direkt wenn ich auf öffnen klicke, und zu diesem Zeitpunkt hat das Dokument die Bilder noch nicht geladen. Ich bekomme dann eine Fehlermeldung, und die Überprüfung findet nicht statt.
Hat jemand eine Idee?

Vielen Dank im vorraus.

Gruß
inditac
X

Alle EventHandler + Problem mit "beforeopen"

gfellenz
Beiträge gesamt: 121

24. Okt 2011, 12:00
Beitrag # 2 von 19
Beitrag ID: #482897
Bewertung:
(10723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo,

die EventHandler findest du im Objektmodell. Ich empfehle die Online Version von Jongware:

http://jongware.mit.edu

Unterhalb der Eigenschaften der Klasse Document http://jongware.mit.edu/...5.5/pc_Document.html stehen die Handler für das Dokument.

Ein Testskript mit allen Handlern kannst du unter http://www.indd-skript.de/...oad/EventHandler.jsx herunterladen.

Der passende EventHandler für dich ist vermutlich AFTER_OPEN. Wenn du dein Skript gepostet hättest, hätte ich es auch getestet.


als Antwort auf: [#482893]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

24. Okt 2011, 12:12
Beitrag # 3 von 19
Beitrag ID: #482900
Bewertung:
(10713 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke genau sowas habe ich gesucht :-)

ich habe es mit "afterOpen" versucht, es kommt die gleiche Fehlermeldung.

ich poste hier mal die beiden scripts:
Code
#targetengine "session" 
myScriptPath = "............\\Adobe_CS\\InDesign\\Presets_Skripte\\Skripte\\2_prüfalt.jsx";
var myFile = new File (myScriptPath);

app.addEventListener( "afterOpen", myFile);


Code
// Zeigt alle Zeichnungen an, die an fünfzehnter Stelle keinen Unterstrich enthalten. Das Script geht davon aus, dass dies dann ein älterer Stand ist. 


var myImages = app.activeDocument.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {

var myImage = myImages[i].itemLink;

// Die ersten drei Buchstaben aus der Datei extrahieren
var extrakt = myImage.name.slice(14, 15);

if (extrakt != "_") {
alert ("Achtung prüfen: " + myImage.filePath);
}
}



als Antwort auf: [#482897]

Alle EventHandler + Problem mit "beforeopen"

gfellenz
Beiträge gesamt: 121

24. Okt 2011, 12:53
Beitrag # 4 von 19
Beitrag ID: #482903
Bewertung:
(10697 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Interessanterweise wird das Event einmal vom Document und einmal vom LayoutWindow (dem Fenster in dem sich das Dokument befindet) aufgerufen.
Solange das LayoutWindow noch nicht da ist, kannst du die Eigenschaft activeDocument nicht verwenden.

Der einfachste Eingriff in deinen Code wäre eine Abfrage, die prüft, wer das Event aufgerufen hat:

Code
#targetengine "sessionxxx"  

app.addEventListener( "afterOpen", checkImg);

function checkImg (myEvent) {
// Zeigt alle Zeichnungen an, die an fünfzehnter Stelle keinen Unterstrich enthalten. Das Script geht davon aus, dass dies dann ein älterer Stand ist.

if (myEvent.parent.constructor.name == "LayoutWindow") {
var myImages = app.activeDocument.allGraphics;
alert(myImages.length)
for (i = myImages.length-1; i >= 0 ; i--) {

var myImage = myImages[i].itemLink;

// Die ersten drei Buchstaben aus der Datei extrahieren
var extrakt = myImage.name.slice(14, 15);

if (extrakt != "_") {
alert ("Achtung prüfen: " + myImage.filePath);
}
}
}
}



als Antwort auf: [#482900]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

24. Okt 2011, 13:39
Beitrag # 5 von 19
Beitrag ID: #482906
Bewertung:
(10674 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wäre ich nicht drauf gekommen, klingt aber logisch...leider funktioniert die Abfrage nicht mehr.
Die Bildbenennungen sind so aufgebaut:
26_07_31_0040_a_Klartext.eps
oder
26_07_31_0040___Klartext.eps
Wenn ich jetzt eine Dokument öffne mit o. g. verknüpften Bildbennungen, erkennt er das Bild mit dem "a" an 15nter Stelle nicht.


als Antwort auf: [#482903]

Alle EventHandler + Problem mit "beforeopen"

gfellenz
Beiträge gesamt: 121

24. Okt 2011, 14:50
Beitrag # 6 von 19
Beitrag ID: #482912
Bewertung:
(10648 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Logisch finde ich es nicht unbedingt...

Funktioniert die Abfrage überhaupt? Ich habe im Code meiner letzten Antwort noch ein alert(myImages.length); stehen. Dieser Hinweis müsste bei jedem Öffnen angezeigt werden?

Falls nicht: Welche InDesign Version setzt du ein? Ich habe es mit CS5.5 getestet.

By the way: Du kannst die if-Abfrage auch deutlich verkürzen:

Code
if (myImages[i].itemLink.name[14] != "_") {//...} 


Das sollte allerdings keinen Unterschied machen.


als Antwort auf: [#482906]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

24. Okt 2011, 15:02
Beitrag # 7 von 19
Beitrag ID: #482918
Bewertung:
(10642 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ok hatte ich vergessen zu schreiben. Ich habe CS4 Version 6.06

die alert-meldung erscheint bei mir nicht. Also wird nicht geprüft.


als Antwort auf: [#482912]

Alle EventHandler + Problem mit "beforeopen"

gfellenz
Beiträge gesamt: 121

24. Okt 2011, 16:06
Beitrag # 8 von 19
Beitrag ID: #482930
Bewertung:
(10622 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Unter CS4 wird das Event nur von der Klasse Document aufgerufen. Leider ist in diesem Fall manchmal (bei großen Dokumenten), der Array allGraphics gülitg aber die Referenzen im Array funktionieren noch nicht. Seltsam.
In diesem Fall kann man mit einer Warnung abbrechen. Eine Lösung ist es nicht. Falls noch jemand Ideen hat - gerne!

Code
#targetengine "sessionxxx"   

app.addEventListener( "afterOpen", checkImg);

function checkImg (myEvent) {
// Zeigt alle Zeichnungen an, die an fünfzehnter Stelle keinen Unterstrich enthalten. Das Script geht davon aus, dass dies dann ein älterer Stand ist.

if (myEvent.parent.constructor.name == "Document") {
// Referenz auf das Dokument herstellen
var _dok = myEvent.parent;
var myImages = _dok.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {
if (myImage == null) {
alert("Kann das Dokument leider nicht prüfen :-(")
return;
}

var myImage = myImages[i].itemLink;


if (myImage.name[14] != "_") {
alert (_dok .name + " Achtung prüfen: " + myImage.filePath);
}
}
}
}



als Antwort auf: [#482918]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

26. Okt 2011, 07:48
Beitrag # 9 von 19
Beitrag ID: #483059
Bewertung:
(10541 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
gfellenz, danke erstmal für deine Hilfe.

Wenn sonst noch jemand eine Idee hat bitte melden!

Im Prinzip möchte ich nur dass ein Script ausgeführt wird....das kann auch nach dem öffnen erfolgen. Zum Beispiel nach der ersten Aktion die jemand ausführt. Wichtig ist dass es nur einmal ausgeführt wird.

Gruß
inditac


als Antwort auf: [#482930]

Alle EventHandler + Problem mit "beforeopen"

WernerPerplies
Beiträge gesamt: 2763

26. Okt 2011, 08:18
Beitrag # 10 von 19
Beitrag ID: #483060
Bewertung:
(10529 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo inditac,

ich bin nicht so fit mit den diversen Events, ich war aber schon erstaunt, dass "beforOpen" für Dein Problem funktionieren könnte.

Mein Lösungsvorschlag wäre es, das Open-Menue durch ein eigenen Menuepunkt zu ersetzen, der ein Skript aufruft, das die Datei öffnet und Deine gewünschten Aktionen ausführt.

Falls Du irgendein anderes Event benutzen willst, könntest Du den Mehrfachaufruf verhindern, indem Du ein Semaphore-File vor dem Öffnen einrichtest und beim Schließen wieder löscht.


als Antwort auf: [#483059]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

26. Okt 2011, 11:06
Beitrag # 11 von 19
Beitrag ID: #483071
Bewertung:
(10495 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

das Openmenü ersetzen wäre in meinem Fall nicht gut, da wir mit Büchern arbeiten.

Aber Du musst mir verraten was ein Semaphore-File ist? ...ich habe bei google nichts passendes gefunden.

Andere Variante, könnt Ihr euch folgendes Szenario vorstellen:
Ich öffne ein Dokument.
"afterOpen" fängt den Aufruf ab.
Das Script bricht den Aufruf des Dokument´s ab.
Das Script öffnet das Dokument erneut und lässt das Prüfscript im Anschluss ablaufen.

...mir fehlt zur Umsetzung leider das fachliche Wissen :-(


als Antwort auf: [#483060]

Alle EventHandler + Problem mit "beforeopen"

WernerPerplies
Beiträge gesamt: 2763

26. Okt 2011, 11:24
Beitrag # 12 von 19
Beitrag ID: #483073
Bewertung:
(10485 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

Zitat sehr

vereinfacht eine Datei, in der steht, wer was gerade macht, oder gemacht hat.

Semaphore

Zitat das Openmenü ersetzen wäre in meinem Fall nicht gut, da wir mit Büchern arbeiten.


Das ist mir jetzt nicht so klar, aber ich arbeite ja relativ wenig mit InDesign, ich versuche mich da mal schlau zu machen.

Zitat Ich öffne ein Dokument.
"afterOpen" fängt den Aufruf ab.

ok
Zitat Das Script bricht den Aufruf des Dokument´s ab.

Das verstehe ich jetzt nicht, da ist das Doument doch schon offen.
Zitat Das Script öffnet das Dokument erneut und lässt das Prüfscript im Anschluss ablaufen.

Was spricht dagegen, danach direkt Dein Skript aufzurufen?


als Antwort auf: [#483071]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

26. Okt 2011, 13:24
Beitrag # 13 von 19
Beitrag ID: #483083
Bewertung:
(10464 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Problem ist, dass mit "afterOpen" mein prüftscript ausgeführt wird obwohl das Dokument noch nicht geladen ist. Somit bekomme ich eine Fehlermeldung. Script kann nicht ausgeführt werden weil...

sorry ich habe es zu ungenau beschrieben, meine idee ist:
ein Script welches mit "afterOpen" ausgeführt wird. Das Script beinhaltet einen Code um das aufrufen des Dokuments zu stoppen. Dann soll das Script das Dokument wieder öffnen und danach das Prüfscript ausführen.
Ich weiß nicht ob es funktioniert, aber ich vermute dass das Script dann solange wartet bis das Dokument offen ist, um danach das prüfscript auszuführen.



zum Them Buch: Die einzelnen Buchdateien öffne ich nicht über das öffnen-Menü .... sondern direkt über das Buch-Menü.


als Antwort auf: [#483073]
(Dieser Beitrag wurde von inditac am 26. Okt 2011, 13:35 geändert)

Alle EventHandler + Problem mit "beforeopen"

WernerPerplies
Beiträge gesamt: 2763

26. Okt 2011, 13:34
Beitrag # 14 von 19
Beitrag ID: #483086
Bewertung:
(10461 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

könntest Du mir mal eine Datei und Dein Skript zur Verfügung stellen?


als Antwort auf: [#483083]

Alle EventHandler + Problem mit "beforeopen"

inditac
Beiträge gesamt: 45

26. Okt 2011, 13:52
Beitrag # 15 von 19
Beitrag ID: #483089
Bewertung:
(10442 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Startup Script
Code
#targetengine "session"  
myScriptPath = "............\\Adobe_CS\\InDesign\\Presets_Skripte\\Skripte\\2_prüfalt.jsx";
var myFile = new File (myScriptPath);

app.addEventListener( "afterOpen", myFile);



Das Prüfscript
Code
// Zeigt alle Zeichnungen an, die an fünfzehnter Stelle keinen Unterstrich enthalten. Das Script geht davon aus, dass dies dann ein älterer Stand ist.  


var myImages = app.activeDocument.allGraphics;
for (i = myImages.length-1; i >= 0 ; i--) {

var myImage = myImages[i].itemLink;

// Die ersten drei Buchstaben aus der Datei extrahieren
var extrakt = myImage.name.slice(14, 15);

if (extrakt != "_") {
alert ("Achtung prüfen: " + myImage.filePath);
}
}



im Prinzip brauchst Du nur 2 Bilddateien mit folgendem Namen:
26_07_31_0040_a_Klartext.eps
und
26_07_31_0040___Klartext.eps
und diese beiden im Dokument verknüpfen.


als Antwort auf: [#483086]
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!