[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Vor dem Drucken eine Ebene ausblenden

Kai Rübsamen
Beiträge gesamt: 4684

20. Feb 2017, 14:36
Bewertung:

gelesen: 2957

Beitrag als Lesezeichen
Hallo!

Ich habe auch keine Ahnung, wie man das richtig macht, aber hier mal ein Versuch:

Code
// vorDruckEbeneAusblenden.jsx 

#targetengine "doSomethingInCase"
app.addEventListener("beforePrint", onPrint);

function onPrint(event) {
// das Dokument im Vordergrund
var curDoc = event.parent;

if (curDoc.constructor.name != "Document") {
return;
}

// die Ebene, die das Skript ausblenden soll
var lay = curDoc.layers.itemByName("eMail-Hintergrund");
// den Status der Ebene festhalten
var status = lay.visible;
// den Anwender fragen …
var ebeneDrucken = confirm("Achtung:\rSoll die Ebene »"+ lay.name +"« mit gedruckt werden?", false);
// … und bei Bedarf die Sichtbarkeit umschalten
if (ebeneDrucken) {
lay.visible = true;
return
}
else {
lay.visible = false;
return;
}
}


Was mir nicht gefällt:
1. Der Anwender könnte beim Drucken auf "Abbrechen" klicken > dann bleibt die vom Skript gesetzte Einstellung
2. Der Anwender hat gedruckt und dann bleibt ebenfalls die Einstellung

Frage: Braucht es ein zweites Event "afterPrint", damit man "lay.visible = status" setzen kann? Funktioniert das auch bei Abbrechen?

Merke gerade, dass ich das Prüfen der Ebene mit .isValid vergessen habe; kann man ja aber noch nachholen.

(Dieser Beitrag wurde von Kai Rübsamen am 20. Feb 2017, 14:39 geändert)
Änderungsverlauf:
Beitrag geändert von Kai Rübsamen (Veteran) am 20. Feb 2017, 14:39