heute habe ich überrascht beobachtet, dass entgegen der Programmierer-Referenz Druckerdefinitionsdateien beim Druck auf den Standard-Drucker scheinbar nicht mehr erstellt werden. Wir haben genau den auf Seite 477 beschriebenen Fall, dass die Datei mittels LlSetPrinterDefaultsDir() in einem festgelegten Verzeichnis vorhanden sein soll:
Ist die P-Datei nicht vorhanden, so nimmt List & Label automatisch den aktuell eingestellten
Windows-Standard-Drucker und erstellt für diesen auch die P-Datei. Der Pfad,
an welchem die P-Datei gesucht bzw. erstellt wird, lässt sich per LlSetPrinterDefaultsDir()
spezifizieren und könnte vor allem in einer Netzwerk-Anwendung relevant
sein.
So ist es aktuell:
Bei einem Druck auf einem abweichenden Drucker wird die Druckerdefinitionsdatei erzeugt.
Bei einem Druck auf dem Standard-Drucker wird die Druckerdefinitionsdatei nicht erzeugt.
Bei expliziter Verwendung der Methode LlPrinterSetup wird die Druckerdefinitionsdatei immer erzeugt, gleich ob es sich um den Standard- oder einen anderen Drucker handelt
Mit LL22 hat das noch funktioniert, gab es da einen Wechsel im Verhalten bei LL23 oder LL24?
Oder besser, wie kann ich LL24 überzeugen die Druckerdefinitionsdatei auch dann zu erstellen, wenn auf dem Standard-Drucker gedruckt werden soll?
Die Druckerdefinitionsdatei wird immer erst dann (neu) erstellt, wenn der Drucker geändert, oder wenn im Designer das Projekt gespeichert wird. Ausserhalb des Designers kann das Erstellen der Datei dadurch ausgelöst werden, wenn im Druckdialog “Einstellungen permanent speichern” gesetzt wird, auch ohne Verwendung der LlPrinterSetup-Funktion. Dies gilt sowohl für den Standard-Drucker, sowie alle anderen, vom Standard abweichenden Drucker.
widerspricht das nicht der Beschreibung in der Programmierer-Referenz, dass die Datei immer erstellt wird?
Zugegeben: weder wird der Druck als Prozess der eine P-Datei erzeugt explizit ein- noch ausgeschlossen in der Programmierer-Referenz. Ich kann aber mit Bestimmtheit sagen, dass die P-Datei in vorherigen Version von List&Label auch beim Druck (also ohne Speicherung im Designer oder Änderung des Druckers) erzeugt wurde.
Zum Hintergrund: Wenn die P-Datei nicht vorhanden ist, werden unsere Anwender durch unsere Applikation gefragt, ob auf dem Standard-Drucker gedruckt werden soll oder vorher eine Druckerauswahl vorgenommen werden soll. Wenn der Anwender aktuell auswählt, den Standard-Drucker zu verwenden, wird beim Druck keine P-Datei mehr erzeugt und er erhält diese Frage seit LL24 vor jedem Druck. Jedenfalls so lange, bis er einen Drucker auswählt.
Gibt es eventuell einen Schalter für die “Einstellung permanent speichern”-Funktionalität, der das Erzeugen der P-Datei steuert? Ich muss zugeben, das mir dieser Haken im Druckdialog noch nie aufgefallen ist.