Stress vermeiden

In Vorführungen und Schulungen habe ich mich gelegentlich erfreut darüber geäußert, wie laufende Skripte FrameMakers Prozessorauslastung auf 100% treiben: »Endlich arbeitet der Computer einmal für Sie, statt immer nur zu warten!«

Das ist an sich auch wunderbar, außer im Zusammenhang mit der PDF-Erstellung, denn hier ist das Zusammenspiel von FrameMaker und Acrobat Distiller anscheinend etwas empfindlich. Beim Erstellen vieler PDF-Dateien mittels

Save Book BookObject(lvBook)
    File(ESys.RemoveFileExtension{lvBook.Name, 'pdf'})
    FileType(SaveFmtPdf);

kommt es in unregelmäßigen Abständen zu Abstürzen von FrameMaker oder zu Fehlermeldungen bei Distiller. Im Handbetrieb ließen sich die erzeugten temporären PostScript-Dateien immer problemlos verarbeiten. Im Rahmen eines größeren Automationsprojekts (siehe Bericht »21 Sprachen, 63 PDF-Dateien, 84 Onlinehilfen«) war das…, ähem, [Achtung: Schönsprech] hinderlich [/].

Aufgrund einer Eingebung versuchte ich es einmal mit Pausen:

Exec Wait Seconds(1);

Und siehe da: Ein paar verstreute Pausen vor und nach den Befehlen Update und Save verschaffen FrameMaker und Distiller die nötige Luft (zum Atmen?) und damit lassen sich auch PDF-Stapel-Produktionen fehlerfrei abwickeln.

Wenn Sie umfangreichere Skripte laufen lassen, können Sie die (gefühlte) Reaktionszeit des System auch durch folgenden Befehl verbessern:

Run ESys.Idle;

Dies verschafft Windows Gelegenheit, andere anstehende Prozesse (zum Beispiel das Aktualisieren von Fenstern) abzuarbeiten. So können Sie Ihre Skripte zu »sozialerem« Verhalten bringen.

Ein Kommentar

  1. Posted 7. Juli 2009 at 21:36 | Permalink

    Tritt das Problem auch auf, wenn du in den Einstellungen des Druckers folgendes änderst: Einstellungen > Erweitert > Drucken beginnen nachdem letzte Seite gespoolt wurde? Oder umgeht Save As PDF den Spooler …?