[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

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

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

5. Feb 2016, 11:01
Beitrag # 1 von 19
Bewertung:
(9981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

ein Startup-Script wird beim Öffnen eines Dokuments gestartet.
Siehe http://www.hilfdirselbst.ch/...i?post=546437#546437

Frage: Wie kann der Dialog, welcher fehlende Schriften (und/oder Bilder) meldet, vermieden werden?

Diese Zeile im Startup-Script eingefügt ...

Code
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; 

... kommt natürlich zu spät ...

Danke im voraus.

Gruss, Hans
X

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

5. Feb 2016, 11:23
Beitrag # 2 von 19
Beitrag ID: #546695
Bewertung:
(9974 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

die Aussage
Zitat beim Öffnen

ist etwas unpräzise, welchen Event benutzt Du?

BEFORE_OPEN
oder
AFTER_OPEN?


als Antwort auf: [#546694]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

5. Feb 2016, 15:05
Beitrag # 3 von 19
Beitrag ID: #546716
Bewertung:
(9913 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

im Script steht "afterOpen". Nach Deiner Frage hoffte ich, dass "beforeOpen" die Lösung ist.

Aber: Das ist leider nicht der Fall. Im Gegenteil:
– Mit "afterOpen" werden die Schriften korrekt ausgetauscht. Auch solche, welche "fehlend" waren. Und der Dialog wird gezeigt.
– Mit "beforeOpen" kommt sofort der Dialog. Und die Schriften werden nicht ausgetauscht.

Der Anfang des Scripts:

Code
#targetengine "session" 

app.addEventListener("afterOpen", prepReplace, false);

function prepReplace(evt) {

// der Array der Schriftnamen ...
var fontsList = new Array ("Helvetica Neue LT LT 45 Light=Times New Roman Regular",
"Helvetica Neue LT LT 55 Roman=Times New Roman Italic",
"Helvetica Neue LT LT 75 Bold=Times New Roman Bold",
"Helvetica Neue LT LT 76 Bold Italic=Times New Roman Bold Italic");

// die Anzeige von Dialogen ausschalten (falls Schriften oder Bilder fehlen)
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;

// prüfen, ob ein Dokument geöffnet wurde
if (evt.target.constructor.name == "LayoutWindow") {

// die Austausch-Funktion aufrufen
replaceFonts(fontsList);

// das Anzeigen der Dialoge aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;

Das Problem besteht also weiterhin.

Gruss, Hans


als Antwort auf: [#546695]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

5. Feb 2016, 15:12
Beitrag # 4 von 19
Beitrag ID: #546718
Bewertung:
(9909 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans!

Sorry ein Missverständnis.

Du kannst doch keine Schriften in einem Dokument austauschen, das nicht geöffnet ist!

Es ging um das Setzen des Flags:

userInteractionLevel


als Antwort auf: [#546716]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

5. Feb 2016, 17:38
Beitrag # 5 von 19
Beitrag ID: #546727
Bewertung:
(9856 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Werner!

Kein Problem. :-) Und ja, klar, das Dokument muss offen sein.

Doch wenn das Umstellen des 'userInteractionLevel' auf 'NEVER_INTERACT' nicht gelingt, dann kommt der Dialog.

Okay, Björn kann damit leben. Es wäre aber gut, wenn es eine Lösung gäbe.

Ich habe jetzt noch versucht, mit einer Pause etwas zu erwirken. '$.sleep(3000)' gleich zu Beginn der Funktion.
Und dasselbe vor dem Aufruf der replace-Funktion. Hilft alles nichts. Weder beim 'beforeOpen' noch mit 'afterOpen'.

Hat jemand eine Idee für eine Lösung dieses Problems?

Hinweis: Falls gerade kein Dokument mit fehlenden Schriften vorhanden ist, dann ist es einfacher,
ein Bild zu laden und die entsprechende Datei zu löschen.

Gruss, Hans


als Antwort auf: [#546718]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

5. Feb 2016, 18:07
Beitrag # 6 von 19
Beitrag ID: #546732
Bewertung:
(9837 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Hat jemand eine Idee für eine Lösung dieses Problems?

Vielleicht!
Es stellt sich natürlich die Frage. wie Dateien geöffnet werden, per Drag an Drop oder über das Menue:

Der zweite Fall ist ganz einfach:
Menueeintrag durch Skript ersetzen.

Ach ja, ich vergaß, weil von mir nie angewendet, es gibt ja noch den Doppelklick in Finder/Explorer.

Da könnte vielleicht Folgendes klappen:

Skript zum Umschalten mit Panel einrichten, als StartUp-Skript einrichten und offen lassen.

Das Fenster kann man minimieren oder ganz verstecken: Property Hidden = true;

Ohne Garantie, aber ich würde es versuchen.


als Antwort auf: [#546727]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

5. Feb 2016, 20:31
Beitrag # 7 von 19
Beitrag ID: #546733
Bewertung:
(9785 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

ich könnte den Code in ein AppleScript-Droplet verwandeln. Oder wie schon erwähnt, in ein JavaScript, welches die Datei öffnet.

Aber in diesem Thema geht es mir ganz allgemein um die Konstellation "Startup-Script / Dokument öffnen".
Und die Frage: Kann der Dialog, welcher fehlende Schriften (oder Bilder) melden will, unterdrückt werden oder nicht?

Gruss, Hans


als Antwort auf: [#546732]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

5. Feb 2016, 21:03
Beitrag # 8 von 19
Beitrag ID: #546734
Bewertung:
(9748 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans,

Zitat Aber in diesem Thema geht es mir ganz allgemein um die Konstellation "Startup-Script / Dokument öffnen".
Und die Frage: Kann der Dialog, welcher fehlende Schriften (oder Bilder) melden will, unterdrückt werden oder nicht?

Das habe ich verstanden und einen Vorschlag gemacht, den Du testen solltest.

Ein Script programmieren, dass die Flag umschaltet und dann ein Panel-Window öffnet, das aktiv bleibt.

Wie z. B. bei fast allen meinen Skripten.

Dann eine Datei öffnen und prüfen, ob der Dialog erscheint.

Ach ja, ein Panel-Skript benötigt eine Target-Machine.

Alles klar?


als Antwort auf: [#546733]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

6. Feb 2016, 07:12
Beitrag # 9 von 19
Beitrag ID: #546742
Bewertung:
(9650 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich habe jetzt meinen letzten Tipp ausprobiert und festgestellt- er funktioniert leider nicht.

Dann habe mir die Properties des übergebenen Events angesehen und bin zu diesem Schluss gekommen:

Code
#target indesign 
#targetengine "WpsDocumentHandlers";

app.addEventListener("beforeOpen", switchInteractionLevels);

function switchInteractionLevels(event)
{
// die Anzeige von Dialogen ausschalten (falls Schriften oder Bilder fehlen)
if (event.eventType == "beforeOpen")
event.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
}


Bei mir funktionierts!


als Antwort auf: [#546733]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2016, 08:32
Beitrag # 10 von 19
Beitrag ID: #546744
Bewertung:
(9615 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Werner,

ich bedanke mich für Deine Lösung.

Hier funktioniert sie auch. Aber ... nur mit 'beforeOpen'.

Mit 'afterOpen' kommt eine Meldung, welche besagt,
dass 'userInteractionLevel' nicht unterstützt wird. Siehe Anhang.

Gruss, Hans


als Antwort auf: [#546742]
Anhang:
Warnung.png (28.5 KB)

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

6. Feb 2016, 08:50
Beitrag # 11 von 19
Beitrag ID: #546745
Bewertung:
(9609 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

Zitat Hier funktioniert sie auch. Aber ... nur mit 'beforeOpen'.


Du verwirrst mich, hatte ich etwas anderes behauptet?

Hast Du denn mal die Properties aus dem bei 'afterOpen' übergebenen Event ausgelesen?

Gibt es da etwa dies Property?

Wenn ja, ist es beschreibbar?

Ich vermute mal nicht!

Ich vermute mal, Du möchtest jetzt den Switch nach Öffnen des Dokuments wieder zurückschalten, also in etwa die Anweisung geben:

unterdrücke die Dialoge für dieses Dokument
und nach dem Öffnen
Ich hab's mir anders überlegt!

Das hat wohl Adobe so nicht vorgesehen, ich habe jetzt direkt keine Lösung anzubieten und bin auf anderen Baustellen unterwegs, aber mit ein wenig Nachdenken solltest Du eine Lösung finden können.

Ich würde erst einmal alle Event/-Handler untersuchen und zur Not mit einer Containervariablen, Semaphore Datei oder einem Hilfsskript arbeiten.

Es gibt immer eine Lösung!


als Antwort auf: [#546744]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2016, 09:20
Beitrag # 12 von 19
Beitrag ID: #546746
Bewertung:
(9572 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

nein, Du hast nichts anderes behauptet. Und mit 'beforeOpen' gelingt das Umstellen auf 'NEVER_INTERACT'. Der Warndialog bleibt aus. Aber die Schriften werden nicht ersetzt.

Dazu braucht es 'afterOpen'. Und damit gelingt das Umstellen nicht.

Aus Zeitgründen habe ich nicbt weiter geforscht. Und jetzt bin ich unterwegs. Werde den ganzen Tag abwesend sein.

Gruss, Hans


als Antwort auf: [#546745]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

6. Feb 2016, 09:26
Beitrag # 13 von 19
Beitrag ID: #546747
Bewertung:
(9562 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wenn es nur um den Austausch der Schriften geht und nicht um das Zurückschalten, ist die Sache doch ganz einfach:

Rufe zum Umschalten "beforeOpen" auf und zum Austauschen "afterOpen"!

Oder übersehe ich etwas?


als Antwort auf: [#546746]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2016, 10:08
Beitrag # 14 von 19
Beitrag ID: #546748
Bewertung:
(9537 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

okay, werde ich heute Abend versuchen.

[ Jetzt sind wir in einem Zug und fahren dem Genfersee entlang. ]

Gruss, Hans


als Antwort auf: [#546747]

Startup-Script: Wie den Fehlende-Schriften-Dialog unterdrücken?

WernerPerplies
Beiträge gesamt: 2762

6. Feb 2016, 10:29
Beitrag # 15 von 19
Beitrag ID: #546749
Bewertung:
(9505 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ok, dann gebe ich Dir für heute Abend noch etwas auf den Weg.

Das Problem hat mich nicht losgelassen, und ich den denke, da gibt es einen kleinen Bug:

"afterOpen" wird zweimal aufgerufen!
Schau Dir das an:

Code
#target indesign 
#targetengine "WpsDocumentHandlers";

app.addEventListener("beforeOpen", switchInteractionLevels);
app.addEventListener("afterOpen", switchInteractionLevelsBack);
function switchInteractionLevels(event)
{
// die Anzeige von Dialogen ausschalten (falls Schriften oder Bilder fehlen)
if (event.eventType == "beforeOpen")
{
event.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
}
}
function switchInteractionLevelsBack(event)
{
if (event.eventType == "afterOpen")
{
if ("userInteractionLevel" in event)
// 1. Durchlauf
event.userInteractionLevel= UserInteractionLevels.INTERACT_WITH_ALL;
else
{
// 2. Durchlauf
// hier sollte das mit dem Schriftentausch klappen!
}
}
}



als Antwort auf: [#546748]
X

Aktuell

PDF / Print
enfocus_300

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!