[GastForen Programmierung/Entwicklung AppleScript Absturz nach Ausführung eines InDesign-AppleScripts

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Absturz nach Ausführung eines InDesign-AppleScripts

fprince
Beiträge gesamt: 54

29. Jan 2014, 11:34
Beitrag # 1 von 6
Bewertung:
(2307 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe AppleScripter,

ich habe vor kurzem ein AppleScript erstellt, welches sogenannte CustomLabels hinzufügt:

Code
insert label key "Custom Label" value "Hier ist ein Wert gespeichert" 


Das funktioniert einwandfrei und kann auch wieder ausgelesen werden. Wenn ich das Dokument, welches diese CustomLabels erhalten hat, schließe, stürzt InDesign ab (jedes mal). Genau gesagt leitet InDesign einen ProtectiveShutdown ein. (Das geht aus dem Absturzbericht hervor.)

Dem ProtectiveShotdownLog konnte ich entnehmen, dass folgendes den Absturz verursacht hat:

Zitat CloseDocCmd - document is still referenced


Soweit ich das verstehe, wird das Dokument von dem AppleScript noch immer gebraucht bzw. "steht noch irgendwie in Kontakt". Wie gesagt, die Absturz passiert erst, wenn ich das Dokument schließe.

Interessanterweise passiert es aber nur dann, wenn ich das Fenster manuell schließe. Schieße ich es mithilfe des Scripts, stürzt InDesign NICHT ab.

Ich konnte dieses Fehlverhalten nur in CS5 erkennen. CS3 und CC scheinen kein Problem zu haben. Leider bin ich aber in der Arbeit gezwungen mit CS5 zu arbeiten.

Systemabhängig dürfte es nicht sein, ich habe es auf vielen OS und InDesign Kombinationen ausprobiert und das OS hatte keinen Einfluss auf das Verhalten.

Eins noch: Mit JavaScript scheint es dieses Problem auch nicht zu geben. Allerdings ist es keine Alternative das ganze Script in JS zu schreiben.

Hat eventuell jemand eine Idee, wie man diesen Absturz verhindern kann? Oder wie man hier einen passenden Umweg finden könnte?

Danke im Voraus!
fprince
X

Absturz nach Ausführung eines InDesign-AppleScripts

Hans Haesler
  
Beiträge gesamt: 5826

29. Jan 2014, 20:59
Beitrag # 2 von 6
Beitrag ID: #522817
Bewertung:
(2275 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo fprince,

soeben versucht nachzustellen. Mit CS5 unter Mac OS X 10.6.8:

Code
tell application "Adobe InDesign CS5" 
tell document 1
insert label key "Custom Label" value "Hier ist ein Wert gespeichert"
end tell
end tell

Und den Wert auslesen:

Code
tell application "Adobe InDesign CS5" 
tell document 1
set aValue to extract label key "Custom Label"
end tell
end tell

Ergebnis: "Hier ist ein Wert gespeichert"

Dann das Dokument gespeichert und mit Befehl + W geschlossen. Ergebnis: Alles okay, kein Absturz.
Das Dokument nochmals geöffnet, etwas geändert und wieder geschlossen. Kein Problem.

Allerdings hatte ich auch schon den einen oder anderen Absturz erlebt, bei welchem ein solcher Eintrag die Ursache sein könnte. Doch kann ich nicht mehr sagen, mit welcher InDesign-Version. Aber es war eher mit JavaScript als mit AppleScript.

Wie bei Dir der Absturz vermieden werden kann? Das Dokument nur per Script schliessen. :-)

Du kannst auch versuchen, folgendem AppleScript den Tastatur-Kürzel Befehl + W zuzuweisen:

Code
tell application "Adobe InDesign CS5" 
close document 1 saving yes
end tell

Vielleicht wird das als "per Script geschlossen" akzeptiert.

Hilft das alles nichts, dann könnte der zu speichernde Wert im Etikett (= label) eines benannten Rahmens ausserhalb der ersten Mustervorlagenseite untergebracht werden.

Code
tell application "Adobe InDesign CS5" 
tell document 1
tell master spread 1
tell page 1
make rectangle with properties {name:"fprince"}
end tell
end tell
tell page item "fprince"
set label to "Hier ist ein Wert"
end tell
move page item "fprince" by {-20, 0}
end tell
end tell

Und so den Wert ausziehen:
Code
tell application "Adobe InDesign CS5" 
tell document 1
tell page item "fprince"
set aValue to label
end tell
end tell
end tell

Übrigens: Anstelle von "Custom Label" kannst Du beliebige Strings verwenden.

Gruss, Hans


als Antwort auf: [#522781]

Absturz nach Ausführung eines InDesign-AppleScripts

fprince
Beiträge gesamt: 54

29. Jan 2014, 22:24
Beitrag # 3 von 6
Beitrag ID: #522821
Bewertung:
(2254 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

als ich deine Antwort las, dachte ich mir: Das kann doch nicht sein, ich habe das in der Arbeit auf 10 verschiedenen Rechnern probiert, und egal was ich tat, immer ein Absturz. Jedes einzelne Mal. Aber dann dachte ich mir: Wahrscheinlich hast du beides in einem Skript probiert. Erst Label schreiben und dann auslesen, alles innerhalb eines Skripts.
Und genauso funktioniert es nun auch bei mir. Wenn das Skript zuerst die Labels schreibt und dann einfach nochmals ausliest, kommt es tatsächlich zu keinem Absturz. Auf die Idee bin ich allerdings nie gekommen, da es für meine Anwendung nicht notwendig war, den Wert danach (im selben Skript) wieder auszulesen.

Ich danke dir auf jeden Fall vielmals!

Eines würde mich aber noch interessieren: Liege ich wirklich richtig, dass du das Label schreiben und auslesen in einem Durchgang gemacht hast? Und wenn ja, kannst du den Absturz nachvollziehen, wenn du nur das Label schreibst und dann versuchst das Dokument zu schließen?

Danke nochmal!
fprince


als Antwort auf: [#522817]

Absturz nach Ausführung eines InDesign-AppleScripts

Hans Haesler
  
Beiträge gesamt: 5826

29. Jan 2014, 22:59
Beitrag # 4 von 6
Beitrag ID: #522823
Bewertung:
(2243 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo fprince,

bitte sehr.

Nein, Du liegst nicht richtig: Das Schreiben und Auslesen habe ich mit den beiden oben geposteten Mini-Scripts gemacht.
Nacheinander ausgeführt (und nicht in einem Durchgang). Einfach nur, um zu schauen, ob da ein Wert gespeichert ist.

Die "Lösung" hatte ich also rein zufälligerweise gefunden. Und hoffentlich wird sie sich bewähren.

Anscheinend klappt es aber auch mit dem Schreiben/Auslesen in derselben Sitzung.

Doch den Absturz kann ich jetzt nachvollziehen:
– Ein neues Dokument, unter einem Namen speichern.
– Das Schreiben-Script starten.
– Das Dokument manuell schliessen.
– Die Frage "Möchten Sie die Änderungen ... vor dem Schliessen speichern." mit Klick auf "OK" beantworten.
Ergebnis: Ein Absturz. :-(

Gruss, Hans


als Antwort auf: [#522821]

Absturz nach Ausführung eines InDesign-AppleScripts

fprince
Beiträge gesamt: 54

31. Jan 2014, 11:34
Beitrag # 5 von 6
Beitrag ID: #522921
Bewertung:
(2189 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

nochmals danke fürs Aufklären und für die Alternativen.

LG fprince


als Antwort auf: [#522823]

Absturz nach Ausführung eines InDesign-AppleScripts

Hans Haesler
  
Beiträge gesamt: 5826

31. Jan 2014, 12:13
Beitrag # 6 von 6
Beitrag ID: #522924
Bewertung:
(2176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo fprince,

bitte sehr.

Noch eine Ergänzung zum letzten Snippet in meinem Beitrag #2. Die Variable 'aValue' sollte zu Beginn als leer initialisiert werden:

Code
set aValue to "" 

Und die Abfrage des benannten Rahmens sollte mit 'try' und 'end try' umgeben werden. So setzt es keine Fehlermeldung ab, wenn mal der Rahmen nicht vorhanden ist.

Mit 'extractLabel' ist diese Vorsichtsmassnahme nicht notwendig, weil automatisch ein leerer String zurückkommt.

Gruss, Hans


als Antwort auf: [#522921]
X

Aktuell

PDF / Print
IWS-Logo_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
20.06.2024

Online
Donnerstag, 20. Juni 2024, 15.00 - 15.45 Uhr

Webinar

Etiketten-Workflows gehören zu den anspruchsvollsten in der grafischen Industrie. Ihre PDF-Dateien sind oft sehr komplex und erfordern eine spezielle Vorbereitung. pdfToolbox bietet viele Möglichkeiten, um diese Arbeit zu automatisieren. Nehmen Sie an unserem Webinar "pdfToolbox für den Etikettendruck" teil und lernen Sie einige der Funktionen kennen, die Ihren Etiketten-Workflow effizienter gestalten. Einige der Bereiche, die Sie kennenlernen werden, sind: Beschnitt erzeugen Beim Etikettendruck ist das Druckmotiv oft nicht rechteckig. Lernen Sie, wie Sie einen passenden Beschnitt für alle Arten von Formen hinzufügen können. Produktionsreife Dateien erstellen nutzen Sie bereits vorliegende Inhalte oder Seiteninformationen, um eine Weißform hinter dem Seiteninhalt hinzuzufügen, eine passgenaue Lackform für bestimmte Objekte zu erzeugen oder eine Stanzlinie mit korrektem Sonderfarbnamen zu erstellen. Ausschießen, Step & Repeat, N-Up Mit der Ausschieß-Engine von pdfToolbox lassen sich Seiten zu größeren Druckbögen zusammenfassen, wobei verschiedene Layouts und Komplexitäten unterstützt werden. Hochwertige Freigabe-Bögen Erstellen Sie automatisch Freigabe-Bögen mit Vorschaubildern Ihrer Produktionsdatei und Auftragsdaten aus dem MIS. Qualitätskontrolle pdfToolbox enthält Standard-Preflight-Profile, die die grundlegenden Anforderungen an PDF-Dateien in Etiketten-Workflows abdecken. Prüfen Sie ob Ihre Dokumente internationalen Standards wie ISO PDF/X oder GWG (Ghent Workgroup) Spezifikationen entspricht. Verpackungs- und etikettenspezifische Vorgaben, wie der ISO-Standard „Processing Steps“, werden ebenfalls unterstützt.

kostenlos

Ja

Organisator: callassoftware

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

pdfToolbox für den Ettikettendruck
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

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

So optimieren Sie Ihren LFP-Workflow